Hallo zusammen,
ich habe mir dieses 2 Kanal Relay gekauft. Mein Mosquitto hat die Verbindung hergestellt.
https://de.aliexpress.com/item/1005001729638858.html?spm=a2g0s.9042311.0.0.27424c4dXi60G1
Mein Broker ist so eingerichtet:
defmod myBroker MQTT2_CLIENT 192.168.xxx.xxx:1883
attr myBroker autocreate simple
attr myBroker room System
setstate myBroker opened
setstate myBroker 2021-05-31 10:07:49 state opened
Das Relay hat sich jetzt per Autocreate neu erzeugt.
Wie kann ich jetzt die Relays schalten ?
defmod Digitain_2_Channel_Relay MQTT2_DEVICE myBroker
attr Digitain_2_Channel_Relay readingList myBroker:/dingtian/relay1225/out/r1:.* r1\
myBroker:/dingtian/relay1225/out/r2:.* r2\
myBroker:/dingtian/relay1225/out/i1:.* i1\
myBroker:/dingtian/relay1225/out/i2:.* i2\
myBroker:/dingtian/relay1225/out/relay1:.* { json2nameValue($EVENT) }\
myBroker:/dingtian/relay1225/out/relay2:.* { json2nameValue($EVENT) }\
myBroker:/dingtian/relay1225/out/input1:.* { json2nameValue($EVENT) }\
myBroker:/dingtian/relay1225/out/input2:.* { json2nameValue($EVENT) }\
myBroker:/dingtian/relay1225/out/ip:.* ip\
myBroker:/dingtian/relay1225/out/sn:.* sn\
myBroker:/dingtian/relay1225/out/mac:.* mac\
myBroker:/dingtian/relay1225/out/input_cnt:.* input_cnt\
myBroker:/dingtian/relay1225/out/relay_cnt:.* relay_cnt\
myBroker:Advantech/DEVNAME/ctl/do1:.* { json2nameValue($EVENT) }
attr Digitain_2_Channel_Relay room Netzwerk_Aktoren
setstate Digitain_2_Channel_Relay 2021-05-31 10:11:08 IODev myBroker
setstate Digitain_2_Channel_Relay 2021-05-31 10:51:38 i1 OFF
setstate Digitain_2_Channel_Relay 2021-05-31 10:51:38 i2 OFF
setstate Digitain_2_Channel_Relay 2021-05-31 10:51:38 idx 2
setstate Digitain_2_Channel_Relay 2021-05-31 10:51:38 input_cnt 2
setstate Digitain_2_Channel_Relay 2021-05-31 10:51:38 ip 192.168.178.8
setstate Digitain_2_Channel_Relay 2021-05-31 10:51:38 mac bc:34:88:00:04:1a
setstate Digitain_2_Channel_Relay 2021-05-31 10:51:38 r1 OFF
setstate Digitain_2_Channel_Relay 2021-05-31 10:51:38 r2 OFF
setstate Digitain_2_Channel_Relay 2021-05-31 10:51:38 relay_cnt 2
setstate Digitain_2_Channel_Relay 2021-05-31 10:51:38 sn 1225
setstate Digitain_2_Channel_Relay 2021-05-31 10:51:38 status HIGH
setstate Digitain_2_Channel_Relay 2021-05-31 10:25:13 v true
Ich hoffe ihr könnt mir helfen.
Von der verlinkten Seite kann man die SDK runterladen, da drin ist ein user_manual_en.pdf zu finden, was wiederum einen Abschnitt ueber MQTT enthaelt. Im MQTT Verzeichnis gibt es eine Datei MQTT_sub_and_pub.txt mit einigen konkreten Beispielen.
(Rudi war mal wieder schneller)
Vorbemerkung:
Sowas ist tendenziell viel einfacher (wenn man keine Doku hat... oder findet, Danke Rudi), wenn man MQTT2_SERVER als Broker verwendet; damit sieht man nämlich auch die subscriptions (also "worauf" der Client (=die Gegenstelle) denn hört/Befehle erwartet).
Habe jetzt mal ein paar Dinge geraten:
defmod Digitain_2_Channel_Relay MQTT2_DEVICE myBroker
attr Digitain_2_Channel_Relay readingList myBroker:/dingtian/relay1225/out/r1:.* {{state => lc($EVENT)}}\
myBroker:/dingtian/relay1225/out/r2:.* r2\
myBroker:/dingtian/relay1225/out/i1:.* i1\
myBroker:/dingtian/relay1225/out/i2:.* i2\
myBroker:/dingtian/relay1225/out/relay1:.* {}\
myBroker:/dingtian/relay1225/out/relay2:.* {}\
myBroker:/dingtian/relay1225/out/input1:.* {}\
myBroker:/dingtian/relay1225/out/input2:.* {}\
myBroker:/dingtian/relay1225/out/ip:.* ip\
myBroker:/dingtian/relay1225/out/sn:.* sn\
myBroker:/dingtian/relay1225/out/mac:.* mac\
myBroker:/dingtian/relay1225/out/input_cnt:.* {}\
myBroker:/dingtian/relay1225/out/relay_cnt:.* {}
attr Digitain_2_Channel_Relay room Netzwerk_Aktoren
attr Digitain_2_Channel_Relay setList on /dingtian/relay1225/in/r1 ON\
off /dingtian/relay1225/in/r1 OFF\
relay2:ON,OFF /dingtian/relay1225/in/r2 $EVTPART1
Geraten sind:
- Der "Advantech"-Pfad war irgendein unbeabsichtigter Test/Rest?
- wer auf "out" sendet, hört auf "in"... (sehr unsicher!)
- die JSON-Pfade sind nur Doppelungen der Klartext-Topics (=> näheres würde die Analyse des MQTT-Verkehrs ergeben) => daher schlicht keine Auswertung.
Interessant wäre: sind die Inputs unabhängig von den Outputs?
Ansonsten würde ich noch dazu raten, Kanal 2 in ein eigenes M2D zu verfrachten, damit auch SetExtensions etc. stressfrei funktionieren.
Hoffe, damit kommst du erst mal weiter.
EDIT: Code nochmal geändert (erste Zeile rL).
Vielen Dank euch beiden.
Werde mein Glück versuchen.
Möchte auch noch ESP8266 mit Sensoren und Aktoren einbinden.
Zitat von: Beta-User am 31 Mai 2021, 11:09:30
(Rudi war mal wieder schneller)
Vorbemerkung:
Sowas ist tendenziell viel einfacher (wenn man keine Doku hat... oder findet, Danke Rudi), wenn man MQTT2_SERVER als Broker verwendet; damit sieht man nämlich auch die subscriptions (also "worauf" der Client (=die Gegenstelle) denn hört/Befehle erwartet).
Habe jetzt mal ein paar Dinge geraten:
defmod Digitain_2_Channel_Relay MQTT2_DEVICE myBroker
attr Digitain_2_Channel_Relay readingList myBroker:/dingtian/relay1225/out/r1:.* {state => lc($EVENT)}\
myBroker:/dingtian/relay1225/out/r2:.* r2\
myBroker:/dingtian/relay1225/out/i1:.* i1\
myBroker:/dingtian/relay1225/out/i2:.* i2\
myBroker:/dingtian/relay1225/out/relay1:.* {}\
myBroker:/dingtian/relay1225/out/relay2:.* {}\
myBroker:/dingtian/relay1225/out/input1:.* {}\
myBroker:/dingtian/relay1225/out/input2:.* {}\
myBroker:/dingtian/relay1225/out/ip:.* ip\
myBroker:/dingtian/relay1225/out/sn:.* sn\
myBroker:/dingtian/relay1225/out/mac:.* mac\
myBroker:/dingtian/relay1225/out/input_cnt:.* {}\
myBroker:/dingtian/relay1225/out/relay_cnt:.* {}
attr Digitain_2_Channel_Relay room Netzwerk_Aktoren
attr Digitain_2_Channel_Relay setList on /dingtian/relay1225/in/r1 ON\
off /dingtian/relay1225/in/r1 OFF\
relay2:ON,OFF /dingtian/relay1225/in/r2 $EVTPART1
Geraten sind:
- Der "Advantech"-Pfad war irgendein unbeabsichtigter Test/Rest?
- wer auf "out" sendet, hört auf "in"... (sehr unsicher!)
- die JSON-Pfade sind nur Doppelungen der Klartext-Topics (=> näheres würde die Analyse des MQTT-Verkehrs ergeben) => daher schlicht keine Auswertung.
Interessant wäre: sind die Inputs unabhängig von den Outputs?
Ansonsten würde ich noch dazu raten, Kanal 2 in ein eigenes M2D zu verfrachten, damit auch SetExtensions etc. stressfrei funktionieren.
Hoffe, damit kommst du erst mal weiter.
Na dann mal viel Erfolg (auch wenn ich die ESP8266 "na ja" finde, aber das ist ein anderes Thema).
Leider hat sich das überschnitten: in der ersten Zeile der rL braucht es vermutlich doppelte Klammern, siehe meinen Edit im vorherigen Post.