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ß
Poste mal den Output von
tail /var/log/mosquitto/mosquitto.log
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"
Ja wahrscheinlich war ein Typo im Subcride, dann disconnected der Broker!
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
Im Reading Switch hast du aber den richtigen Status, oder sehe ich das falsch?
Sent from my iPad using Tapatalk
Scheint so
Gesendet von meinem GT-I9195 mit Tapatalk
Edit
Nein, ist immer auf 0
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/#"
Grün und Rot wechselt, nur falsch herum. Die anderen Punkte prüfe ich heute abend.
Gesendet von meinem GT-I9195 mit Tapatalk
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
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
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
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
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
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
Ganz genau. Lass mal fhem aussen vor. Wie sieht denn die mqtt topic configuration aus?
Sent from my iPad using Tapatalk
Wo finde ich die info?
Gesendet von meinem GT-I9195 mit Tapatalk
Unter Tools/advanced subscribe template und publish template, dort wo du die topics eingetragen hast
Sent from my iPad using Tapatalk