[Gelöst] ESPEasy Relais über MQTT von FHEM aus schalten

Begonnen von Gear, 27 April 2018, 00:10:43

Vorheriges Thema - Nächstes Thema

Gear

Guten Abend,

ich wollte ein paar Schalter über MQTT schalten lassen, da mehr wie ein Device auf das Topic lauscht, will da nicht unnötig Traffic erzeugen.

Ich finde, der Weg "ESP > Fhem (via ESPEasy Device) > MQTT > Andere Geräte" ist sehr unnötig.
Würde das gerne so machen "ESP > MQTT > Alle die nen Sub sehen es".

Also ich habe mal zum testen ein MQTT_Device angelegt, hier kann ich lauschen und mir anderen Geräten kann ich auch lauschen.
Nun kann ich aber in dem Fall das Relais nicht aus FHEM schalten, bzw. ich habe keine Ahnung wie ich mit dem ESP auf ein Topic lauschen kann.

MQTT Defice:
defmod WZ.TV MQTT_DEVICE
attr WZ.TV DbLogExclude .*
attr WZ.TV IODev mqtt
attr WZ.TV eventMap 1:ON 0:OFF
attr WZ.TV publishSet ON OFF /SH/W/WZ/MCU/cmnd/Rel1
attr WZ.TV stateFormat state
attr WZ.TV subscribeReading_state /SH/W/WZ/MCU/stat/Rel1
attr WZ.TV webCmd ON:OFF


Das Topic im MQTT Broker vom ESP sieht so aus:
/SH/W/WZ/MCU/stat/Rel1 0
/SH/W/WZ/MCU/stat/Rel1 1


Das Topic im MQTT Broker vom FHEM sieht so aus:
/SH/W/WZ/MCU/cmnd/Rel1 0
/SH/W/WZ/MCU/cmnd/Rel1 1


Im ESP habe ich folgendes unter Controller eingestellt:
Controller Subscribe: /SH/W/WZ/MCU/cmnt/#
Controller Publish: /SH/W/WZ/MCU/stat/%valname%

Der Publish vom ESP geht, wenn ich es per URL den Status ändere, das erkennt FHEM.
Aber der ESP lauscht eben nicht.
Das ich was falsch eingestellt habe, will ich nun auch nicht ausschließen, da ich mit "MQTT > ESPEasy" keine Ahnung habe und auch nicht so füdig geworden bin.
Ich weiß, man kann ein Device anlegen und dort dann bis zu 4 MQTT Topis belauschen, doch dann muss ich mit Rules arbeiten, will ich aber für so etwas nicht zwingend.


Ich hoffe ihr könnt mir helfen!

Grüße
Gear
> ODroid H3 => OMV => Docker => FHEM <
Fritz!Box 7590, Fritz!Repeater 6000, MQTT, RaspberryMatic, Zigbee2MQTT, ESP32, ESP8266, Shelly, Grafana ...
> 3D-Druck <

mark79

Hallo, versuch es mal mit:
attr WZ.TV publishSet 1 0 /SH/W/WZ/MCU/cmnd/Rel1

Damit sollte das schalten gehen. ESPeasy kennt nur 0/1.
Ich würde lieber Tasmota nehmen, da geht on/off und es ist einfacher einzurichten.


Viele Grüße
Mark
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

Gear

#2
Hallo @mark79,

ich hatte das wie du es vorgeschlagen hast versucht, geht dennoch nicht.

Über dieses attr wandelt er es um.
attr WZ.TV eventMap 1:ON 0:OFF
Wenn ich ON Drücke wird es als 1 an MQTT übertragen, bei OFF als 0.

Daran liegt es nicht, es muss glaub am ESP selbst liegen, der nicht zu lauschen scheint, bzw. falsch zu lauschen scheint.
> ODroid H3 => OMV => Docker => FHEM <
Fritz!Box 7590, Fritz!Repeater 6000, MQTT, RaspberryMatic, Zigbee2MQTT, ESP32, ESP8266, Shelly, Grafana ...
> 3D-Druck <

mark79

#3
Komisch...  ??? bei mir funktioniert das, ich spreche direkt den gpio an (publishSet).
Hier mal als ganzes:

