[gelöst] Relais mit ESPEasy über MQTT2

Begonnen von Marekh, 02 März 2019, 16:23:41

Vorheriges Thema - Nächstes Thema

Marekh

Hallo und guten Tag,

ich möchte gern 5 Relais mit ESPEasy und MQTT schalten.

Diese 5 Relais sind folgendermaßen in ESPEasy definiert:

     Task Enabled Device                    Name     Ctr (IDX) GPIO Values
Edit 1        Switch input - Switch    Steckdose_4         GPIO-13 Steckdose_4:       0
Edit 2        Switch input - Switch    Steckdose_USB         GPIO-14 Steckdose_USB:     0
Edit 3        Switch input - Switch    Steckdose_3         GPIO-12 Steckdose_3:       1
Edit 4        Switch input - Switch    Steckdose_2         GPIO-4 Steckdose_2:       0
Edit 5        Switch input - Switch    Steckdose_1         GPIO-5  Steckdose_1:       0
Edit 6        Generic - System Info       Signal               ❶                       Signal:          -52.00


MQTT ist so konfiguriert:

OpenHAB MQTT
Controller Subscribe: /%sysname%/#
Controller Publish:  /%sysname%/%tskname%/%valname%


Damit bekomme ich die Readings in einem MQTT2 Gerät:


readingList:


ESPClient_84_0D_8E_4B_88_44:KZ_Steckdosen/out/LWT:.* LWT
ESPClient_84_0D_8E_4B_88_44:/KZ_Steckdosenleiste/Steckdose_USB/Steckdose_USB:.* Steckdose_USB
ESPClient_84_0D_8E_4B_88_44:/KZ_Steckdosenleiste/Steckdose_2/Steckdose_2:.* Steckdose_2
ESPClient_84_0D_8E_4B_88_44:/KZ_Steckdosenleiste/Signal/Signal:.* Signal
ESPClient_84_0D_8E_4B_88_44:/KZ_Steckdosenleiste/Steckdose_3/Steckdose_3:.* Steckdose_3
ESPClient_84_0D_8E_4B_88_44:/KZ_Steckdosenleiste/Steckdose_1/Steckdose_1:.* Steckdose_1
ESPClient_84_0D_8E_4B_88_44:/KZ_Steckdosenleiste/Steckdose_4/Steckdose_4:.* Steckdose_4
ESPClient_84_0D_8E_4B_88_44:/KZ_Steckdosenleiste/status/LWT:.* LWT



Internals:
   CID        ESPClient_84_0D_8E_4B_88_44
   DEF        ESPClient_84_0D_8E_4B_88_44
   DEVICETOPIC MQTT2_ESPClient_84_0D_8E_4B_88_44
   FUUID      5c6d37ae-f33f-01d6-f731-67088bbc8b9b463e
   IODev      MQTTS_Server
   LASTInputDev MQTTS_Server
   MQTTS_Server_MSGCNT 88
   MQTTS_Server_TIME 2019-03-02 16:39:50
   MSGCNT     88
   NAME       KZ_Steckdosenleiste
   NR         1020
   STATE      ???
   TYPE       MQTT2_DEVICE
   .attraggr:
   .attrminint:
   READINGS:
     2019-03-02 16:07:20   LWT             Connected
     2019-03-02 16:37:18   Signal          -52.00
     2019-03-02 16:09:46   Steckdose_1     0
     2019-03-02 16:26:26   Steckdose_2     0
     2019-03-02 16:39:50   Steckdose_3     0
     2019-03-02 12:29:40   Steckdose_4     1
     2019-03-02 12:29:45   Steckdose_USB   1
Attributes:
   IODev      MQTTS_Server
   readingList ESPClient_84_0D_8E_4B_88_44:KZ_Steckdosen/out/LWT:.* LWT
ESPClient_84_0D_8E_4B_88_44:/KZ_Steckdosenleiste/Steckdose_USB/Steckdose_USB:.* Steckdose_USB
ESPClient_84_0D_8E_4B_88_44:/KZ_Steckdosenleiste/Steckdose_2/Steckdose_2:.* Steckdose_2
ESPClient_84_0D_8E_4B_88_44:/KZ_Steckdosenleiste/Signal/Signal:.* Signal
ESPClient_84_0D_8E_4B_88_44:/KZ_Steckdosenleiste/Steckdose_3/Steckdose_3:.* Steckdose_3
ESPClient_84_0D_8E_4B_88_44:/KZ_Steckdosenleiste/Steckdose_1/Steckdose_1:.* Steckdose_1
ESPClient_84_0D_8E_4B_88_44:/KZ_Steckdosenleiste/Steckdose_4/Steckdose_4:.* Steckdose_4
ESPClient_84_0D_8E_4B_88_44:/KZ_Steckdosenleiste/status/LWT:.* LWT
   room       MQTT2_DEVICE


