MQTT - ESPEASY - Schalter

Begonnen von noxx, 10 Juni 2017, 15:57:05

Vorheriges Thema - Nächstes Thema

noxx

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ß


P.A.Trick

Poste mal den Output von
tail /var/log/mosquitto/mosquitto.log



Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

noxx

#2

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"

P.A.Trick

Ja wahrscheinlich war ein Typo im Subcride, dann disconnected der Broker!
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

noxx

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


schka17

Im Reading Switch hast du aber den richtigen Status, oder sehe ich das falsch?


Sent from my iPad using Tapatalk
M: Thinclient x64 Debian | CUL FS20, HMS100WD, HMS100TF, HMS100T, HMS100CO, S300, S555TH | OWServer DS1420, DS18B20, DS2408 | RFXCOM UVN128, THWR800, THGR228N,RTGR328, PCR800 |Jeelink PCA301 EC3000|CUNO+IR|HMLAN|HMUSB|CUL433 Somfy|mySensors|espEasy
S1:Raspberry mit BPM810, Jeelink EC3000

noxx

#6
Scheint so

Gesendet von meinem GT-I9195 mit Tapatalk

Edit

Nein, ist immer auf 0

schka17

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/#"
M: Thinclient x64 Debian | CUL FS20, HMS100WD, HMS100TF, HMS100T, HMS100CO, S300, S555TH | OWServer DS1420, DS18B20, DS2408 | RFXCOM UVN128, THWR800, THGR228N,RTGR328, PCR800 |Jeelink PCA301 EC3000|CUNO+IR|HMLAN|HMUSB|CUL433 Somfy|mySensors|espEasy
S1:Raspberry mit BPM810, Jeelink EC3000

noxx

Grün und Rot wechselt, nur falsch herum. Die anderen Punkte prüfe ich heute abend.

Gesendet von meinem GT-I9195 mit Tapatalk


noxx

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







noxx

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


schka17

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
M: Thinclient x64 Debian | CUL FS20, HMS100WD, HMS100TF, HMS100T, HMS100CO, S300, S555TH | OWServer DS1420, DS18B20, DS2408 | RFXCOM UVN128, THWR800, THGR228N,RTGR328, PCR800 |Jeelink PCA301 EC3000|CUNO+IR|HMLAN|HMUSB|CUL433 Somfy|mySensors|espEasy
S1:Raspberry mit BPM810, Jeelink EC3000

noxx

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

schka17

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
M: Thinclient x64 Debian | CUL FS20, HMS100WD, HMS100TF, HMS100T, HMS100CO, S300, S555TH | OWServer DS1420, DS18B20, DS2408 | RFXCOM UVN128, THWR800, THGR228N,RTGR328, PCR800 |Jeelink PCA301 EC3000|CUNO+IR|HMLAN|HMUSB|CUL433 Somfy|mySensors|espEasy
S1:Raspberry mit BPM810, Jeelink EC3000

noxx

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