|beschreibung=Hardware-Schalter zum Setzen des Open/Close-Status
|bild=
|bildbeschreibung=
-|interessenten=
+|interessenten=[[Benutzer:100nano|100nano]]
|source=Branch stratum-openclose-spw500v in [https://rohieb.name/git/openwrt.git]
|lizenz=
|download=
* Wie wird der Status im IRC gesetzt?
** Möglich: über eine Pipe oder Socket mit dem Python-Framework von [[ZombiePoet]] kommunizieren
* Drosselung der Events, um Spam im IRC zu verhindern. Künstliche Verzögerung einbauen?
+* Dauerhaft Strom im Flur beschaffen
== Erweiterungen ==
* Automatismen:
** Spätestens hier wäre ein eigener IRC-Client auf dem Router sinnvoll, um nicht immer den Umweg über ZombiePoet gehen zu müssen.
* Falls noch genügend Platz im Flash (4 MB) und RAM (16 MB) ist, könnte der Router auch für andere Aufgaben verwendet werden.
+== Hardwareanbindung ==
+Nähere Überlegungen, wie
+* die Hardware (Schalter, Leuchten, Klingel) über einen Mikrocontoller an den OpenWrt Router geknödelt werden
+* Softwarestrukturen aussehen
+könnte(n).<br>
+Teilweise lose Gedankensammlung von mir ([[Benutzer:100nano|100nano]]).<br>
+
+=== Hardware===
+<!-- [[Datei:OpenClose SchemaHardware.png|thumb|Grobe schematische Darstellung der Hardwarekomponenten]] -->
+Grobe schematische Darstellung der Hardwarekomponenten:
+[[Datei:OpenClose SchemaHardware.png||none|550px|||Grobe schematische Darstellung der Hardwarekomponenten]]
+'''Spannungsversorgungen:'''
+* Router über Steckernetzteil: Steckdose benötigt
+* AVR vom Router: der Pinheader mit der seriellen Schnittstelle bringt gleich 3,3V mit. --> Forderung: AVR muss mit 3,3V laufen. --> Sollte kein Problem sein, AVR Takt auch unkritisch, bei Taktwahl spaetere Baudrate (Abweichungen Solltimings (Stichwort "Baudratenquarz")) beachten.
+'''Umschalter:'''
+* 2 input pins am uC.
+* GND schalten, uC internen pullup verwenden.
+'''LEDs:'''
+* Jeweils 1 output für Open/Closed. Z.B. grün/rot. --> Eindeutige geometrische Anordnung (Erkennbarkeit rot/grün-Farbenblinde)
+* Orange als "Update läuft" Anzeige. Wenn aus ist Status übernommen. Details siehe unten.
+'''Einbindung der Klingel:'''<br>
+(Vermute, dass das Läuten auch über den Lautsprecher ausgegeben wird, der auch als Lautsprecher+Mikrofon beim Gegensprechen verwendet wird.)
+* Lautsprecher/Klingel über Optokoppler (OK) und evtl. Gleichrichter (Diode) + Tiefpass an inputpin. (Für Näheres erst Messungen machen)
+* je nach Aufbau den Schalter für "Gegensprechen an" an inputpin des uC. __> Unterscheidung zwischen Klingeln und Sprache.
+'''Pegelanpassung:'''<br>
+Bei Betrieb mit 3,3V nicht nötig, nur, falls aus irgendeinem Grunde doch 5V verwendet werden.
+* Router zu AVR: Kein Problem, 3,3V werden auch bei erwarteten 5V als 1 erkannt.
+* AVR zu Router: zB Spannungsteiler mit 2 Widerständen.
+
+=== serielle Kommunikation ===
+* AVR möglichst dumm halten (router ist flexibler, dort kann mal schnell ein script angepasst werden, kein neuflashen des uC nötig)
+* Router kann einzelne Werte des uC abfragen
+beispiele:
+* 1 byte als abfragenachricht, uC antwortet mit wert oder setzt ausgang etc.
+alternativ
+* ganzes aendern von registern einbauen (spaetere nutzung weiterer io-pins ohne umflashen moeglich
+
+=== Logik/Ablauf ===
+Ausgangssituation:
+* Irgendein Status ist global gesetzt (schalter und irc/website/...)
+<br>
+* Schalter: Statuswechselanforderung durch Benutzer
+* uC merkt sich das und macht orange Updatelampe an
+* router pollt uC
+* router bemerkt statuswechsel und aendert den status (ssh etc. (kenne interne vorgaenge mit bot/homepage nicht)
+* wenn status geaendert, fordert router ausschalten der orangen led an.
+* update erfolgreich.
+* wartezeit (aenderung des poll-intervalls) um zu schnelle wechsel (spam) zu vermeiden. (Minutenbereich)
+<br>
+Übersteuerbarkeit des durch den Schalter gesetzten Status notwendig:<br>
+Szenario: Der letzte den space verlassende hat es doch mal vergessen, den status zu aendern und es faellt zuhause auf.<br>
+gewisser personenkreis muss moeglichkeit haben, den status manuell zu setzen.
+Router muss dies bis zum naechsten (hardwareschalter)statuswechsel ignorieren.<br>
+<br>
+...to be continued --[[Benutzer:100nano|100nano]]
+
== Alte Diskussion ==
:''hierher verschoben von [[Open/Close-Monitor]]''