Modul-Konzeption: Generic MQTT Bridge

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

Vorheriges Thema - Nächstes Thema

Shojo

Zitat von: Master_Nick am 28 Februar 2018, 14:04:41
Wir haben da eh gut reden - Hexenmeister legt ja hier die Glanzleistung ab.  ;D ;D
Ja das Stimmt!

Bei mir müssten halt gute 40 Geräte auf mqtt geschoben werden, daher der Wunsch mir doch etwas Schreibarbeit zu sparen und auch der Übersicht zu liebe ;) 
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

Master_Nick

Hehe ja ich zieh auch gerade alles was Schaltbar ist oder Werte misst rüber auf MQTT für die Verwendung mit Node-RED. Das Modul hier ist super dafür (entstand glaub ich ein Stück weit in dem Node-Red Thread von mir  8) ).
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

Hier ist eine Version mit der Unterstützung für Publish-Attribute in der gewünschtenForm ;)
attr <dev> mqttPublish temperature|humidity:topic={"$base/$name"} temperature|humidity:qos=1 temperature|humidity:retain=0

globalPublish etc. geht schon fast, subscribe ist schon fast angefangen ;D
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Shojo

Zitat von: hexenmeister am 28 Februar 2018, 23:20:36
Hier ist eine Version mit der Unterstützung für Publish-Attribute in der gewünschtenForm ;)
globalPublish etc. geht schon fast, subscribe ist schon fast angefangen ;D

Das ist ja super, danke Dir! ;D
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

carlos

Hallo,
Gefällt mir schon sehr gut das modul.
Da kann man schon einiges mit machen.


Wäre es möglich hier:

In einer Expression können Variablen  verwendet werden.
             ($reading = Original-Readingname, $device = Devicename, $name = Readingalias (s. mqttAlias).


noch z.B. den Raum( $room = Raum) dazu zu nehmen?

Gruß
Carlos
FHEM svn auf Intel NUC mit proxmox,1 UDOO, 3 Raspberry Pi, signalduino, nanoCUL, div. Homematic Komponenten, toom Baumarkt Funksteckdosen, einige sonoffs, hue, shelly

Shojo

Zitat von: carlos am 01 März 2018, 13:50:32
Wäre es möglich hier:

In einer Expression können Variablen  verwendet werden.
             ($reading = Original-Readingname, $device = Devicename, $name = Readingalias (s. mqttAlias).


noch z.B. den Raum( $room = Raum) dazu zu nehmen?

Man dürfte das aber nicht in den Globalen Definitionen zulassen, da ein Device mehrere Räume haben kann.
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

carlos

Dann vielleicht als Attribute bei den devices mqttRoom oder so was in der Art.
FHEM svn auf Intel NUC mit proxmox,1 UDOO, 3 Raspberry Pi, signalduino, nanoCUL, div. Homematic Komponenten, toom Baumarkt Funksteckdosen, einige sonoffs, hue, shelly

hexenmeister

Zitat von: Shojo am 01 März 2018, 13:58:11
Man dürfte das aber nicht in den Globalen Definitionen zulassen, da ein Device mehrere Räume haben kann.
Daran habe ich auch schon gedacht.

Zitat von: carlos am 01 März 2018, 14:06:53
Dann vielleicht als Attribute bei den devices mqttRoom oder so was in der Art.
Wo ist dann ein Vorteil gegenüber einer Definition mit 'base'?
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Shojo

Man könnte aber die Variable $room in den Devices erlauben und füllen, oder?


attr <mqttGeneric> mqttDefaults base={"Haus"} pub:qos=0 sub:qos=0 retain=0

attr <dev> mqttPublish temperature|humidity:topic={"$base/$room/$name"}


Aber große Vorteile sehe ich da nicht, aber auch keine Nachteile ;)
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

Kann man ja dann einfach gleich in base Definition schreiben. Ich sehe bis jetzt immer noch keinen Vorteil.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Shojo

Zitat von: hexenmeister am 01 März 2018, 15:14:15
Ich sehe bis jetzt immer noch keinen Vorteil.

Ich auch nicht wirklich :D
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

carlos

Ich möchte nur Raum mit in die publish Anweisung aufgenommen haben, dann kann man das z.B. in nodered gleich mit verarbeiten.
Allerdings sehe ich das Problem mit mehreren Räumen, deshalb als zusatzliches attribut am Device, das man dann evtl so nutzen könnte:


attr <dev> mqttRoom Wohnzimmer
attr <dev> mqttDefaults base={"/$mqttRoom/$device/$reading"}


Keine Ahnung ob sowas implementierbar ist.

Gruß

Carlos
FHEM svn auf Intel NUC mit proxmox,1 UDOO, 3 Raspberry Pi, signalduino, nanoCUL, div. Homematic Komponenten, toom Baumarkt Funksteckdosen, einige sonoffs, hue, shelly

hexenmeister

#72
Inplementierbar ist alles. Aber auch jede zusätzliche Anfrage kostet Leistung. Daher möchte ich alles vermeiden, was nocht unbedingt nötig ist.
Was spricht gegen
attr <dev> mqttDefaults base={"/Wohnzimmer/$device/$reading"}
?

Edit: Es müsste auch folgendes gehen:
attr <dev> mqttDefaults base={"/".AttrVal($device,'room','')."/$device/$reading"}
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

carlos

Ja, so geht es.
Gute Lösung, damit kann ich leben.
Gutes modul, damit kann mann mit notered ein schönes Frontend aufbauen.
Gruß
Carlos
FHEM svn auf Intel NUC mit proxmox,1 UDOO, 3 Raspberry Pi, signalduino, nanoCUL, div. Homematic Komponenten, toom Baumarkt Funksteckdosen, einige sonoffs, hue, shelly

Master_Nick

 ;D Sobald nun das subscribe geht ;-)  8)
*Bettel*
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.... ;-)