FHEM Forum

Verschiedenes => Bastelecke => ESP Familie => Thema gestartet von: P.A.Trick am 10 Februar 2017, 19:34:43

Titel: [gelöst] ESPEASY & MQTT
Beitrag von: P.A.Trick am 10 Februar 2017, 19:34:43
Ich habe einen Wemos mit ESPEASY 148 geflasht. Darauf befindet sich ein Relay Shield und ein Button Shield.
MQTT unter FHEM läuft und ich bekomme auch die Meldungen auf dem Device

defmod mqtt_wemos3 MQTT_DEVICE
attr mqtt_wemos3 IODev myBroker
attr mqtt_wemos3 autoSubscribeReadings wemos3/+/+
attr mqtt_wemos3 event-on-change-reading .*
attr mqtt_wemos3 eventMap 0.00:off 1.00:on
attr mqtt_wemos3 icon measure_power
attr mqtt_wemos3 publishSet 1 0 wemos3/44/relay
attr mqtt_wemos3 room MQTT
attr mqtt_wemos3 stateFormat relay
attr mqtt_wemos3 subscribeReading_%valname% wemos3/systeminfo/%valname%
attr mqtt_wemos3 subscribeReading_RAM wemos3/switch/RAM
attr mqtt_wemos3 subscribeReading_Uptime wemos3/switch/Uptime
attr mqtt_wemos3 subscribeReading_key wemos3/switch/key
attr mqtt_wemos3 subscribeReading_relay wemos3/44/relay
attr mqtt_wemos3 subscribeReading_set wemos3/44/set
attr mqtt_wemos3 webCmd 1:0

setstate mqtt_wemos3 1
setstate mqtt_wemos3 2017-02-10 18:06:57 %valname% {"idx":1,"nvalue":0,"svalue":"31.00"}
setstate mqtt_wemos3 2017-02-10 19:29:52 RAM 27352
setstate mqtt_wemos3 2017-02-10 19:29:42 RSSI -66
setstate mqtt_wemos3 2017-02-10 19:29:32 Uptime 9.00
setstate mqtt_wemos3 2017-02-10 19:25:39 key 1
setstate mqtt_wemos3 2017-02-10 19:27:07 relay 1
setstate mqtt_wemos3 2017-02-10 19:26:53 set 0
setstate mqtt_wemos3 2017-02-10 19:27:07 state 1
setstate mqtt_wemos3 2017-02-10 19:29:52 transmission-state incoming publish received


Was ich jedoch nicht schaffe, ist es das Relay mit einem MQTT Befehl zum schalten zu bewegen.
Kann mir jemand einen Schups in die richtige Richtung geben?
Der Taster funktioniert übrigens einwandfrei.

Achja:
ESPEASY Config MQTT: Sub:
Subscripe Template: %sysname%/#
Publish Template: %sysname%/%tskname%/%valname%


