Modul-Konzeption: Generic MQTT Bridge

Begonnen von hexenmeister, 21 Dezember 2017, 22:35:38

Vorheriges Thema - Nächstes Thema

Master_Nick

#90
Also wie man am Ende seinen Device steuern muss hängt ja sehr vom genutzten oder selbst geschriebenen Programm ab.

Aktuell ist ja es so, FHEM kann selber Nicht MQTT Devices mittels der Bridge in MQTT bekannt machen/publishen aber bekommt Steuerung von außen für diese Devices nicht mit.
Wenn man nun schon andere echte MQTT Devices nutzt (SonOff etc) dann wäre es aus meiner persönlichen Sicht sehr unpraktisch da nun spezial Befehle zu nutzen.

Ggf schaust du dir mal die Steuerung von echten MQTT Devices mittels FHEM an - Ich denke und hoffe, dass hexenmeister sich da großteils in der Richtung bewegt *g* :-D

Ich steure da mit /Mein/Topic/Gerät/set on off    und mappe es zu true und false oder es sind Thermostate dann gibt es Werte und wieder ein Mapping.

Sofern ich natürlich deinen Post nicht einfach falsch verstanden habe :-D
Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)

hexenmeister

Zitat von: LuBeDa am 18 März 2018, 17:54:14
Dadurch kann er auch andere Befehle wie update all etc. übergeben. Dann muss beim Sender (z.B. Node-Red) die Logik zum Zusammenbau der Steuerbefehle liegen.

@Hexenmeister: Hast du da schon einen Ansatz? Habe ich etwas übersehen?
Das ginge jetzt schon ohne komplexe Notify-Logik.
MQTT_DEVICE unterstützt schon eine Weile direkt eine Perl-Expression in dem Subscribe Attribut.
attr <name> subscribeReading_<reading> [{Perl-expression}] [qos:?] [retain:?] <topic>
(s. https://fhem.de/commandref.html#MQTT_DEVICE)
Damit kann man natürlich Message-Inhalt an fhem(...)-Befehl übergeben.

Ob und wie das in die Bridge reinkommt... weiß ich noch nicht, vlt. auf eine ähnliche Weise.

Die Entwicklung stockts gerade ein wenig, aufgrund paar persönnlichen Umstände hatte ich noch nicht genug Zeit "am Stück" finden können. :(
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Master_Nick

Hehe :-)
So spielt das Leben - Hab gerade heute meinen Touch-Monitor endlich eingefasst und montagefertig gemacht... lag hier seit Dezember.
Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)

Shojo

Moin moin,

gibt es mittlerweile  was neues zum Modul? :)

Gruß
Dennis
FHEM auf: Shuttle PC (x64) (Docker)
Bridge: SignalESP 433mHz, ConBee (deCONZ in Docker)
Rest: ESP8266, SONOFF, Sonos, Echo Dot, Xiaomi Vacuum (root), ESP RGBWW Wifi Led Controller, Node-RED, LEDMatrix, Pixel It

hexenmeister

Bin gerade leider stark anderweitig eingebunden :(
Eine brauchbare Version mit "subscribe"-Unterstützung kann ich leider noch nicht anbieten.
Es bewegt sich aber weiter, auch wenn deutlich langsamer, als ich mir wünschen würde.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Shojo

Da kann man leider nicht viel machen ;)
Danke dir für die Info!
FHEM auf: Shuttle PC (x64) (Docker)
Bridge: SignalESP 433mHz, ConBee (deCONZ in Docker)
Rest: ESP8266, SONOFF, Sonos, Echo Dot, Xiaomi Vacuum (root), ESP RGBWW Wifi Led Controller, Node-RED, LEDMatrix, Pixel It

hexenmeister

Danke für die Geduld, ich hoffe bald bessere Nachrichte zu bringen :)
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Master_Nick

Alles gut!
Wir warten geduldig - gibt halt wichtigere Dinge :-)
Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)

Shojo

#98
Ja bitte nicht stressen lassen, soll doch noch alles Spaß machen hier :)

Dank deiner Erweiterung am MQTT_DEVICE, konnte ich das so auch wunderbar umsetzt  8)

