Autor Thema: MQTT_GENERIC_BRIDGE - sinnvolle defaults (für attrTemplate)  (Gelesen 2373 mal)

Offline ToKa

  • Sr. Member
  • ****
  • Beiträge: 675
Antw:MQTT_GENERIC_BRIDGE - sinnvolle defaults (für attrTemplate)
« Antwort #30 am: 25 Januar 2021, 12:38:42 »
Achtung!

Wir reden hier über unterschiedliche OSI Schichten. TCP auf Schicht 4 und mqtt auf 7.
RaspberryPi3 mit RaZberry2
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
GreenWave: PowerNode 1 port
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Zipato Bulb 2

Online herrmannj

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 5923
Antw:MQTT_GENERIC_BRIDGE - sinnvolle defaults (für attrTemplate)
« Antwort #31 am: 25 Januar 2021, 18:10:29 »
Schon klar. Ich relativiere mein Aussage: subjektive Meinung ;)

Mir ist aber bisher kein  (praktischer) Einsatz in einem Heimnetz eingefallen. TCP stellt die Zustellung sicher (oder verwirft). Ja, irgendwo an einer 800km Ölpipeline mit Mobilfunk Anbindung (oder schlimmer), ja.

Im Zweifelsfall retain für Zustände. Events (Lichtschalter) muss ich doch,  nach wlan Ausfall zb, nicht 5h später (exakt einmal) noch zustellen. Aber ok, mag andere Ansichten geben
smartVisu mit fronthem, einiges an HM, RFXTRX, Oregon, CUL, Homeeasy, ganz viele LED + Diverse

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 24265
Antw:MQTT_GENERIC_BRIDGE - sinnvolle defaults (für attrTemplate)
« Antwort #32 am: 25 Januar 2021, 18:16:16 »
Ich bin bereit QoS:2 fuer die MQTT2-IODevs zu implementieren, wenn jemand mir einen realen Fall zeigt, wo man nicht ohne auskommt.

Offline ToKa

  • Sr. Member
  • ****
  • Beiträge: 675
Antw:MQTT_GENERIC_BRIDGE - sinnvolle defaults (für attrTemplate)
« Antwort #33 am: 25 Januar 2021, 18:18:49 »
Retain hilft Dir aber nur, wenn der Empfänger wieder online ist und vom Broker mit den Daten versorgt wird. Falls Dein Sender keine Verbindung zum Broker hat oder der ausgefallen ist, hilft Dir die Absicherung auf der Transportebene über TCP nichts. Das kann nur auf der Anwendungsebene über MQTT abgefangen werden.
RaspberryPi3 mit RaZberry2
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
GreenWave: PowerNode 1 port
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Zipato Bulb 2

Offline ToKa

  • Sr. Member
  • ****
  • Beiträge: 675
Antw:MQTT_GENERIC_BRIDGE - sinnvolle defaults (für attrTemplate)
« Antwort #34 am: 25 Januar 2021, 18:22:09 »
Ich bin bereit QoS:2 fuer die MQTT2-IODevs zu implementieren, wenn jemand mir einen realen Fall zeigt, wo man nicht ohne auskommt.

Hallo Rudi,

es sind auch im Smarthome Szenarien denkbar (siehe https://forum.fhem.de/index.php/topic,117987.msg1125150.html#msg1125150) und es muss nicht gleich die Ölpipeline oder die Gasturbine sein, die abgeschalten werden soll.
RaspberryPi3 mit RaZberry2
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
GreenWave: PowerNode 1 port
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Zipato Bulb 2

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 24265
Antw:MQTT_GENERIC_BRIDGE - sinnvolle defaults (für attrTemplate)
« Antwort #35 am: 25 Januar 2021, 21:27:02 »
Meinst Du
Zitat
Ohne QoS könnten 20, 30, 40 Prozent draus werden, wenn der Befehl mehr als einmal bei FHEM eingeliefert wird. Oder das Rollo fährt gar nicht, weil der Befehl verloren gegangen ist.
Das hoert sich erstmal hypothetisch und nicht praktisch an. Wenn doch praktisch (dafuer haette ich gerne ein Beleg), dann wuerde ich es instinktiv als kaputte Implementierung einstufen: wieso wiederholt man bei einer stehenden TCP-Verbindung die gleiche Meldung?

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 14894
  • "Developer"?!? Meistens doch eher "User"
Antw:MQTT_GENERIC_BRIDGE - sinnvolle defaults (für attrTemplate)
« Antwort #36 am: 27 Januar 2021, 13:07:20 »
Um wieder etwas zum eigentlichen Thema zurückzukommen...

Hier mal ein erster Versuch, das etwas zu strukturieren und zusammenzufassen, was wir bisher hier so ventiliert haben:

allerdings sollten dann machen "Standards" beachtet werden (bzw. das, was dazu werden könnte:

- $base (aus den globalen Vorgaben) sollte jetzt doch ohne den $device-Anteil auskommen
- alle Setter gehen nach subscribe-$base ("xyz"/set) (festgelegt über ein globales Attribut an der MGB, wobei "xyz" das ist, was in publish-Richtung $base heißt)
- alles, was state betrifft, geht dann über $base/$device direkt, alles andere über $base/$device/$name

- dann sollte man für alles, was irgendwie "Standard" ist, auch standardisierte Benennungen verwenden. Vorschlag:
-- pct für (fast) alles, was 0-100 ist (bzw. bei ZWave: 0-99) (das würde hier bedeuten, einen mqttAlias zu verwenden "dim=pct")
    (Ausnahme: actuator/valve (?) bei Thermostaten etc., slatLevel (?) für Lamellendrehung)
-- brightness für alles, was in 0-255 einzustellen ist

-- desired-temp für die Soll-Temperatur,
-- temperature für gemessene Temperatur.

[...]

Falls jemand sich die Frage stelle, was das ggf. bringt: So kann man
- im Bedarfsfall einfach das Gerät (gegen ein völlig anderes) tauschen, paßt die (standardisierten!) Attribute an (ggf. über attrTemplate), und alles funktioniert von MQTT aus weiter wie bisher;
- in der yaml für alle Device-Typen denselben "Grundtypus" verwenden, man muss nur den Namen anpassen, und man kann sich auch hier zwischen den Usern einfacher austauschen...

(Ist nur ein Vorschlag...)
Falls jemand das nachvollziehen will:
- Den ersten Teil (Vorgaben für $base in publish- und subscribe-Richtung) kann man schon jetzt via attrTemplate an der MGB einstellen;
- für Thermostat-Geräte der TYPE MAX, CUL_HM und ZWave gibt es attrTemplate, die das - bis auf valve/actuator - umsetzen. Da würde mich interessieren, wie das Ding "auf MQTT" benannt werden soll?

- was pct und "state"-Anweisungen angeht, findet sich zumindest schon mal was zu einem CUL_HM-Rollladen. Bei Gelegenheit "normalisiere" ich noch einen ZWave (erst mal ohne Lamellen).

Fragen dazu bzw. andere Vorschläge?
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn:MySensors, Weekday-&RandomTimer, Twilight,  AttrTemplate {u.a. mqtt2, mysensors, zwave}

 

decade-submarginal