Ankündigung

Einklappen
Keine Ankündigung bisher.

Neues MQTT Plugin

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • manu241
    antwortet
    Moin,

    danke für den Tipp. Die Binäreingänge für den Shelly Plus i4 können wie folgt abgefragt werden.
    Es muss nur im Item "abfrage_status" bei mqtt_topic_in: "MQTT_prefix/events/rcp" das MQTT_Prefix in euer vergebenen Namen geändert werden. (Bei mir heißt es "shelly_input")


    Code:
    shelly:
    
        abfrage_status:
            type: dict
           #mqtt_topic_in: MQTT_prefix/events/rpc
            mqtt_topic_in: shelly_input/events/rpc
            on_change:
            - ..ergebnis_der_abfrage = value['params']
    
        ergebnis_der_abfrage:
            type: dict
            on_change:
            - ..input_1 = value['input:0']
            - ..input_2 = value['input:1']
            - ..input_3 = value['input:2']        
            - ..input_4 = value['input:3']    
    
        input_1:
            type: dict
            on_change:
            - ..input_1.status = value['state']
    
            status:
                type: bool
                
                
        input_2:
            type: dict
            on_change:
            - ..input_2.status = value['state']
     
            status:
                type: bool
    
        input_3:
            type: dict
            on_change:
            - ..input_3.status = value['state']
    
            status:
                type: bool            
          
        input_4:
            type: dict
            on_change:
            - ..input_4.status = value['state']
    
            status:
                type: bool            ​

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Das Plugin ist ein generisches MQTT Plugin. Du musst dann also das Payload Protokoll selber kennen/verstehen und als Topics in den Items definieren.

    Für Shelly Devices gibt es das shelly Plugin, welches im SmartHomeNG Release 1.9.5 noch keine Shelly Plus Devices unterstützt. Im kommenden Release 1.10 wird das shelly Plugin auch die Shelly Plus Devices unterstützen, die das neue Shelly Payload Protokoll verwenden.

    Ich wollte das nächste SmastHomeN Release eigentlich schon zum Jahreswechsel raus bekommen. Das wird jetzt aber wohl noch 1 bis 2 Wochen dauern.

    Einen Kommentar schreiben:


  • manu241
    antwortet
    Moin,

    werden bei dem Plugin auch der Shelly Plus i4 unterstützt?

    Gruß Manuel

    Einen Kommentar schreiben:


  • Morg
    antwortet
    Kannst du an den Geräten irgendwas einstellen bzgl. topic? Dann ggf. ein gemeinsames Empfangstopic einrichten.

    Ansonsten ein Hilfsitem nehmen...

    Code:
    item1:
      type: str
      mqtt_topic_out: device1/top/ic
      on_change: .item2 = value
    
      item2:
        type: str
        mqtt_topic_out: device2/top/ic
    oder so in der Art. Die Syntax für on_change ggf. nochmal nachschauen

    Einen Kommentar schreiben:


  • Haiphong
    antwortet
    Die Geräte sind eine Pixelanzeige / Uhr, die Nachrichen anzeigen und interne Werte senden kann.

    a) die Geräte Clients senden ( z.B. Raum-Temperatur ), die Werte müssen je Client auf ein Item

    b) die Geräte Clients empfangen ( z.B. Schaltbefehle ), die Werte kommen je Client von einem separatem Item

    c) die Geräte Clients empfangen übergeordnete Nachrichen ( z.B. Textnachrichen Außentemperatur),
    diese Werte könnten von einem Item kommen ( was aber bisher nicht geht )

    Einen Kommentar schreiben:


  • Morg
    antwortet
    Vielleicht erklärst du mal dein Szenario (wieso willst du die Temperatur auf zwei Topics senden - bzw. bekommst du von zwei Geräten Temperaturen (und willst du die in ein Item schreiben)?

    Dad macht es vielleicht einfacher, dein Problem zu verstehen... ich bekomme dein Szenario jedenfalls noch nicht zusammen

    Einen Kommentar schreiben:


  • Haiphong
    antwortet
    Es gibt auch Single-Level-Wildcards(+) und Multi-Level-Wildcards(#)

    Ob ich das Prefix - beim senden Richtung Client - durch + ersetzten kann wer ich noch testen

    Getestet: +/custom/hum_aus
    über MQTT Explorer. --> geht nicht
    Zuletzt geändert von Haiphong; 12.01.2024, 00:07.

    Einen Kommentar schreiben:


  • Haiphong
    antwortet
    Danke, für die Antworten ....

    Da die Clienten auch - unterschiedliche - Werte ( z.B. Temperatur ) liefern, muß ich jedem Client auch ein eigenes Prefix/Topic vergeben.

    Dachte es geht irgendwie einfacher

    Danke

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Multi Instance macht bei dem aktuellen mqtt Plugin keinen Sinn mehr. Ich werde das Flag in den Metadaten auf False setzen.

    Multi Instance kommt aus der Zeit, als es das MQTT Modul in SmartHomeNG noch nicht gab und das Plugin die Broker Kommunikation selber abwickelte. Dort war Multi Instance die Möglichkeit mit mehreren Brokern zu kommunizieren.

    Das MQTT Modul übernimmt im aktuellen SmartHomeNG die Kommunikation mit dem Broker, und auch nur mit EINEM Broker. Wenn in einer Installation mehrere Broker betrieben werden sollen, werden die Broker so konfiguriert, dass sie miteinander kommunizieren.

    SmartHomeNG ist mit dem MQTT Modul ein normaler MQTT Client, der mit einem Broker kommuniziert.

    Zur Frage: MQTT funktioniert nicht, wie in der Frage impliziert. Ein MQTT Client "sendet" nicht an einen oder mehrere andere Clients.

    Ein Client publiziert eine Nachricht unter einem Topic und andere Clients (einer oder mehrere) abonnieren die Nachrichten, die unter diesem Topic (von dem auch immer) publiziert wurden.

    Also die Antwort: Nein, Multi Instance ist nicht der richtige Weg. Dein Ansatz ist falsch. Du musst nicht je Client ein Topic definieren, sondern nur EIN Topic und alle Clients müssen einfach nur das selbe Topic abonnieren.

    Einen Kommentar schreiben:


  • KHome
    antwortet
    Ich glaube nicht, wenn ich dich richtig verstanden habe in einem Scenario mit nur einem Broker.

    1 x Sender (Publisher) übermittelt an den Broker die Info/ Temperatur
    Jeder Client (Subscriber) erhält eine Kopie.

    ...vorausgesetzt, beide Clients können so konfiguriert werden die selbe Nachricht (Topic) zu empfangen.

    Siehe http://blog.doubleslash.de/mqtt-fuer-dummies
    Zuletzt geändert von KHome; 11.01.2024, 20:16.

    Einen Kommentar schreiben:


  • Haiphong
    antwortet
    Hallo Kollegen,

    wünsch Euch allen ein gutes neues Jahr.

    Hab mal eine Frage .....

    Wenn ich per MQTT die selbe Nachricht ( z.B. Temperatur außen ) an mehrere Geräte senden will,
    ist dann "Multiinstance" der richtige Weg?

    Code:
                    mqtt_topic_out@instance1:
                      - Dp_ulanzi_4a94/custom/temp_aus
    
                    mqtt_topic_out@instance2:
                      - awtrix-b86928/custom/temp_aus​

    Dachte, das so zu lösen: ( läuft aber nicht )
    Code:
                    mqtt_topic_out:
                      - Dp_ulanzi_4a94/custom/temp_aus
                      - awtrix-b86928/custom/temp_aus​
    Zuletzt geändert von Haiphong; 11.01.2024, 19:32.

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    So generell würde ich erwarten, dass man aus "else none" ein "else None" machen müsste. Und das "TRUE" und "NONE" in Anführungszeichen setzen sollte..?

    Einen Kommentar schreiben:


  • fhartlieb
    antwortet
    Zitat von Morg Beitrag anzeigen
    Was passiert denn, wenn du mqtt_topic_in und mqtt_topic_out auf demselben Item hast, ohne Helper?
    Ich bekomme dann die Payload nicht in bool umgewandelt bzw. weiß nicht wie.

    Einen Kommentar schreiben:


  • Morg
    antwortet
    Was passiert denn, wenn du mqtt_topic_in und mqtt_topic_out auf demselben Item hast, ohne Helper? (Zum Rest später noch was)

    Einen Kommentar schreiben:


  • fhartlieb
    antwortet
    Ich danke dir. Ich habe jetzt einiges rumprobiert (lange Abende sind dann immer schnell weg für eine Zeile Code) und bin fast neben meinen grundlegenden shNG-Verständnis unteranderem an dem Payload Inhalt gescheitert.

    Deine Variante A:

    ich muss ja filtern, dass nur bei einem trigger vom item Steckdose.A.OnOff durch KNX, VISU oder admin-Backend der MQTT-Befehl abgesendet wird. Wird das item durch das parent-item Steckdose.A verändert, dann soll der MQTT-set-Befehl NICHT gesendet werden. Das item selbst muss aber dennoch den zustand durch die Zuweisung aus Steckdose.A erhalten.

    So habe ich es jetzt hinbekommen:
    Code:
    z2m:
        SteckDosen:
            Indoor:
                A:
                    type: dict
                    visu_acl: ro
                    mqtt_topic_in: z2m/StckDo0890
                    on_change:
                    - .OnOff = value['state']
                    OnOff:
                        type: bool
                        visu_acl: rw
                        on_change: .OnOffHelper = value if sh..self.property.last_change_by != sh...self else none
                        OnOffHelper:
                            type: bool
                            mqtt_topic_out: z2m/StckDo0890/set:state
                            mqtt_bool_values: ['OFF','ON']

    Deine Variante B:

    Die Steckdose (Ledvance PLUG EU T / SMART+ Plug EU ) sendet kein TRUE / FALSE sondern ON / OFF. Dies bekomme ich leider nicht von String nach bool umgewandelt. Vermutlich ist es ganz einfach, aber ich begreife es es nicht.

    Code:
    z2m:
        SteckDosen:
            Indoor:
                A:
                     type: bool
                     visu_acl: rw
                     mqtt_topic_in: z2m/StckDo0890/
                     eval: TRUE if value['state'] == 'ON' else NONE
                     mqtt_topic_out: z2m/StckDo0890/set:state
                     mqtt_bool_values: ['OFF','ON']
    Zuletzt geändert von fhartlieb; 16.12.2023, 09:12.

    Einen Kommentar schreiben:

Lädt...
X