aboutsummaryrefslogtreecommitdiffstats
path: root/two_hosts_auto_powerswitch/readme.rst
blob: 5d98a1a4ad60e62187621b2ae2b523e14322b14d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
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).