Komischerweise funktioniert die folgende Rulez auch nicht :-(

on switch#key do
if [switch#relay]=1
   gpio,5,0
else
   gpio,5,1
endif
endon


Ich verzweifele...bitte helft mir!
Danke im Voraus!
Titel: Antw:ESPEASY & MQTT
Beitrag von: P.A.Trick am 11 Februar 2017, 09:59:09
Ok ich habe es nun hinbekommen! Eigentlich waren nur die Namen in der ESPEasy Config das Problem.

Hier mal die Lösung:

FHEM Device Config:
defmod mqtt_wemos3 MQTT_DEVICE
attr mqtt_wemos3 IODev myBroker
attr mqtt_wemos3 autoSubscribeReadings /wemos3/sysinfo/+
attr mqtt_wemos3 event-on-change-reading .*
attr mqtt_wemos3 eventMap 1:on 0:off
attr mqtt_wemos3 publishSet 1 0 /wemos3/gpio/5
attr mqtt_wemos3 room MQTT
attr mqtt_wemos3 stateFormat relay
attr mqtt_wemos3 subscribeReading_LOAD /wemos3/sysinfo/LOAD
attr mqtt_wemos3 subscribeReading_RAM /wemos3/sysinfo/RAM
attr mqtt_wemos3 subscribeReading_RSSI /wemos3/sysinfo/RSSI
attr mqtt_wemos3 subscribeReading_UPTIME /wemos3/sysinfo/UPTIME
attr mqtt_wemos3 subscribeReading_button /wemos3/button/state
attr mqtt_wemos3 subscribeReading_relay /wemos3/relay/state
attr mqtt_wemos3 webCmd on:off


Nach und nach lieber ich diesen Mosquitto Server immer mehr. Er ist wirklich schnell und hat
im Gegenteil zu den HTTP Request auch keine Performance-Nachteile.
Titel: Antw:[gelöst] ESPEASY & MQTT
Beitrag von: tremichl am 07 März 2017, 10:05:33
Versuche auch seit einiger Zeit über EspEasy (Sonoff) ein Relais per MQTT zu schalten. Bisher leider ohne Erfolg. Habe auch versucht wie in deiner Konfiguration den GPIO direkt anzusprechen. Sehe auch , dass im Broker xx/gpio/12 1 ankommt aber keine Reaktion am Esp. Readings in FHEM funktionieren. Wie sieht der String am Broker aus, bei deiner Konfiguration :"attr mqtt_wemos3 publishSet 1 0 /wemos3/gpio/5". Oder anders gefragt: Ist der topic für publish und subscribe gleich?

Mit Tasmota funktionierts, da gibts aber wieder keinen Feuchtesensor....
Titel: Antw:[gelöst] ESPEASY & MQTT
Beitrag von: P.A.Trick am 07 März 2017, 19:50:30
Zitat von: tremichl am 07 März 2017, 10:05:33
Versuche auch seit einiger Zeit über EspEasy (Sonoff) ein Relais per MQTT zu schalten. Bisher leider ohne Erfolg. Habe auch versucht wie in deiner Konfiguration den GPIO direkt anzusprechen. Sehe auch , dass im Broker xx/gpio/12 1 ankommt aber keine Reaktion am Esp. Readings in FHEM funktionieren. Wie sieht der String am Broker aus, bei deiner Konfiguration :"attr mqtt_wemos3 publishSet 1 0 /wemos3/gpio/5". Oder anders gefragt: Ist der topic für publish und subscribe gleich?

Mit Tasmota funktionierts, da gibts aber wieder keinen Feuchtesensor....

Hast du denn die Namen vom Sensor, besonders das untere "Value Name", richtig gesetzt? Schaue dir noch einmal genau die Screenshots an!
Bitte auch unter Config den richtigen MQ Client wählen (siehe Foto)
Titel: Antw:[gelöst] ESPEASY & MQTT
Beitrag von: tremichl am 08 März 2017, 15:05:09
Super, danke! Jetzt funktioniert es. Hatte "GPIO" statt "gpio" geschrieben, da es in der ESP-Easy Oberfläche auch in Großbuchstaben steht war ich verwirrt. Deine Screenshots habens sehr geholfen.
Titel: Antw:[gelöst] ESPEASY & MQTT
Beitrag von: P.A.Trick am 08 März 2017, 15:54:41
Zitat von: tremichl am 08 März 2017, 15:05:09
Super, danke! Jetzt funktioniert es. Hatte "GPIO" statt "gpio" geschrieben, da es in der ESP-Easy Oberfläche auch in Großbuchstaben steht war ich verwirrt. Deine Screenshots habens sehr geholfen.

Glaube ich gerne, da bin ich schließlich auch drauf rieingefallen! 😀
Titel: Antw:[gelöst] ESPEASY & MQTT
Beitrag von: tklein am 14 März 2017, 09:28:36
hallo,

kann mir jemand bitte den code vom esp posten? sprich wie schaltet er auf die "mqtt-befehle"?

Gruß
Thomas
Titel: Antw:[gelöst] ESPEASY & MQTT
Beitrag von: tklein am 20 März 2017, 10:08:04
was ist denn der Unterschied von OpenHABMQTT und Domoticz MQTT?
Kann ich es ändern, dass ich unter DomoMQTT nur die gewünschten Werte angezeigt bekomme und nicht den Rest mit IDX etc.? Wo/Wie muss ich den Pfad ändern, dass nicht alle 3 D1 auf den gleichen Kanal mit gleich lautenden Werten senden?
Titel: Antw:[gelöst] ESPEASY & MQTT
Beitrag von: Reinhart am 23 März 2017, 20:04:34
Zitat von: tklein am 20 März 2017, 10:08:04
Wo/Wie muss ich den Pfad ändern, dass nicht alle 3 D1 auf den gleichen Kanal mit gleich lautenden Werten senden?

das wird grundsätzlich in der Topic eingestellt, unterschiedliche Namen unterscheiden dann die gleich lautenden Werte.

LG
Titel: Antw:[gelöst] ESPEASY & MQTT
Beitrag von: tklein am 24 März 2017, 08:48:14
thx,

-->  /%sysname%/%tskname%/%valname% : habe den Wemos unterschiedliche Namen gegeben. Muss ich auch bei den Unitnummern aufpassen?

Gruß
Thomas
Titel: Antw:[gelöst] ESPEASY & MQTT
Beitrag von: pink99panther am 24 März 2017, 09:02:26
Zitat von: tklein am 24 März 2017, 08:48:14
thx,

-->  /%sysname%/%tskname%/%valname% : habe den Wemos unterschiedliche Namen gegeben. Muss ich auch bei den Unitnummern aufpassen?

Gruß
Thomas
Ja, sollten eindeutig sein.

Gruß
p99p