defmod WZ_Lichtschalter MQTT_DEVICE
attr WZ_Lichtschalter DbLogExclude .*
attr WZ_Lichtschalter IODev myBroker
attr WZ_Lichtschalter devStateIcon ON:FS20.on OFF:FS20.off
attr WZ_Lichtschalter eventMap 1:ON 0:OFF
attr WZ_Lichtschalter group Licht
attr WZ_Lichtschalter icon light_ceiling
attr WZ_Lichtschalter publishSet 1 0 /WZ_Lichtschalter/gpio/12
attr WZ_Lichtschalter room 3_Wohnzimmer
attr WZ_Lichtschalter stateFormat state
attr WZ_Lichtschalter subscribeReading_state /WZ_Lichtschalter/Relay/state
attr WZ_Lichtschalter webCmd ON:OFF


MQTT Ausgabe:
/WZ_Lichtschalter/gpio/12 1
/WZ_Lichtschalter/Relay/state 1

/WZ_Lichtschalter/gpio/12 0
/WZ_Lichtschalter/Relay/state 0


Mit dem Device Namen (Relay) in ESPeasy gehts bei mir auch nicht. Habe das gerade ausprobiert:
publishSet 1 0 /WZ_Lichtschalter/cmnd/Relay

EDIT:
Die Controller Settings in ESPeasy stehen bei mir auf OpenHAB MQTT:
Controller Subscribe:   /%sysname%/#
Controller Publish:   /%sysname%/%tskname%/%valname%
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

Gear

Ah, okey, dann scheint mein Sub im ESP nicht zu stimmen!
Muss ich nachher mal testen, wenn ich wieder daheim bin.

Vielen Dank, ich glaube, dass dein Post mir da helfen kann.
Mein Sub hatte ich in Verzweiflung dann abgeändert...

Ich habe die Relais erst mal so benannt, da ich vor dem Anschließen noch nicht gewusst habe, was später wie angeschlossen wird.

Ich melde mich, wenn ich das getestet habe.


Danke! =)
> ODroid H3 => OMV => Docker => FHEM <
Fritz!Box 7590, Fritz!Repeater 6000, MQTT, RaspberryMatic, Zigbee2MQTT, ESP32, ESP8266, Shelly, Grafana ...
> 3D-Druck <

Gear

Oh man, ich hab den Fehler gefunden...

Das man die GPIOs schalten muss, da wäre ich z.B. nie drauf gekommen, man muss aber auch den ESP nach dem einstellen des Contoller (MQTT Sub) neustarten, damit der das Aktiviert... =D

Vielen Dank!!
> ODroid H3 => OMV => Docker => FHEM <
Fritz!Box 7590, Fritz!Repeater 6000, MQTT, RaspberryMatic, Zigbee2MQTT, ESP32, ESP8266, Shelly, Grafana ...
> 3D-Druck <

mark79

Freut mich das es jetzt klappt. :)

ESPeasy ist manchmal zickig und sehr komplex, wenn du keine Rules benötigst, würde ich lieber die Tasmota FW nehmen.
Bei den meisten meiner Sonoffs habe ich diese FW drauf und diese ist viel einfacher einzurichten.

Hier ein List für Tasmota:
defmod WZ_Stehlampe MQTT_DEVICE
attr WZ_Stehlampe DbLogExclude .*
attr WZ_Stehlampe IODev myBroker
attr WZ_Stehlampe WZ_Stehlampe WZ_TV_Abends
attr WZ_Stehlampe devStateIcon ON:FS20.on OFF:FS20.off
attr WZ_Stehlampe group Licht
attr WZ_Stehlampe icon light_floor_lamp
attr WZ_Stehlampe publishSet ON OFF cmnd/4ch/POWER4
attr WZ_Stehlampe room 3_Wohnzimmer
attr WZ_Stehlampe stateFormat state
attr WZ_Stehlampe subscribeReading_state stat/4ch/POWER4
attr WZ_Stehlampe webCmd ON:OFF



Viele Grüße
Mark
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

Gear

Ich hab diverse Dinge dran am MCU, Serielle Geräte und einen Stromzähler via S0.
Und Rules nutze ich auch, aber nicht dafür.
> ODroid H3 => OMV => Docker => FHEM <
Fritz!Box 7590, Fritz!Repeater 6000, MQTT, RaspberryMatic, Zigbee2MQTT, ESP32, ESP8266, Shelly, Grafana ...
> 3D-Druck <