Was muss jetzt in setList eingetragen werden, damit ich die Relais schalten kann?

Mit: http://192.xxx.xxx.xxx/control?cmd=GPIO,4,0 kann ich die GPIOs schalten, ich möchte sie aber über MQTT schalten

Danke
Marek

Gisbert

Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

Marekh

Vielen Dank!
Aber ich würde es eben gern über MQTT machen.

Marek

Gisbert

Hallo Marekh,

ich nutze MQTT und zwar so, dass ich einen MQTT-Broker auf meinem Fhem-Server, einem RPi3B, installiert habe, und in Fhem nutze ich das Modul MQTT_DEVICE.
Schau dir bitte im Wiki an, was dort zu MQTT steht, sowie in der commandref zum Modul.
Es gibt weitere Module in Fhem, die ohne einen MQTT-Broker auskommen, es ist Geschmackssache, für was man sich entscheidet.

Eine einfache Anweisung in Form eines Codeschnipsels führt hier nicht weiter.

Viele​ Grüße​ Gisbert​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

supernova1963

Hallo Marek,

hast du es bereits mit der ESPEasy Command Reference - https://www.letscontrolit.com/wiki/index.php/ESPEasy_Command_Reference - probiert?

Zitat<MQTT subscribe template>/cmd with payload: <command>

Wenn ich es richtig interpretiere müßte es bei dir so (oder zumindest so ähnlich) funktionieren:
/KZ_Steckdosenleiste/cmd GPIO,4,0 und
/KZ_Steckdosenleiste/cmd GPIO,4,1

lg

Gernot

PS: Mein Test - EspEasy MQTT2_DEVICE, das soweit funktioniert. Die anderen möglichen <commands> habe ich zunächst zurückgestellt:
defmod 03_Dunstabzugshaube_24 MQTT2_DEVICE Dunstabzugshaube_24
attr 03_Dunstabzugshaube_24 IODev mqtt2
attr 03_Dunstabzugshaube_24 alias Dunstabzugshaube
attr 03_Dunstabzugshaube_24 cmdIcon on:general_an@#e56524 off:general_aus
attr 03_Dunstabzugshaube_24 devStateIcon off:radio_unchecked:on on:radio_checked@#e56524:off .*:message_attention@red
attr 03_Dunstabzugshaube_24 group 4 Geräte
attr 03_Dunstabzugshaube_24 icon vent_exhaust_air
attr 03_Dunstabzugshaube_24 readingList Dunstabzugshaube_24:/fhem/03_Kueche/Dunstabzugshaube/Status/Empfang:.* Empfang\
Dunstabzugshaube_24:/fhem/03_Kueche/Dunstabzugshaube/Status/Online:.* Online\
Dunstabzugshaube_24:/fhem/03_Kueche/Dunstabzugshaube/Strom/Schalter:.* Schalter\
Dunstabzugshaube_24:/fhem/03_Kueche/Dunstabzugshaube/status:.* { json2nameValue($EVENT, 'status_', $JSONMAP) }\
Dunstabzugshaube_24:/fhem/03_Kueche/Dunstabzugshaube/tele/lwl:.* lwl\
attr 03_Dunstabzugshaube_24 room 03_Küche,99_MQTT2_DEVICE
attr 03_Dunstabzugshaube_24 setList off:noArg    /fhem/03_Kueche/Dunstabzugshaube/cmd GPIO,5,1\
on:noArg     /fhem/03_Kueche/Dunstabzugshaube/cmd GPIO,5,0\
toggle:noArg /fhem/03_Kueche/Dunstabzugshaube/cmd GPIO,5,2\

attr 03_Dunstabzugshaube_24 webCmd on:off


Marekh

#5
Danke supernova1963!
Ist ja doch leichter als ich gedacht habe:
Ich habe mir jetzt 1 Gerät für die Steckdosenleiste angelegt:


