WLAN-Button: Unterschied zwischen den Versionen

Aus Maschinendeck Wiki
Zur Navigation springen Zur Suche springen
>Ranlvor
(+Howto)
>Ranlvor
(Added Version 2)
Zeile 4: Zeile 4:
|Who=Ranlvor,
|Who=Ranlvor,
|Status=running
|Status=running
|Tags=ESP8266,
|Tags=ESP8266, Freifunk
}}
}}


== Version 2 ==
Version 1 hatte durch unerwartete Leckströme einen unerwartet hohen Energieverbrauch. Da die Batterielautzeit mit 3 Tagen inakzeptabel kurz war habe ich den Freifunkrouter im Raum um einen Raumstatusbutton erweitert.
=== Howto ===
* WPS-Knopf am Router 1x kurz drücken.
* Die linke WLAN-LED hört auf zu blinken und geht für einen Moment aus. Wenn sie wieder an geht ist das Skript fertig.
* Die rechts WLAN-LED ist jetzt
** aus: Der Raumstatus ist jetzt geschlossen
** an: Der Raumstatus ist jetzt offen
** blinkt: Fehler beim Updaten des Raumstatus
* Nach 10 Sekunden übernehmen die LEDs wieder ihre eigentliche Funktion
=== Funktionsweise ===
* Jedes Knopf-Event triggert ein Shellskript /etc/hotplug.d/button/60-raumstatus
* Wenn das Event „WPS wurde losgelassen“ war wird das Luaskript /usr/bin/raumstatus/raumstatus.lua gestartet (der Code ist relativ selbsterklärend, siehe [https://github.com/maschinendeck/WLAN-Button/blob/master/freifunkrouter/raumstatus.lua#L52-L79 Github])
** schalte die linke WLAN-LED ab
** rufe die Nonce via getchallenge.php ab
** rufe doaction.php mit HMAC auf
*** toggel den Raumstatus
** setze die LED passend zum Rückgabewert von doaction.php
=== Howto „das muss auf einen anderen Router“ ===
* secret.lua beschaffen. (Zufällig generieren und auf Serverseite eintragen oder alte von $irgendwo besorgen)
* git clone --recursive https://github.com/maschinendeck/WLAN-Button.git (das --recursive ist wichtig, nicht vergessen)
* secret.lua nach WLAN-Button/freifunkrouter kopieren
* cd WLAN-Button/freifunkrouter; ./make.sh
* Ordner build nach router:/usr/bin/raumstatus kopieren
* 60-raumstatus nach router:/etc/hotplug.d/button kopieren
== Version 1 ==
[[File:WLAN-Button.jpg|200px|thumb|left|WLAN-Button]]
[[File:WLAN-Button.jpg|200px|thumb|left|WLAN-Button]]
[[File:WLAN-Button-Hardware.png|400px|thumb|right|WLAN-Button Schaltplan]]
[[File:WLAN-Button-Hardware.png|400px|thumb|right|WLAN-Button Schaltplan]]
Zeile 12: Zeile 43:
Sourcecode: [https://github.com/maschinendeck/WLAN-Button]
Sourcecode: [https://github.com/maschinendeck/WLAN-Button]


== Howto ==
=== Howto ===
* Knopf drücken (eventuell mehrfach) bis die LED anfängt rot/grün zu blinken
* Knopf drücken (eventuell mehrfach) bis die LED anfängt rot/grün zu blinken
* Sobald die LED länger als 1 Sekunde leutet ist der Raumstatus aktuallisiert. Rote LED = Raum zu, Grüne LED = Raum offen
* Sobald die LED länger als 1 Sekunde leutet ist der Raumstatus aktuallisiert. Rote LED = Raum zu, Grüne LED = Raum offen


== Funktionsweise ==
=== Funktionsweise ===
* Drücken des Buttons aktiviert den µC
* Drücken des Buttons aktiviert den µC
* Beginnt die LEDs rot/grün zu blinken
* Beginnt die LEDs rot/grün zu blinken
Zeile 28: Zeile 59:
* Schalte den µC ab
* Schalte den µC ab


== Infobits ==
=== Infobits ===
* Sollte sich 2 Minuten nach Beginn des Verbindungsversuch automatisch abschalten
* Sollte sich 2 Minuten nach Beginn des Verbindungsversuch automatisch abschalten
* Wenn's nicht geht: Nochmal drücken. Oft nochmal drücken. Mal länger drücken, mal kürzer drücken, 20x drücken. Manchmal landet er im Bootloader und dann hilft nochmal drücken. Sobald die Software läuft ist der Button außer Funktion bis die LED sich wieder abschaltet.
* Wenn's nicht geht: Nochmal drücken. Oft nochmal drücken. Mal länger drücken, mal kürzer drücken, 20x drücken. Manchmal landet er im Bootloader und dann hilft nochmal drücken. Sobald die Software läuft ist der Button außer Funktion bis die LED sich wieder abschaltet.

Version vom 21. Februar 2016, 16:13 Uhr

WLAN-Button
Weshalb Update the Raumstatus - the easy way
Was hardware
Wer Ranlvor,
Status läuft



Version 2

Version 1 hatte durch unerwartete Leckströme einen unerwartet hohen Energieverbrauch. Da die Batterielautzeit mit 3 Tagen inakzeptabel kurz war habe ich den Freifunkrouter im Raum um einen Raumstatusbutton erweitert.

Howto

  • WPS-Knopf am Router 1x kurz drücken.
  • Die linke WLAN-LED hört auf zu blinken und geht für einen Moment aus. Wenn sie wieder an geht ist das Skript fertig.
  • Die rechts WLAN-LED ist jetzt
    • aus: Der Raumstatus ist jetzt geschlossen
    • an: Der Raumstatus ist jetzt offen
    • blinkt: Fehler beim Updaten des Raumstatus
  • Nach 10 Sekunden übernehmen die LEDs wieder ihre eigentliche Funktion

Funktionsweise

  • Jedes Knopf-Event triggert ein Shellskript /etc/hotplug.d/button/60-raumstatus
  • Wenn das Event „WPS wurde losgelassen“ war wird das Luaskript /usr/bin/raumstatus/raumstatus.lua gestartet (der Code ist relativ selbsterklärend, siehe Github)
    • schalte die linke WLAN-LED ab
    • rufe die Nonce via getchallenge.php ab
    • rufe doaction.php mit HMAC auf
      • toggel den Raumstatus
    • setze die LED passend zum Rückgabewert von doaction.php

Howto „das muss auf einen anderen Router“

  • secret.lua beschaffen. (Zufällig generieren und auf Serverseite eintragen oder alte von $irgendwo besorgen)
  • git clone --recursive https://github.com/maschinendeck/WLAN-Button.git (das --recursive ist wichtig, nicht vergessen)
  • secret.lua nach WLAN-Button/freifunkrouter kopieren
  • cd WLAN-Button/freifunkrouter; ./make.sh
  • Ordner build nach router:/usr/bin/raumstatus kopieren
  • 60-raumstatus nach router:/etc/hotplug.d/button kopieren

Version 1

WLAN-Button
WLAN-Button Schaltplan

Sourcecode: [1]

Howto

  • Knopf drücken (eventuell mehrfach) bis die LED anfängt rot/grün zu blinken
  • Sobald die LED länger als 1 Sekunde leutet ist der Raumstatus aktuallisiert. Rote LED = Raum zu, Grüne LED = Raum offen

Funktionsweise

  • Drücken des Buttons aktiviert den µC
  • Beginnt die LEDs rot/grün zu blinken
  • Verbindet sich mit dem nächsten trier.freifunk.net.
  • Baut eine HTTPS-Verbindung zu internetbutton.starletp9.de auf
  • ruft per getchallenge.php eine Nonce ab
  • sendet seinen Batterieladestand an doaction.php
    • doaction.php toggelt den Raumstatus
    • doaction.php gibt die neue LED-Farbe grün = Raum ist jetzt offen, rot = Raum ist jetzt zu aus
  • Leuchte in dieser Farbe 10 Sekunden lang
  • Schalte den µC ab

Infobits

  • Sollte sich 2 Minuten nach Beginn des Verbindungsversuch automatisch abschalten
  • Wenn's nicht geht: Nochmal drücken. Oft nochmal drücken. Mal länger drücken, mal kürzer drücken, 20x drücken. Manchmal landet er im Bootloader und dann hilft nochmal drücken. Sobald die Software läuft ist der Button außer Funktion bis die LED sich wieder abschaltet.
  • Batteriehalter hat einen Wackelkontakt, das macht schonmal Probleme
  • Eigentlich ist die Betriebsspannung 3,3V, läuft zur Zeit auf 2x AA
  • Stecker, Buchse und Loch für externe Spannungsversorgung ist vorhanden
  • Standbyverbrauch: 1 mA. Ich schätze die Batteriehaltbarkeit auf 1 Monat, also sollte bis zum 18.03.2016 das Projekt durch etwas anderes abgelöst werden.