Inhaltsverzeichnis [Verbergen]
Hallo zusammen.
Derzeit befasse ich mich mit dem Thema Reed Kontakte über 433Mhz und einer Sonoff RF Bridge. Diese werden im Wohnzimmer an der Balkontüre und im Schlafzimmer am Fenster angebracht.
Hard- und Software
- 2x China 433Mhz Magnet Fensterkontakte
- Sonoff RF Bridge mit Tasmota FW
- ioBroker als Automatisierungssoftware
Was es können soll
- Abfrage von Alexa, ob Fenster auf ist
- Wenn die Wohnung über den Flur ausgeschaltet wird und noch ein Fenster auf ist, soll ein Spot im Flur drei mal auf- und abdimmen
Zu erwartende Probleme
Die an der Sonoff RF Bridge angelernten Schalter ändern nur einen Wert in der ioBorker Datenbank. Dieser Wert ist je nach Zustand und Fenster unterschiedlich. So hat das Wohnzimmerfenster im offenen Zustand den Wert beim Objekt „DataReceived“ „88790A“ und im geschlossenen „88790E“. Wenn der Schalter seinen Befehl sendet, wird der aktuelle Wert überschrieben.
Somit muss man selber überwachen, welchen Zustand welches Fenster aktuell hat, da es nur eine Variable für bis zu 16 Geräte gibt.
Vorgehen
Ich werde zwei eigene Objekte mit den Namen „SZ“ und „WZ“ anlegen und ein Skript schreiben, welches den Wert der Variable „DataReceived“ überwacht. Sobald dort die entsprechenden Werte geschrieben werden, werden diese in die von mir erstellten Objekte geschrieben.
Beispiel:
Balkontüre ist zu und wird geöffnet, während das Schlafzimmer offen ist und geschlossen wird. Zuletzt wurde das Schlafzimmer geöffnet.
DataReceived = 89800A
WZ = false
SZ = True
1. Balkontüre wird geöffnet.
2. DataReceived wird zu „88790A“
3. WZ wird auf „true“ gesetzt.
4. Schlafzimmer wird geschlossen.
5. DataReceived wird mit „89800E“ überschrieben
6. SZ wird auf „false“ gesetzt
Ich hoffe man kann die „Problematik“ nachvollziehen. Sobald ich es umgesetzt habe, werde ich diesen Artikel erweitern und verschieben und zusätzlich meinen Artikel im Showroom erweitern.
Umsetzung
Wie geplant, habe ich die zwei Objekte angelegt, das Skript geschrieben und getestet. Lief solange, bis ich die Sonoff RF Bridge vom Büro ins Wohnzimmer gepackt habe. Ich denke der Sender vom Schlafzimmer kommt nicht bis zur Bridge. Das Wohnzimmerfenster kann aber überwacht werden.
Als nächstes Widme ich mich der Alexa Thematik und ändere den Ort der Sonoff RF Bridge noch mal.
BTW: Ein kleines bisschen Code:
Skript zum aktualisieren der Objekte "SZ" und "WZ":
- on({id: "sonoff.0.WZ-RF.RfReceived_Data"/*WZ-RF RfReceived Data*/, change: "any"}, function (obj) {
- var value = obj.state.val;
- var oldValue = obj.oldState.val;
- if (getState("sonoff.0.WZ-RF.RfReceived_Data").val == '48560A') {
- setStateDelayed('PiDevices.0.Fenster.WZ', true, true, parseInt(0, 10), false);
- } else if (getState("sonoff.0.WZ-RF.RfReceived_Data").val == '48560E') {
- setStateDelayed('PiDevices.0.Fenster.WZ', false, true, parseInt(0, 10), false);
- }
- });
Skript zum Dimmen der Lampen, wenn der Flur ausgeschaltet ist und die Fenster noch auf sind:
- // Alle Geräte aus
- on({id: "zigbee.0.0017880106e89a0f.down_hold"/*Down button hold*/, val: true}, function (obj) {
- var value = obj.state.val;
- var oldValue = obj.oldState.val;
- setStateDelayed('scene.Alle_Geraete', false, false, parseInt(0, 10), false);
- exec('bash /home/pi/smarthome/wohnzimmer.sh serveraus');
- if (getState("PiDevices.0.Fenster.WZ").val == true) {
- setStateDelayed('zigbee.0.000b57fffe6f8cc1.state', true, false, parseInt(0, 10), false);
- }
- });
Retrospektive
Das ganze lief jetzt und mir ist aufgefallen, dass das ab und aufdimmen nicht so schön umgesetzt werden kann, wie mein Spatzenhirn es sich dachte. Nun baue ich danach um, dass das eine Lampe im Flur gar nicht erst ausgeht, wenn ein Fenster offen sein sollte.
Hat vielleicht jemand eine bessere Idee/Anregungen? Bin ich da aufm Holzweg und mache es mir zu kompliziert?