Internals:
   CID        ESPClient_84_0D_8E_4B_88_44
   DEF        ESPClient_84_0D_8E_4B_88_44
   DEVICETOPIC MQTT2_ESPClient_84_0D_8E_4B_88_44
   FUUID      5c6d37ae-f33f-01d6-f731-67088bbc8b9b463e
   IODev      MQTTS_Server
   LASTInputDev MQTTS_Server
   MQTTS_Server_MSGCNT 642
   MQTTS_Server_TIME 2019-03-03 22:55:27
   MSGCNT     642
   NAME       KZ_Steckdosenleiste
   NR         1020
   STATE      1
   TYPE       MQTT2_DEVICE
   .attraggr:
   .attrminint:
   READINGS:
     2019-03-03 22:35:29   LWT             Connected
     2019-03-03 22:55:27   Signal          -49.00
     2019-03-03 22:50:08   Steckdose_1     1
     2019-03-03 22:53:30   Steckdose_2     1
     2019-03-03 22:53:29   Steckdose_3     1
     2019-03-03 22:52:09   Steckdose_4     1
     2019-03-03 22:53:01   Steckdose_USB   1
     2019-03-03 22:53:29   log             GPIO 4 Set to 1
     2019-03-03 22:53:29   mode            output
     2019-03-03 22:53:29   pin             4
     2019-03-03 22:53:29   plugin          1
     2019-03-03 22:53:29   state           1
Attributes:
   IODev      MQTTS_Server
   readingList ESPClient_84_0D_8E_4B_88_44:KZ_Steckdosen/out/LWT:.* LWT
ESPClient_84_0D_8E_4B_88_44:/KZ_Steckdosenleiste/Steckdose_USB/Steckdose_USB:.* Steckdose_USB
ESPClient_84_0D_8E_4B_88_44:/KZ_Steckdosenleiste/Steckdose_2/Steckdose_2:.* Steckdose_2
ESPClient_84_0D_8E_4B_88_44:/KZ_Steckdosenleiste/Signal/Signal:.* Signal
ESPClient_84_0D_8E_4B_88_44:/KZ_Steckdosenleiste/Steckdose_3/Steckdose_3:.* Steckdose_3
ESPClient_84_0D_8E_4B_88_44:/KZ_Steckdosenleiste/Steckdose_1/Steckdose_1:.* Steckdose_1
ESPClient_84_0D_8E_4B_88_44:/KZ_Steckdosenleiste/Steckdose_4/Steckdose_4:.* Steckdose_4
ESPClient_84_0D_8E_4B_88_44:/KZ_Steckdosenleiste/status/LWT:.* LWT
ESPClient_84_0D_8E_4B_88_44:/KZ_Steckdosenleiste/status:.* { json2nameValue($EVENT) }
   room       MQTT2_DEVICE


Und 5 "Untergeräte" für die jeweiligen Steckdosen der Steckdosenleiste:

Internals:
   CFGFN     
   CID        ESPClient_84_0D_8E_4B_88_44
   DEF        ESPClient_84_0D_8E_4B_88_44
   DEVICETOPIC KZ_Steckdosenleiste_Dose_1
   FUUID      5c7c49ef-f33f-01d6-70f7-25f52ebe016fc095
   IODev      MQTTS_Server
   LASTInputDev MQTTS_Server
   MQTTS_Server_MSGCNT 38
   MQTTS_Server_TIME 2019-03-03 22:50:08
   MSGCNT     38
   NAME       KZ_Steckdosenleiste_Dose_1
   NR         11535
   STATE      on
   TYPE       MQTT2_DEVICE
   .attraggr:
   .attrminint:
   OLDREADINGS:
   READINGS:
     2019-03-03 22:50:08   Steckdose_1     1
     2019-03-03 22:50:08   state           on
Attributes:
   IODev      MQTTS_Server
   devStateIcon on:on:off off:off:on
   readingList ESPClient_84_0D_8E_4B_88_44:/KZ_Steckdosenleiste/Steckdose_1/Steckdose_1:.* Steckdose_1
   room       MQTT2_DEVICE
   setList    on:noArg /KZ_Steckdosenleiste/cmd GPIO,5,1\
off:noArg /KZ_Steckdosenleiste/cmd GPIO 5,0


Internals:
   CFGFN     
   CID        ESPClient_84_0D_8E_4B_88_44
   DEF        ESPClient_84_0D_8E_4B_88_44
   DEVICETOPIC KZ_Steckdosenleiste_Dose_2
   FUUID      5c7c4c1f-f33f-01d6-d345-c9c0f712e98da9a4
   IODev      MQTTS_Server
   NAME       KZ_Steckdosenleiste_Dose_2
   NR         11598
   STATE      on
   TYPE       MQTT2_DEVICE
   .attraggr:
   .attrminint:
   READINGS:
     2019-03-03 22:53:29   state           on
Attributes:
   IODev      MQTTS_Server
   devStateIcon on:on:off off:off:on
   readingList ESPClient_84_0D_8E_4B_88_44:/KZ_Steckdosenleiste/Steckdose_1/Steckdose_1:.* Steckdose_1
   room       MQTT2_DEVICE
   setList    on:noArg /KZ_Steckdosenleiste/cmd GPIO,4,1\
