Hauptmenü

MQTT und FHEM

Begonnen von mhelgers, 18 Januar 2019, 18:26:17

Vorheriges Thema - Nächstes Thema

mhelgers

Hallo zusammen,

ich habe mich seit einiger Zeit mit MQTT befasst und finde diese Art zu schalten sehr interessant, da mir momentan aus Sicherheitsgründen nichts besseres einfällt was zudem auch noch so preiswert ist.....etliche Stechdosen habe ich schon in Gebrauch....



Ich möchte nun einen WEMOS D1Mini und ein 4-fach Relais einsetzten.
Über MQTT kann ich einen Kanal am Relais schalten. EIN und AUS Über die FHEM Oberfläche - kein Problem.
Hier der Code

defmod GarageGarten MQTT_DEVICE
attr GarageGarten DbLogExclude .*
attr GarageGarten IODev Mosquitto
attr GarageGarten devStateIcon off*:light_light@red on.*:light_light_dim_100@green
attr GarageGarten event-on-change-reading state
attr GarageGarten eventMap 1:on 0:off
attr GarageGarten icon off
attr GarageGarten publishSet 1 0  /garage/switch1/
attr GarageGarten room MQTT,Favourites
attr GarageGarten stateFormat state
attr GarageGarten subscribeReading_state /garage/switchConfirm1/
attr GarageGarten useSetExtensions 1
attr GarageGarten webCmd on:off


Da ich aber nicht nur über FHEM schalten möchte wollte ich auch noch einen Schalter am Wemos anbringen.
Dieser liegt auf dem Eingang D0 und kann HIGH oder LOW sein. Dieser Status wird auch an FHEM weitergegeben.
Also ich ziehe D0 auf HIGH der Status 1 wird an FHEM weitergegeben und das Icon wechselt auf grün ein.
Ich ziehe D0 auf LOW und das Icon wechselt auf rot aus.
Mein Problem ist aber, dass der Status nicht an den Wemos zurückgegeben wird und dieser dann das Relais schaltet.
Wo ist mein Denkfehler......???

pwlr

Moin,

ich kenne die Wemos nicht, aber sieht so aus, dass das Relais und der Eingang zwei getrennte Kanäle in dem Device sind. Und im Wemos scheinen die auch nicht gekoppelt zu sein. Den Status von D0 sieht Du wohl in einem reading?
Probiere mal:
a) ein notify - frei formuliert - wenn D0=HIGH dann Relais an, sonst aus
b) die gleiche Logik in ein userReading schreiben

event-on-change-reading oder event-on update-reading für den D0-Kanal aktivieren
viel Erfolg !
Bernd

supernova1963

Hallo mhelgers,

der Ansatz von Bernd müßte funktionieren.
Dennoch möchte ich dir den Hinweis geben, dass der Schalter dann nur funktioniert, wenn der MQTT Broker für den Wemos erreichbar ist.
Bei der von mir eingesetzten Firmware (ESPeasy) kann man eine ereignisgeteuerte Regel im WEMOS D1 Mini hinterlegen, dass entsprechend des Zustandes von D0 der/die GPIO geschaltet werden.
Vorteil, der Schalter funktioniert auch offline.

Welche Firmware setzt du ein?
Möchtest du wirklich alle 4 Relais mit einen Schalter steuern, oder ist D0 nur ein Muster für die 3 anderen?

lg

Gernot


mhelgers

#3
Ich möchte mit 4 Tastern die Relais schalten. Die Taster müssten also einen Toggel auslösen.

An ESP Easy hatte ich auch schon gedacht aber irgendwie erschließt sich mir das noch nicht so wirklich...Da habe ich keine Ahnung was ich wie einstellen müsste:(

D0 bis D3 schalten die Kanäle des Relais, D4 bis D7 sollen mit den Tastern verbunden werden.

supernova1963

..."Rules" gibt's auch bei rasmota (https://github.com/arendst/Sonoff-Tasmota/wiki/Rules).

Welche firmware nutzt du denn?

lg

Gernot

mhelgers

...Das Leben kann so einfach sein..:):)

Habe mir gerade einen  Sonoff CH4 bestellt. Da kommt dann Tasmota drauf und schon sind alle meine Probleme entsorgt:)

Trotzdem vielen, vielen Dank für euren Support....