Zitat von: hexenmeister am 18 März 2018, 20:35:57
MQTT_DEVICE unterstützt schon eine Weile direkt eine Perl-Expression in dem Subscribe Attribut.
attr <name> subscribeReading_<reading> [{Perl-expression}] [qos:?] [retain:?] <topic>
FHEM auf: Shuttle PC (x64) (Docker)
Bridge: SignalESP 433mHz, ConBee (deCONZ in Docker)
Rest: ESP8266, SONOFF, Sonos, Echo Dot, Xiaomi Vacuum (root), ESP RGBWW Wifi Led Controller, Node-RED, LEDMatrix, Pixel It

hexenmeister

Hier ist eine erste funktionsfähige Version mit Subscribe-Unterstützung. Noch keine Wildcards und sonstige Extras.
Es geht lediglich eine eindeutige Topic-Definition in Form:
attr <dev> mqttSubscribe <reading>:topic=<topic>

Mein Testbeispiel:

defmod mqGenTest dummy
attr mqGenTest mqttSubscribe test:topic=/TEST/test/state


Sendet man jetzt etwas auf den Topic '/TEST/test/state' bekommt mqGenTest ein neues Reading (falls noch nicht vorhanden) und es wird der Wert der Nachricht reingeschrieben.

Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Master_Nick

Pfoaa geil! Da kommst du genau heute mit, wo ich alle Thermostate auf Nest Optik umgebaut habe :-D
GEIL teste ich morgen!  8) 8) 8) 8) 8)

Nest Optik in Node Red:  8) https://forum.fhem.de/index.php/topic,78512.msg793661.html#msg793661
Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)

Master_Nick

Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)

hexenmeister

Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Master_Nick

#103
Ich entdecke gerade ein Problem in meinem Setup, ich habe noch in direkter Nähe am nanoCUL einige IT - V1 und V3 433 Dinger. Diese in MQTT eingebunden ergeben eine Änderung bei state, aber eine Schaltung passiert aufgrund dieser Änderung nicht. Ich bin mir gerade unklar wo nun der Knackpunkt liegt IT oder fehlt noch ein Eventmap oder so :-D


Internals:
   00         f0
   CFGFN     
   DEF        000000000F FF F0
   IODev      nanoCUL
   NAME       Spot
   NR         49
   STATE      off
   TYPE       IT
   XMIT       000000000f
   XMITdimdown 00
   XMITdimup  00
   XMITon     ff
   CODE:
     1          000000000f
   READINGS:
     2017-02-10 17:58:18   protocol        V1
     2018-04-16 22:34:30   state           off
Attributes:
   IODev      nanoCUL
   alexaName  Spot
   alexaRoom  Wohnzimmer
   genericDeviceType light
   group      Licht
   icon       light_ceiling
   mqttDefaults base={"homeland/haushalt/elektrik/wohnzimmer/$device"} pub:qos=2 sub:qos=2 retain=1
   mqttPublish state:topic={"$base/$name"} state:qos=2 state:retain=1
   mqttSubscribe state:topic=homeland/haushalt/elektrik/wohnzimmer/Spot/state/set
   room       Echo,Wohnzimmer
Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)

Master_Nick

#104
Mhh ich prüfe mal - nicht, dass nun ein FHEM Update was hier mit der Bridge gemacht hat... aber aktuell schaltet eine Veränderung im MQTT Topic am Ende nichts... das Reading wird verändert auf FHEM Seite aber es passiert keine Reaktion von FHEM auf das geänderte Reading und somit wird am Thermostat nix gemacht.

Das gleiche habe ich bei 433 Intertechno Geräten ja bereits beobachtet. Seltsam, beim Thermostat ging es eigentlich O_o


EDIT: Also ich habe nun alle Dateien nochmal geprüft auf aktuellen Stand. Am 26.04. wurde ja noch was ins Repo eingecheckt (Thread "Patch für mehrere Probleme mit Topics und Payload") es scheint als wäre nun irgendwas nicht mehr wie vorher.

Vorher wurde das Reading geändert über mqttSubscribe und daraufhin hatte FHEM bisher getriggert und im Modul gingen die Vorgänge los und das Thermostat wurde auf die über MQTT gesetzte Temperatur gesetzt.
Nun sehe ich lediglich ja Reading wird geändert - es kommt sogar das mqttPublish zum tragen (angezeigt wird in Node-RED alles korrekt) aber die Funktion die das Reading zum Thermometer bringt... da ist irgendwie was anders - am Modul vom Thermometer wurde nix gemacht seit geraumer Zeit. Es kommt dann dazu, dass das Thermostat in eine regelmäßigen Zeit immer zum Updatestatement angeregt wird und dann merkt man es wurde gar nichts verändert.
Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)