Ankündigung

Einklappen
Keine Ankündigung bisher.

Neues MQTT Plugin

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

    Ich habe übrigens festgestellt, dass der obige Fehler dazu führt, dass MQTT nicht funktioniert. Hatte zuvor schon alles etliche Male neu gestartet und gebootet, aber MQTT hat nie reagiert. Im Log gab es beim Senden die Meldung, dass gesendet wurde, aber Befehl kam beim Gerät nicht an (auch nicht bei bisher erfolgreich getesteten Geräten wie ein weiteres shng). Einkommende Nachrichten wurden nicht gehört und somit auch nicht geloggt.

    Jetzt hab ich mal die 2 Bösewicht-Items mit dem invalid Startbyte raus genommen und tadaa - läuft. Könntest dir das bitte mal ansehen? Minimalziel wäre imho, die Fehlermeldung anzuzeigen, aber ganz normal weiterzumachen.

    Kommentar


      Hallo,

      ist es mit dem mqtt-plugin möglich, die Lebensdauer eines Telegramms zu begrenzen?
      Ich möchte, dass eine Funktion nur innerhalb der nächsten 10 Sekunden - oder überhaupt nicht - durchgeführt wird.

      Gruß,
      Hendrik

      Kommentar


        Das ist in MQTT so erstmal nicht vorgesehen. Das ginge nur, wenn das im Nutzdaten Protokoll (also in der Payload des MQTT Telegramms) für das/von dem Device implementiert wird.
        Viele Grüße
        Martin

        There is no cloud. It's only someone else's computer.

        Kommentar


          Hallo,

          danke, das hatte ich dann falsch in Erinnerung!

          Gruß,
          Hendrik

          Kommentar


            ich habe in einem Item ein "eval" programmiert:
            Code:
                   Laufzeit_3:
                        type: num
                        cache: True
                        eval: (value * 65536)
                        mqtt_topic_in: Brenner_Laufzeit_3
            stelle jetzt fest, dass aus irgendeinem Grund (vielleicht Neustart) der errechnete Wert auch im mqTT webif angezeigt wird.
            das sollte doch nicht so sein.
            Ein zweites Problem habe ich, wenn 2 von den 3 Laufzeiten gleichzeitig geupdated werden, dass dann ein Item "Infinity" anzeigt.
            kann man da einen verzögerten eval machen ?
            Meine Alte Buderus Heizung liefert die Laufzeit leider in 3 Bytes, die ich nur separat abfragen kann.
            Beim Überlauf/Wechsel ensteht dann das Problem und die Summenbildung liefert dann natürlich auch "Infinity".
            Code:
                    Laufzeit:
                        name: Brennerlaufzeit
                        type: num
                        cache: True
                        sv_widget: |
                            <h1>{{ basic.print('', 'item', '', 'VAR / 60 | 0') }} Stunden <br>
                            {{ basic.print('', 'item', '', 'VAR % 60') }} Minuten</h1><br>
                            {{ basic.symbol('', 'Buderus.Brenner.Stufe', '', 'sani_cogeneration.svg', '', '', 'icon1') }}
                        eval: sum
                        eval_trigger:
                          - Buderus.Brenner.Laufzeit_1
                          - Buderus.Brenner.Laufzeit_2
                          - Buderus.Brenner.Laufzeit_3

            Kommentar


              Zitat von whe Beitrag anzeigen
              stelle jetzt fest, dass aus irgendeinem Grund (vielleicht Neustart) der errechnete Wert auch im mqTT webif angezeigt wird.
              das sollte doch nicht so sein.
              Doch das soll so sein. Im Webinterface wird der Item Wert angezeigt und den hast Du über eval berechnet.

              Zu Deinem infinity Problem kann ich nichts sagen. eval: sum habe ich noch nie benutzt.
              Viele Grüße
              Martin

              There is no cloud. It's only someone else's computer.

              Kommentar


                Danke,

                jetzt werden auch im webif des Plugins die Item Werte angezeigt und nicht die gelieferten Werte.

                dann hat mein "Infinity" Problem auch nichts mit dem Plugin zu tun.

                Kommentar


                  Eine meiner Anwendungen liefert ein JSON document an das mqtt plugin.
                  heute parse ich das mit einer Logic; es gibt auch irgendwo hier einen Thread vom letzten Jahr.
                  Gibt es eine Möglichkeit JSON auch im plugin zu parsen und den Inhalt auf mehrere Items zu verteilen ?

                  Kommentar


                    Nein, eine allgemeine Möglichkeit json zu parsen gibt es nicht.

                    Wenn die Json Payload des mqtt Telegramms eine reine Liste ist, kannst Du das Item allerdings als type: list definieren und dann auf dieses Item in evals oder on_change zugreifen. Das gleiche gilt, wenn die Payload ein reines dict ergibt. Dann kannst Du das Item als type: dict definieren.

                    Komplexere Json Strukturen musst Du wirklich in einer Logik parsen.
                    Viele Grüße
                    Martin

                    There is no cloud. It's only someone else's computer.

                    Kommentar


                      zu #264

                      muss ich in der 1.9.3 Implementierung (mqtt 2.0.3) etwas besonderes definieren um requests von außerhalb zu empfangen.
                      meine Implementierung mit einem Client auf dem Host von SHNG läuft einwandfrei.
                      meine Client von einem anderen raspi aber nicht; das geht weiterhin einwandfrei in SHNG 1.9.1 (mqtt 2.0.2)
                      auch kann sich mein MQTT Explorer vom Windows Rechner nicht mit dem Broker in SHNG verbinden.
                      das Ding steckt doch da drin, das geht doch auch in meiner alten 1.9.1 Implementierung.

                      Kann mich nicht mehr erinnern, ob ich damals da etwas besonderes gemacht habe.

                      Kommentar


                        Bei SmartHomeNG ist nichts besonderes zu beachten. Welchen MQTT Broker nutzt Du denn? Mosquitto? Falls ja, welche Version?

                        Die neueren Mosquitto Versionen müssen explizit konfiguriert werden, um Messages von anderen Hosts zu empfangen. Die älteren Mosquitto Versionen waren da in der Default Konfiguration offener.
                        Viele Grüße
                        Martin

                        There is no cloud. It's only someone else's computer.

                        Kommentar


                          ich dachte der Broker steckt im SHNG drin.
                          ich habe auf dem neuen Rechner keinen Broker installiert, weil ja meine neue lokale Anwendung ohne funktioniert.
                          dann wird es wohl gehe, wenn ich den Mosquitto da auch aufsetze.

                          verstehe jetzt aber nicht, wieso meine neue Anwendung mit dem Plugin ohne Mosquitto funktioniert.

                          danke für die Aufklärung.

                          Kommentar


                            Zitat von whe Beitrag anzeigen
                            ich dachte der Broker steckt im SHNG drin.
                            Nein, SmartHomeNG ist nur ein Client, wie die IoT Devices auch. Deshalb musst Du in SmartHomeNG auch konfigurieren, wie Du auf den Broker zugreifen willst.

                            Zitat von whe Beitrag anzeigen
                            weil ja meine neue lokale Anwendung ohne funktioniert.
                            Das kann sie nicht. Da muss ein Broker installiert und konfiguriert sein, wie auch in der Anleitung beschrieben ist: Installation und Konfiguration

                            Zitat von whe Beitrag anzeigen
                            verstehe jetzt aber nicht, wieso meine neue Anwendung mit dem Plugin ohne Mosquitto funktioniert.
                            Wie schon beschrieben, kann sie das nicht.

                            Wie hast Du den Rechner und SmartHomeNG denn installiert?

                            Viele Grüße
                            Martin

                            There is no cloud. It's only someone else's computer.

                            Kommentar


                              Zitat von Msinn Beitrag anzeigen
                              Die neueren Mosquitto Versionen müssen explizit konfiguriert werden, um Messages von anderen Hosts zu empfangen. Die älteren Mosquitto Versionen waren da in der Default Konfiguration offener.
                              kaum macht mans richtig schon geht's.
                              auf dem Rechner läuft ein Mosquitto Broker; der Service war auch aktiv.
                              sonst könnte ja auch meine neue Anwendung nicht funktionieren.
                              es liegt tatsächlich an der Version:
                              auf dem alten Rechner läuft ein mosquitto 1.5.7 und auf dem Neuen mosquitto 2.0.11
                              ab der version 2.0 benötigt man in der .conf 2 zusätzliche Angaben für einen remote Zugriff:
                              Code:
                              listener 1883
                              allow_anonymous true​
                              damit geht jetzt beides, die Daten meiner alten Anwendung kommen an.
                              mein Windows MQTT Explorer kann sich connecten und sieht die Daten.

                              Vielleicht ein Hinweis für die Doku.

                              Kommentar


                                Da Du bereits der Zweite bist, der über die Änderung bei der Default-Konfiguration von mosquitto stolpert, könnte ich das evtl. in die Doku aufnehmen.

                                Insgesamt bin ich eher auf der sparsamen Seite, wenn es darum geht Drittsoftware in der SmartHomeNG Doku zu dokumentieren. Für so etwas ist die Doku der Drittsoftware ausführlicher und sicherlich auch aktueller.

                                Bei MQTT gibt es mehr als eine Hand voll verschiedene Broker und deren Spezialitäten in der SmartHomeNG Doku aufzuführen würde sicherlich zu weit führen. Hier geht es ja sogar um Unterschiede zwischen verschiedenen Versionen eins Brokers.
                                Viele Grüße
                                Martin

                                There is no cloud. It's only someone else's computer.

                                Kommentar

                                Lädt...
                                X