FHEM Forum

FHEM - Hausautomations-Systeme => MQTT => Thema gestartet von: noxx am 10 Juni 2017, 15:57:05

Titel: MQTT - ESPEASY - Schalter
Beitrag von: noxx am 10 Juni 2017, 15:57:05
Hallo

versuche gerade die Logic von der MQTT Schnittstelle zu verstehen.
Auf meinem ESP läuft die 2.0 dev8

Mittlerweile kann ich den Temperatursensor auslesen (Bild 1). Nun wollte
ich auch ein Relais einbinden. Das klappt aber nicht. Definiert ist es mit:

define ESP01_S1 MQTT_DEVICE
attr ESP01_S1 IODev mqtt
attr ESP01_S1 room MQTT
attr ESP01_S1 subscribeReading_S1/hooks/devices/5/SensorData/Schalter_04

Sobald ich den subscribeReading abschicke, fangt der MQTT zwischen opened und
disconnected hin und her zuspringen. Sind die Devices falsch definiert?

Gruß

mosquitto_sub -v -t \#
/hooks/devices/2/SensorData/Schalter_01 0
/hooks/devices/3/SensorData/Schalter_02 0
/hooks/devices/4/SensorData/Schalter_03 0
/hooks/devices/5/SensorData/Schalter_04 1
/hooks/devices/1/SensorData/Temperature 20.81
/hooks/devices/5/SensorData/Schalter_04 1
/hooks/devices/6/SensorData/RSSI -53.00
/hooks/devices/7/SensorData/Uptime 0.00
/hooks/devices/5/SensorData/Schalter_04 1
/hooks/devices/5/SensorData/Schalter_04 1



