Two hosts power switch ###################### General principle ================= This project detects up to two host power state through the their usb port and switch on their associated devices (screen, sound amplifier, printer, etc). Devices might be shared (the same printer is used by both computers), in this case, the device is switched on by whatever computer is on. Flowchart ========= When detecting a host state change, the following happen:: .------------------. .-------------------. .--------------. | Host state | | Skip filter input | | Switch relay | | change detection | | (usb control) | '--------------' '------------------' '-------------------' ^ | .-------------. | | '-->| Skip filter |<--' | '-------------' .--------------. | | | Start timers | | v | Stop plugs |-----' .---------------. '--------------' | Update target | ^ | table |--------------' '---------------' Feature list ============ * Detect when one of the host is up (not in standby) ----- * la détection d'un ordi on, allume certaines prises, chaque ordi peut avoir un ensemble de prises dédiées ou partagées (OR logic), configuration enregistrée en nvm. * délai possible sur l'allumage de certaines prises au changement d'état off=>on, configuration enregistrée en nvm. * la détection d'allumage d'un ordi se fait via une prise mini-usb (utilisation uniquement du 5v), circuit isolé. Si un ordi a tous ses ports usb en always-on, soit régler pour que ça ne soit pas le cas, soit brancher un adaptateur molex-usb. * bouton qui toggle manuellement (override) l'état d'un ordi. * bouton qui toggle chaque prise (off-forcé/on-forcé/reset, resetted auto quand un ordi change d'état). * power converter super basse conso, avec mcu en mode standby, je devrais être à zero sur le kill-a-watt (pas assez précis pour mesurer le niveau, en fabriquer un plus précis pour comparer avec un chargeur de tél à vide). -ou- alimentation via le port usb (si usb, pas ethernet) de contrôle (yui). L'avantage d'une alimentation à part, c'est que l'on éteint pas les prises en depluggant le port usb de contrôle (mais sur un projet de ce type, cette extinction est acceptable). L'autre aventage c'est qu'on isole le bruit d'un switch de port (je ne sais pas dans quelle mesure on peut faire reset yui avec les relays, à mesurer). * leds d'état pour chaque prise quand au moins un des deux ordi est allumé, et au global pour dire que le système est "on", en "off" le mcu en est standby et aucune led n'est allumé * possible de skip la prochaine détection off=>on d'un host via une commande série. Rationale ========= * multi allume ordi => pas bien car je veux que les périphs s'allument tout seul quand j'allume l'ordi depuis le clavier. * si allumer les périphs systématiquement en fonction de l'allumage de l'ordi est un problème, c'est uniquement à cause du wakeonlan, c'est donc le wakeonlan qui est une exception. => faire passer l'information que le prochain wake de l'ordi ne doit pas être pris en compte c'est possible soit par ethernet, soit par usb via l'ordi qui lance le wakeonlan (yui/nagato).