Ankündigung

Einklappen
Keine Ankündigung bisher.

MQTT API Server und MQTT Clients - LBS19001051 - LBS19001054

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

    Am besten mal ins mosquitto Logfile schauen, ob da noch was drin steht.

    Kommentar


      dank message.log konnte ich feststellen, dass in den in der config verlinkten Pfaden keine Dateien waren.
      Habe das mosquitto.log angelegt und in der config richtig gestellt.
      Die PW-Datei hat er dann auch gefunden und es läuft jetzt.

      Keine Ahnung was da passiert ist.

      Kann die config so bleiben:
      Code:
      [B]pid_file /var/run/mosquitto.pid[/B]
      log_dest file /var/log/mosquitto/mosquitto.log
      [B]listener 1883
      persistence true
      persistence_location /var/lib/mosquitto/[/B]
      persistence_file mosquitto.db
      log_dest syslog
      log_dest stdout
      log_dest topic
      log_type all
      connection_messages true
      log_timestamp true
      allow_anonymous true
      password_file /etc/mosquitto/passwd​
      Das pid_file liegt da nicht
      listener 1883: horcht auf port 1883
      persistence true und die Zeile darunter kann ich nichts anfangen-das /varlib/mosquitto/ gibt es nicht


      Danke und Grüße,
      Lio



      Kommentar


        Hi,

        kurze Frage. Gibt es die Möglichkeit bei dem Publishing Client einen Typ mit anzugeben? Ich sende mit dem Publishing Client an den ioBroker, Value kommt auch an aber wird nicht ausgeführt wegen Datentyp.

        Im ioBroker taucht folgende Meldung im log auf:

        Code:
        State value to set for "hmip.0.devices.XXXXXX.channels.1.doorCommand" has to be type "number" but received type "string"

        Kommentar


          Zitat von benji Beitrag anzeigen
          Ich sende mit dem Publishing Client an den ioBroker, Value kommt auch an aber wird nicht ausgeführt wegen Datentyp.
          M.W. unterstützt MQTT keine expliziten Datentypen des Payloads, d.h. es wird entweder ein Array von Bytes oder eine UTF8-kodierte Nachricht gesendet.
          Falls das so stimmt, dann musst du auf Empfängerseite die entsprechende Umwandlung machen, d.h. in ioBroker zunächst in eine andere Variable und diese dann zu INT casten und aufs doorCommand senden.

          Kommentar


            Hi, Danke für deine Antwort....


            Habe ich so getestet und die Fehlermeldung ist weg. Funktionieren will es trotzdem noch nicht...aber da muss ich im ioBroker schauen.

            Kommentar


              Hallo,
              eine Frage, wie kann ich mehrere Topics unsubscriben? Ich rufe die Daten meiner Panasonic Jeisha WP über Heishamon ab, diese bietet 115 Topics an von denen ich aber nur einen kleinen Bruchteil benötige. Die Topics liegen in panasonic_heat_pump/main/ ... Hintergrund ist der das der Traffic stark ansteigt beim abrufen der Daten und da der Gossteil der Topics sowieso momentan nicht benötigt wird würde ich das gerne einschränken.

              Kommentar


                Subscribe doch nur die, die du wirklich brauchst.

                Kommentar


                  Wie muss ich das dann machen? Im Subscribe Client bei E9 Top1|Top2|Top3|...?
                  Aktuell habe ich 30 Topic in Verwendung, daher habe ich es über den Parser gemacht.
                  Meine Logik ist wie auf dem Bild zu sehen aufgebaut.

                  Unbenannt.jpg

                  Kommentar


                    Zitat von beauty Beitrag anzeigen
                    Wie muss ich das dann machen? Im Subscribe Client bei E9 Top1|Top2|Top3|...?
                    Ja genau so.

                    Ansonsten hast du immer alle Topics zumindest im Subscribe Client. Die kannst du über die Filter-Eingänge nochmal filtern, aber trotzdem muss dann der Suscribe Client alle Topics verarbeiten, auch wenn er dann nicht alle ausgibt.

                    Gibt also ingesamt 3 Varianten:
                    1. Nur das subscriben was du brauchst Topic1|Topic2|...|TopicN an E9
                    2. Alles subscriben, was ein Gerät hergibt bzw. eine Obermenge (prefix//# an E9) von dem was du brauchst und im Subscribe Client filtern (E6/E7)
                    3. Alles subscriben, was ein Gerät hergibt bzw. eine Obermenge (prefix//# an E9) von dem was du brauchst und über MQTT Parser filtern

                    Kommentar


                      Ok super danke für die Infos. Wer mal rum probieren welches die beste Lösung für mich ist.

                      Kommentar


                        jonofe bräuchte nochmals deine Hilfe.... Ich habe mich nun für die Variante 1 entschieden nur das zu subscriben was ich benötige.
                        Wenn ich aber nun an E9 "panasonic_heat_pump/main/Heatpump_State|Pump_Flow|Force_DHW_State|" eingebe wird nur immer das 1.Topic abgerufen und das 2.und 3.Topic nicht. was mache ich da falsch? Oder muss ich jedes mal den ganzen Pfad angeben?

                        Kommentar


                          Zitat von beauty Beitrag anzeigen
                          Oder muss ich jedes mal den ganzen Pfad angeben?
                          Jo, das komplette Topic muss angegeben werden.

                          Kommentar


                            Dankscheee...kaum macht man es richtig,schon gehts....

                            Kommentar


                              Ich habe da nun noch eine Frage und zwar habe ich im MQTT-Explorer gesehen das mir der Log und dadurch die HDD mit den folgenden Meldungen voll läuft.
                              Auf dem Edomi Server läuft Mosquitto als Broker und der Subscribe-Client LBS läuft auch sauber ohne Fehlermeldungen im Debug-Log. Topics werden alle abgerufen.
                              Wie kann ich diese Fehler beheben?

                              Code:
                              N= 1678092074: Socket error on client EDOMI_MQTT_Subscribe_Client_1358-63f7c3951ddad, disconnecting.
                              
                               I= 1678091548: Error saving in-memory database, unable to open /var/lib/mosquitto/mosquitto.db.new for writing.
                              
                              E= 1678091548: Error: No such file or directory.
                              ​
                              Edit: unter dem Pfad /var/lib/mosquitto/ ist die mosquitto.db nicht zu finden.... wie finde ich heraus wo diese liegt?
                              Edit: Habe nun den Pfad händisch angelegt und nun sind bis auf den Socket error die Fehlermeldungen weg.
                              Zuletzt geändert von beauty; 06.03.2023, 11:29.

                              Kommentar


                                Zitat von jonofe Beitrag anzeigen
                                Das kannst du ignorieren. Zur Optimierung mache ich vor dem Publish einen kurzen Check, ob der Broker verfügbar ist, d.h. einfach Connect zu Port 1883 und direkt wieder Disconnect. Dadurch erscheint das im Mosquitto Log.
                                jonofe trifft das auch auf diese Meldung zu? Kann man das evtl. auch "ausblenden" das es nicht mehr in den Log geschrieben wird?

                                Code:
                                1678179009: New client connected from 192.xxx.xxx.xxx as EDOMI_MQTT_Subscribe_Client_1358-6406f65023e0c (p2, c1, k60, u'heishamon').
                                1678179009: Socket error on client EDOMI_MQTT_Subscribe_Client_1358-6406f65023e0c, disconnecting.​

                                Kommentar

                                Lädt...
                                X