[Gelöst] Mehrere MQTT Devices auf einmal ansprechen

Begonnen von Chris_XXX, 13 November 2019, 10:45:12

Vorheriges Thema - Nächstes Thema

Chris_XXX

Hallo,
ich habe mehrere MQTT Devices mit unterschiedlichen Full Topics (Sonoffs)
Gibt es eine Möglichkeit alles auf einmal anzusprechen also z.B. alle Power on bzw. off?
Die Lösung die mir dazu eingefallen ist:
Alle mit einem Notify zu überwachen und wenn sich eines ändert auch die anderen ändern. Wird aber mit der Zeit etwas viel. Geht das einfacher?

Danke und Grüße
Christian

Beta-User

Hmm, das sind eigentlich zwei Fragen auf einmal:

- von FHEM aus würde ich tendenziell alle in eine structure packen, um gemeinsam zu schalten (Ausnahme: s.u.). Jedenfalls mit MQTT2_DEVICE kann man nicht ohne weiteres mehrere Topics auf einmal adressieren (das ginge mit etwas Perl, das ist aber nicht einfacher, als mit structure oder einer Master-Slave-notify-Logik zu arbeiten.

- Willst du auch lokale Schaltvorgänge berücksichtigen, ist es einfacher, das mit notify zu tun und dann schlicht alle anderen mit einem FILTER anzusprechen (schalte alle Geräte, die einer devspec entsprechen, aber nicht auf $EVENT stehen).
Damit könntest du zum Schalten auch aus FHEM heraus auch statt einer structure eben ein Gerät als "Master-Device" definieren, das dann über das notify seine Schaltvorgänge an alle aus der devspec "vererbt".

Beispiel für ein notify siehe hier: https://forum.fhem.de/index.php/topic,104758.msg986683.html#msg986683

Hoffe, das ist einigermaßen verständlich, sonst nachfragen.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

australien

Zitat von: Beta-User am 13 November 2019, 11:14:02

- von FHEM aus würde ich tendenziell alle in eine structure packen, um gemeinsam zu schalten (Ausnahme: s.u.).


Meinst du structure oder group?

Ich habe meine Rollo in einer structure und die Lampen in einer group, gibt es da eigentlich Vorteile für irgendeine Lösung?
raspberry pi3
signalduino, Shelly1, Shelly2, Sonos, Unifi
Amazon Fire Tablet 7 | Noname Android Tablet 10"

Beta-User

? Das sind doch zwei Ebenen, die nichts bzw. wenig gemein haben:
- structure ist ein Modul. Kann man nutzen, um in einem Gerät die Zustände mehrerer anderer Geräte zu visualisieren und diese damit zentral (und ggf. etwas zeitversetzt) zu schalten; (Ergo: wenn man sowas braucht, ist structure das Mittel der Wahl).
- group ist eigentlich nur zur Strukturierung in FHEMWEB da (ohne group-Attribut wird eben nach TYPE gruppiert), (unmittelbar) darüber schalten kann man nicht. Man kann aber das group-Attribut z.B. als FILTER-Teil nutzen, um via devspec zu schalten; ich vermute aber, das wolltest du hier nicht wissen/fragen; hier kann es in manchen Fällen sinnvoll sein, das zu nutzen - ggf. als Teil einer FILTER-Kette.

Das Schalten via devspec ist eine super Sache und (vor allen Dingen) nicht auf group beschränkt. Früher hatte ich z.B. einzelne Rollläden aus der automatisierten Steuerung genommen, indem ich via setreading einfach eigene Readingnamen und -inhalte gesetzt hatte und die dann in FILTER-Anweisungen verwendet...

Wie dem auch sei, structure war in meinem vorherigen Beitrag technisch zu verstehen, in der Regel solltest du davon ausgehen, dass Dinge, die wie technische Begrifflichkeiten aussehen, als solche gemeint sind und nicht zufällig gewählt sind.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Chris_XXX

Die Structure konnte mein Begehren dann doch voll und ganz befriedigen  ;D
Vielen Dank

australien

Zitat von: Beta-User am 13 November 2019, 12:45:27
? Das sind doch zwei Ebenen, die nichts bzw. wenig gemein haben:


Danke für die Informationen und Erklärung der Unterschiede!

So kann man beides gezielt einsetzen.
raspberry pi3
signalduino, Shelly1, Shelly2, Sonos, Unifi
Amazon Fire Tablet 7 | Noname Android Tablet 10"

carlos

Das könnte man doch auch über das group-topic in tasmota lösen.
Gruß

Carlos
FHEM svn auf Intel NUC mit proxmox, 3 Raspberry Pi, signalduino, nanoCUL,  toom Baumarkt Funksteckdosen, einige sonoffs, hue, shelly

Chris_XXX

Das wird aber von Tasmota vorgegeben, oder? D. h. Ich kann keine eigenen Gruppen machen.
Btw: ich habe es probiert und noch hinbekommen

carlos

Kannst du natürlich mit dem Befehl  "GroupTopic XYZ" in der Konsole selbst vergeben.
Default ist sonoffs.


Aus dem Tasmota Wiki:
ZitatHaving two devices with the same topic allowed for MQTT commands to be sent once to make the devices act in conjunction. That inspired a third topic to subscribe to called GROUPTOPIC. The default GROUPTOPIC is sonoffs. Devices with the same GROUPTOPIC will react to the same MQTT command. You can use this to take actions (e.g., update firmware) devices using different groups (e.g., sonoff, sonoff-sensors, etc.).
Gruß

Carlos
FHEM svn auf Intel NUC mit proxmox, 3 Raspberry Pi, signalduino, nanoCUL,  toom Baumarkt Funksteckdosen, einige sonoffs, hue, shelly