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

  • beauty
    antwortet
    Also der LBS funktioniert so wie er soll, es werden auch alle Daten abgerufen.
    Die Fehlermeldungen werden in den Mosquitto Log geschrieben und tauchen im Minutentakt auf da der Sendeintervall von Heishamon in der WP 60sek. ist.
    Der Log war knappe 4GB gross, muss dazu aber sagen das Log_Type_all aktiviert war. Aber trotz das die Log Einträge auskommentiert sind tauchen die Fehlermeldungen im Log auf.

    Hier das Config-File

    Code:
    pid_file /var/run/mosquitto.pid
    log_dest file /var/log/mosquitto/mosquitto.log
    listener 1883
    persistence true
    persistence_location /var/lib/mosquitto/
    persistence_file mosquitto.db
    #log_dest syslog
    #log_dest stdout
    #log_dest topic
    #log_type all
    connection_messages true
    log_timestamp true
    allow_anonymous false
    password_file /etc/mosquitto/pwfile​

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Zitat von beauty Beitrag anzeigen
    trifft das auch auf diese Meldung zu? Kann man das evtl. auch "ausblenden" das es nicht mehr in den Log geschrieben wird?
    Solange der LBS funktioniert kannst du es ignorieren.
    Ist es das Mosquitto Log? Da kann man nichts ausblenden, außer du schaltest das Logging ab.
    Das kann passieren, wenn der Subscribe Client eine Exception bekommt und dann neu connected. Dann meldet sich der Client mit derselben ID wieder an und der Mosquitto trennt die alte Verbindung.

    Zitat von beauty Beitrag anzeigen
    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.
    Wie oft tritt der Fehler denn auf? Dass dadurch die HDD voll läuft kann ich mir nicht vorstellen.

    Einen Kommentar schreiben:


  • beauty
    antwortet
    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.​

    Einen Kommentar schreiben:


  • beauty
    antwortet
    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.

    Einen Kommentar schreiben:


  • beauty
    antwortet
    Dankscheee...kaum macht man es richtig,schon gehts....

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:


  • beauty
    antwortet
    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?

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    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

    Einen Kommentar schreiben:


  • beauty
    antwortet
    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

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Subscribe doch nur die, die du wirklich brauchst.

    Einen Kommentar schreiben:


  • beauty
    antwortet
    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.

    Einen Kommentar schreiben:


  • benji
    antwortet
    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.

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    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.

    Einen Kommentar schreiben:


  • benji
    antwortet
    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"

    Einen Kommentar schreiben:

Lädt...
X