EDIT
Leerzeichen fehlte hinter subscribeReading...Wie oft passiert mir das eigentlich noch? :-(

attr ESP01_S1 subscribeReading_S1 /hooks/devices/5/SensorData/Schalter_04

Nun muss ich erstmal rausfinden, wie ich daraus einen Schalter machen...

Gruß

Titel: Antw:MQTT - ESPEASY - Schalter
Beitrag von: P.A.Trick am 10 Juni 2017, 15:59:42
Poste mal den Output von
tail /var/log/mosquitto/mosquitto.log



Titel: Antw:MQTT - ESPEASY - Schalter
Beitrag von: noxx am 10 Juni 2017, 17:44:54

tail /var/log/mosquitto/mosquitto.log
1497103081: New connection from 127.0.0.1 on port 1883.
1497103081: New client connected from 127.0.0.1 as NetMQTTpm19416 (c1, k60).
1497103081: Empty subscription string from 127.0.0.1, disconnecting.
1497103081: Socket error on client NetMQTTpm19416, disconnecting.
1497103106: New connection from 127.0.0.1 on port 1883.
1497103106: New client connected from 127.0.0.1 as NetMQTTpm19431 (c1, k60).
1497104842: Saving in-memory database to /var/lib/mosquitto/mosquitto.db.
1497106643: Saving in-memory database to /var/lib/mosquitto/mosquitto.db.
1497108444: Saving in-memory database to /var/lib/mosquitto/mosquitto.db.
1497109476: Socket error on client mosqsub/19426-PI-Hole, disconnecting.




EDIT:

Schalter geht nun nach viel fummeln auch....

Ich erlaube mir mal einen Screenshot anzuhängen, zwecks "backup"
Titel: Antw:MQTT - ESPEASY - Schalter
Beitrag von: P.A.Trick am 10 Juni 2017, 18:14:54
Ja wahrscheinlich war ein Typo im Subcride, dann disconnected der Broker!
Titel: Antw:MQTT - ESPEASY - Schalter
Beitrag von: noxx am 11 Juni 2017, 20:38:06
habe nun doch ein Problem, was ich nicht lösen kann.

Mein Switch am ESP hat den Status 0 (Relais ist nicht gezogen, stimmt soweit).
FHEM zeigt aber den Status 1.

Internals:
   IODev      mqtt
   NAME       ESP03_S1
   NR         84
   STATE      On
   TYPE       MQTT_DEVICE
   qos        0
   retain     0
   Readings:
     2017-06-11 20:27:47   Switch          0
     2017-06-11 19:34:07   state           1
     2017-06-11 20:27:47   transmission-state incoming publish received
   Message_ids:
   Publishsets:
     :
       topic      /ESP03/gpio/5
       values:
         1
         0
   Sets:
     0
     1
   subscribe:
     /ESP03/Aussenlicht/Schalter_01
   subscribeExpr:
     ^\/ESP03\/Aussenlicht\/Schalter_01$
   Subscribereadings:
     /ESP03/Aussenlicht/Schalter_01 Switch
Attributes:
   IODev      mqtt
   devStateIcon On:rc_GREEN:Off Off:rc_RED:On absent:rc_BLUE:Off gpio:rc_YELLOW:Off
   eventMap   1:On 0:Off
   group      Stall
   publishSet 1 0 /ESP03/gpio/5
   room       MQTT
   stateFormat state
   subscribeReading_Switch /ESP03/Aussenlicht/Schalter_01
   webCmd     On:Off



mosquitto_sub -v -t \#
/ESP03/Aussenlicht/Schalter_01 0

Titel: Antw:MQTT - ESPEASY - Schalter
Beitrag von: schka17 am 11 Juni 2017, 22:15:34
Im Reading Switch hast du aber den richtigen Status, oder sehe ich das falsch?


Sent from my iPad using Tapatalk
Titel: Antw:MQTT - ESPEASY - Schalter
Beitrag von: noxx am 11 Juni 2017, 23:14:05
Scheint so

Gesendet von meinem GT-I9195 mit Tapatalk

Edit

Nein, ist immer auf 0
Titel: Antw:MQTT - ESPEASY - Schalter
Beitrag von: schka17 am 12 Juni 2017, 12:17:38
Irgendwas fehlt da jetzt um strukturiert vorgehen zu können.

D.h. wenn du das Relais an GPIO5 schaltest, ändert sich das reading Switch nicht?
Ändert sich der Status am ESP (nicht das Relais sondern die Anzeige im grün hinterlegten Feld)?
Welche Ausgaben bekommst du beim Schalten von moqsuitto mit
mosquitto_sub -v -t "/ESP03/Aussenlicht/#"
Titel: Antw:MQTT - ESPEASY - Schalter
Beitrag von: noxx am 12 Juni 2017, 12:40:36
Grün und Rot wechselt, nur falsch herum. Die anderen Punkte prüfe ich heute abend.

Gesendet von meinem GT-I9195 mit Tapatalk

Titel: Antw:MQTT - ESPEASY - Schalter
Beitrag von: noxx am 12 Juni 2017, 19:33:11
Habe nun nochmal was angepasst.
Rufe ich in FHEM-WEB das Device auf, steht Switch und State immer erst auf 0,
auch wenn der Status vorher anders war.

Aber zumindest wechseln nun beide.

Drücke ich ON, geht Switch auf On und State auf 1.
SSH Konsole:

mosquitto_sub -v -t \#
/ESP03/gpio/5 1
/ESP03/status Connected


Drücke ich Off, geht Switch auf Off und state auf 0.
SSH Konsole:
mosquitto_sub -v -t \#
/ESP03/gpio/5 0


Am ESP passiert aber nichts mehr, bleibt immer auf 1 :-(

Internals:
   IODev      mqtt
   NAME       ESP03_S1
   NR         84
   STATE      Off
   TYPE       MQTT_DEVICE
   qos        0
   retain     0
   Readings:
     2017-06-12 19:30:46   Switch          0
     2017-06-12 19:30:45   state           0
     2017-06-12 19:30:46   transmission-state incoming publish received
   Message_ids:
   Publishsets:
     :
       topic      /ESP03/gpio/5
       values:
         1
         0
   Sets:
     0
     1
     Off
     On
   subscribe:
     /ESP03/gpio/5
   subscribeExpr:
     ^\/ESP03\/gpio\/5$
   Subscribereadings:
     /ESP03/gpio/5 Switch
Attributes:
   IODev      mqtt
   devStateIcon On:rc_GREEN:Off Off:rc_RED:On absent:rc_BLUE:Off gpio:rc_YELLOW:Off
   eventMap   1:On 0:Off
   group      Hühnerstall
   publishSet 1 0 /ESP03/gpio/5
   room       MQTT
   stateFormat state
   subscribeReading_Switch /ESP03/gpio/5
   webCmd     On:Off



Aber warum jedes mal nach dem ich die Seite neu lade, alles wieder auf 0 springt,
ist mir ein Rätsel






Titel: Antw:MQTT - ESPEASY - Schalter
Beitrag von: noxx am 12 Juni 2017, 20:29:57
Irgendwie stimmt da mit der Verbindung zwischen ESP und dem Broker was nicht....

Den ESP kann ich manuell über einen Browser schalten mit
http://192.168.1.45/control?cmd=gpio,5,0
http://192.168.1.45/control?cmd=gpio,5,1

Der ESP wechselt sofort den Status 0 oder 1.

Parallel lausche ich mit
mosquitto_sub -v -t \#
an der Konsole.

Manchmal kommt da was an, manchmal nicht....
Habe nun 10x hin und her geschaltet, als Ausgabe kommt raus:
/ESP03/status Connected
/ESP03/devices/2/SensorData/Schalter_01 0
/ESP03/devices/1/SensorData/Temperatur 16.00
/ESP03/devices/2/SensorData/Schalter_01 1
/ESP03/devices/2/SensorData/Schalter_01 0
/ESP03/status Connected

Titel: MQTT - ESPEASY - Schalter
Beitrag von: schka17 am 12 Juni 2017, 22:09:41
Irgendwie stehe im ich da jetzt auf dem Schlauch, hast du jetzt publishset und subscribe auf das selbe topic? Kann das funktionieren? Und das passt jetzt dann wieder nicht mit dem mosquitto output zusammen?


Sent from my iPad using Tapatalk
Titel: Antw:MQTT - ESPEASY - Schalter
Beitrag von: noxx am 13 Juni 2017, 12:46:20
Ja, das Problem muss aber woanders liegen. Entweder am ESP Controller oder an mosquito.
Sehe das Problem nicht bei Fhem

Gesendet von meinem GT-I9195 mit Tapatalk
Titel: Antw:MQTT - ESPEASY - Schalter
Beitrag von: schka17 am 13 Juni 2017, 16:59:34
Zitat von: noxx am 13 Juni 2017, 12:46:20
Ja, das Problem muss aber woanders liegen. Entweder am ESP Controller oder an mosquito.
Sehe das Problem nicht bei Fhem

Gesendet von meinem GT-I9195 mit Tapatalk
Das meinte ich auch nicht. Ich stelle mir jetzt nur vor, du setzt über http den Status, der esp schaltet und sendet seinen Status über das selbe Topic das für das setzten des Status verwenden willst. Das wird natürlich vom esp als set Befehl empfangen, usw.

Ich würde mal schrittweise vorgehen und sicherstellen das Statusmeldungen sauber an den Broker geschickt werden.


Sent from my iPad using Tapatalk
Titel: Antw:MQTT - ESPEASY - Schalter
Beitrag von: noxx am 13 Juni 2017, 17:34:10
Der Broker müsste dann doch ne Meldung geben, oder? Tut er, aber nicht bei jedem http Befehl

Gesendet von meinem GT-I9195 mit Tapatalk

Titel: Antw:MQTT - ESPEASY - Schalter
Beitrag von: schka17 am 13 Juni 2017, 19:14:08
Ganz genau. Lass mal fhem aussen vor. Wie sieht denn die mqtt topic configuration aus?


Sent from my iPad using Tapatalk
Titel: Antw:MQTT - ESPEASY - Schalter
Beitrag von: noxx am 13 Juni 2017, 23:44:39
Wo finde ich die info?

Gesendet von meinem GT-I9195 mit Tapatalk

Titel: Antw:MQTT - ESPEASY - Schalter
Beitrag von: schka17 am 13 Juni 2017, 23:47:49
Unter Tools/advanced subscribe template und publish template, dort wo du die topics eingetragen hast


Sent from my iPad using Tapatalk