Ankündigung

Einklappen
Keine Ankündigung bisher.

syntax bei einbindung mosquitto daten

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

    #16
    als Items siehe Post #13( yalm Format)

    Kommentar


      #17
      Ich habe keine Ahnung von Sonoff oder MQTT, aber kannst du nicht einfach Sonoff.S01.Switch_num per UZSU mit 0/1 schalten?
      Also z.B. unter diesem Item das Item mit dem UZSU dict einfügen und uzsu_item: Sonoff.S01.Switch_num angeben.

      Wozu brauchst du eigentlich zwei Items Switch_num und Power_bool, wenn das eine eh das andere updated?
      Geht folgendes nicht?
      Code:
      Sonoff:
       S01:
        Switch:
         type: bool
         mqtt_topic_init: cmnd/sonoff01/POWER
        Power:
         type: str
         mqtt_topic_in: stat/sonoff01/POWER
         cache: 'yes'
         on_update:
           - Sonoff.S01.Switch_num = value == "ON"
      Wenn ich den Quellcode richtig interpretiere, bräuchtest du nicht einmal ein Hilfsitem, sondern es könnte direkt so funktionieren:
      Code:
      Sonoff:
       S01:
        Switch:
         type: bool
         mqtt_topic_init: cmnd/sonoff01/POWER
         mqtt_topic_in: stat/sonoff01/POWER
         cache: 'yes'
      Wenn das item vom Typ bool ist, ruft das MQTT-Plugin nämlich lib.Util.to_bool() auf. Dort wird der Wert ON zu True und durch das default=False alles Unbekannte zu False.

      Kommentar


        #18
        items.yalm
        Code:
        Sonoff:
         S01:
          Switch_num:
           type: num
           mqtt_topic_init: cmnd/sonoff01/POWER
           uzsu:
            type:      dict
            uzsu_item: Sonoff.S01.Switch_num
            cache:     True
            visu_acl:  rw
        smartvisu
        Code:
                {% import "widgets/widget_uzsu.html" as uzsu %}
                {{ uzsu.uzsu_icon('uzsu_01', 'Sonoff.S01.Switch_num.uzsu', 'Sonoff S01') }}
        und schon klappts, danke


        nach der vereinfachung des items ( wir du es vergeschlagen hat kann ich es leider nicht mehr schalten!
        Code:
         S02:
          Switch:
           type: bool
           mqtt_topic_init: cmnd/sonoff02/POWER
           mqtt_topic_in: stat/sonoff02/POWER
           cache: 'yes'
        Code:
        basic.flip('flip2', 'Sonoff.S02.Switch', 'An', 'Aus') }}
        Zuletzt geändert von schlaubi666; 04.12.2018, 16:44.

        Kommentar


          #19

          Ja einfach mqtt_topic_in tauschen gegen mqtt_topic_out S02: Switch: type: bool mqtt_topic_init: cmnd/sonoff02/POWER mqtt_topic_out: stat/sonoff02/POWER cache: 'yes' weil nicht nur nachrchten rein sondern auch raus gehen sollen.

          Kommentar


            #20
            Zitat von pino Beitrag anzeigen
            Ja einfach mqtt_topic_in tauschen gegen mqtt_topic_out
            Wahrscheinlich eher nicht, weil:
            Zitat von https://smarthomeng.de/user/plugins_doc/config/mqtt.html
            mqtt_topic_init ist äquivalent zu mqtt_topic_out, außer dass das Topic beim Start von SmartHomeNG initialisiert (also eine MQTT message gesendet) wird.
            Damit ist das mqtt_topic_out also impliziert.
            Das mqtt_topic_in wird ebenfalls benötigt, sonst kommen ja keine Nachrichten rein.

            Vielleicht hast du dich in die Irre führen lassen, weil es beim KNX-Plugin umgekehrt ist. Dort steht ein knx_init für Werte vom Bus initialisieren und impliziert das knx_listen.

            Aber wie geschrieben habe ich eigentlich keine Ahnung davon und halte mich vielleicht besser zurück.

            Kommentar


              #21
              smai Deine Analyse ist völlig richtig.

              Bei MQTT macht die Analogie zu KNX keinen Sinn, da man den Broker nicht per Query nach Nachrichten fragen kann. Die bekommt man bei der Anmeldung am Broker (oder auch nicht), abhängig davon ob der sendende Client das Retain-Flag gesetzt hat.

              Da sich (außer bei gesetztem Retain-Flag) eine Message nicht merkt, ist es häufig sinnvoll beim Hochfahren von SmartHomeNG einen Status auszugeben.

              Aber das sind Themen von MQTT, die man bereits kennen sollte, wenn man die MQTT Clients mit anderen Clients verbinden will und SmartHomeNG ist aus Sicht von MQTT nur ein weiterer Client.
              Viele Grüße
              Martin

              Kommentar


                #22
                Msinn , smai

                Ich melde mich hier auch nochmal zu Wort. Auch ich suche immer noch eine Lösung, dass (ähnlich wie beim KNX-Plugin) Senden und Empfangen auf einem Item möglich ist, ohne die Befehle mehrfach zu senden und ggf. in einer Endlosschleife zu laden.

                Zitat von smai Beitrag anzeigen
                Geht folgendes nicht? Code:

                Sonoff: S01: Switch: type: bool mqtt_topic_init: cmnd/sonoff01/POWER Power: type: str mqtt_topic_in: stat/sonoff01/POWER cache: 'yes' on_update: - Sonoff.S01.Switch_num = value == "ON"
                Wenn ich den Quellcode richtig interpretiere, bräuchtest du nicht einmal ein Hilfsitem, sondern es könnte direkt so funktionieren: Code:

                Sonoff: S01: Switch: type: bool mqtt_topic_init: cmnd/sonoff01/POWER mqtt_topic_in: stat/sonoff01/POWER cache: 'yes'
                Wenn das item vom Typ bool ist, ruft das MQTT-Plugin nämlich lib.Util.to_bool() auf. Dort wird der Wert ON zu True und durch das default=False alles Unbekannte zu False.
                Bei beiden Versionen des Beispiels aus dem Zitat werden die Befehle beim Schalten über snNG nur einmal gesendet. Passt also.
                Nutzt man aber eine andere Möglichkeit zu Schalten (bspw. die GUI des Aktors) wird auf dem MQTT-Topic "stat/sonoff01/POWER" ein OFF gesendet. Dies wird dann beim Emfang durch das MQTT Plugin in ein false gewandelt. Da aber der Status von Sonoff.S01.Switch noch auf true steht, wird noch ein false auf das Topic "cmnd/sonoff01/POWER" gesendet und er Aktor damit "ein zweites Mal" ausgeschaltet.

                Lässt sich das irgendwie umgehen?
                Danke für die Rückmeldung.

                Kommentar

                Lädt...
                X