off:noArg /KZ_Steckdosenleiste/cmd GPIO 4,0


Internals:
   CFGFN     
   CID        ESPClient_84_0D_8E_4B_88_44
   DEF        ESPClient_84_0D_8E_4B_88_44
   DEVICETOPIC KZ_Steckdosenleiste_Dose_3
   FUUID      5c7c4c49-f33f-01d6-1cf1-1a796c72d11d2a68
   IODev      MQTTS_Server
   NAME       KZ_Steckdosenleiste_Dose_3
   NR         11601
   STATE      on
   TYPE       MQTT2_DEVICE
   .attraggr:
   .attrminint:
   READINGS:
     2019-03-03 22:53:28   state           on
Attributes:
   IODev      MQTTS_Server
   devStateIcon on:on:off off:off:on
   readingList ESPClient_84_0D_8E_4B_88_44:/KZ_Steckdosenleiste/Steckdose_1/Steckdose_1:.* Steckdose_1
   room       MQTT2_DEVICE
   setList    on:noArg /KZ_Steckdosenleiste/cmd GPIO,12,1\
off:noArg /KZ_Steckdosenleiste/cmd GPIO 12,0

Internals:
   CFGFN     
   CID        ESPClient_84_0D_8E_4B_88_44
   DEF        ESPClient_84_0D_8E_4B_88_44
   DEVICETOPIC KZ_Steckdosenleiste_Dose_4
   FUUID      5c7c4c6c-f33f-01d6-b10e-1adc19d7ef3a853b
   IODev      MQTTS_Server
   NAME       KZ_Steckdosenleiste_Dose_4
   NR         11604
   STATE      on
   TYPE       MQTT2_DEVICE
   .attraggr:
   .attrminint:
   READINGS:
     2019-03-03 22:52:08   state           on
Attributes:
   IODev      MQTTS_Server
   devStateIcon on:on:off off:off:on
   readingList ESPClient_84_0D_8E_4B_88_44:/KZ_Steckdosenleiste/Steckdose_1/Steckdose_1:.* Steckdose_1
   room       MQTT2_DEVICE
   setList    on:noArg /KZ_Steckdosenleiste/cmd GPIO,13,1\
off:noArg /KZ_Steckdosenleiste/cmd GPIO 13,0

Internals:
   CFGFN     
   CID        ESPClient_84_0D_8E_4B_88_44
   DEF        ESPClient_84_0D_8E_4B_88_44
   DEVICETOPIC KZ_Steckdosenleiste_USB
   FUUID      5c7c4c98-f33f-01d6-efb9-2d5e8460b932f747
   IODev      MQTTS_Server
   NAME       KZ_Steckdosenleiste_USB
   NR         11609
   STATE      on
   TYPE       MQTT2_DEVICE
   .attraggr:
   .attrminint:
   READINGS:
     2019-03-03 22:53:01   state           on
Attributes:
   IODev      MQTTS_Server
   devStateIcon on:on:off off:off:on
   readingList ESPClient_84_0D_8E_4B_88_44:/KZ_Steckdosenleiste/Steckdose_1/Steckdose_1:.* Steckdose_1
   room       MQTT2_DEVICE
   setList    on:noArg /KZ_Steckdosenleiste/cmd GPIO,14,1\
off:noArg /KZ_Steckdosenleiste/cmd GPIO 14,0


Marek

carlos

Dank https://forum.fhem.de/index.php/topic,97586 geht das jetzt in einem device!
Siehe Bild meiner 3 fach Steckdosenleiste mit USB.
Gruß
Carlos
FHEM svn auf Intel NUC mit proxmox,1 UDOO, 3 Raspberry Pi, signalduino, nanoCUL, div. Homematic Komponenten, toom Baumarkt Funksteckdosen, einige sonoffs, hue, shelly

Beta-User

Wenn ich mich da kurz einschalten darf:

Wäre es möglich, daraus ein Beispieltemplate zu basteln?
Fehlt noch in meiner Liste (ist aber schon klar, dass das aufgrund der großen Flexibilität bei ESPEasy schwierig ist, da einen Standard zu finden; vielleicht wäre es einfacher, wenn keine sprechenden Namen für die GPIOs verwendet würden (kann man später ja anpassen, das template sollte nur nachvollziehbar das Prinzip erläutern)...

Anregung noch: aus dem Titel wird nicht klar, dass es hier um ein MQTT2_DEVICE geht. Wäre ggf. hilfreich, wenn mal wieder jemand nach sowas sucht.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files