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

  • jolt19
    antwortet
    Ein paar Tage später habe ich die nächsten Anfängerfragen

    Und zwar möchte ich nun, getriggert über einen Button der Visu oder einen KNX Taster gerne ein Topic und dazugeörige Payload an den Broker publishen.
    Mittels Publish Topics und Publish Client LBS kommt bei Mosquitto auch was an. Aber alle konfigurierten Payloads.

    Was mir noch nicht klar ist, wie kann ich das senden eines Topics/Payloads initieren. Start könnte bei mir z.B. ein KO sein, dass per Taster auf einen spezifischen Wert gesetzt wird.
    Bildschirmfoto 2022-11-01 um 20.54.55.png

    Und noch eine allgemeine Edomi Anfängerfrage.
    Wie "übersetzte" ich den Wert eines KOs in einen String, bzw. hier in ein Payload. z.B. KO=1 --> Payload = START, KO=2 --> Payload = PAUSE etc.?

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Zitat von jolt19 Beitrag anzeigen
    Mit welchen Logikbausteinen kann ich mir jetzt die verschiedenen "subtopics" filtern um sie auf KOs zu legen?

    Das macht man mit MQTT Parser LBS
    5-fach: LBS 19001207
    30-fach: LBS 19002322

    Zitat von jolt19 Beitrag anzeigen
    Und wie mache ich es mit weiteren MQTT Geräten, z.B. Wärmepumpe via NibePI? 1x den Subscribe Client pro physischem Gerät?
    Ja, würde ich so machen.

    Man könnte alternativ auch auf # subscriben und würde alles bekommen, aber dadurch auch vermutlich viel, was man gar nicht will und nur Leistung kostet. Daher eher ein subscribe client je Gerät (Präfix).

    Einen Kommentar schreiben:


  • jolt19
    antwortet
    Danke für den Hinweis, läuft jetzt. Damit empfange ich ja jetzt alle Nachrichten mit dem Topic valetudo/#.

    Eine Frage als Edomi Anfänger hätte ich noch. Mit welchen Logikbausteinen kann ich mir jetzt die verschiedenen "subtopics" filtern um sie auf KOs zu legen? Wenn ich z.B. den Status (fährt, docked etc.) auf einem Glastaster anzeigen will benötige ich ja A8 vom Topic
    Code:
    valetduo/l10pro/StatusStateAttribute/status
    .
    Analog dazu für alle anderen Subtopics die ich anzeigen oder in weiterer Logik verarbeiten will. Wie organsiere ich das am geschicktesten?

    Und wie mache ich es mit weiteren MQTT Geräten, z.B. Wärmepumpe via NibePI? 1x den Subscribe Client pro physischem Gerät?

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Zitat von jolt19 Beitrag anzeigen
    Kann doch eigentlich nur an E9 liegen? Dort steht nur "valetudo". Kein /valetudo oder /valetudo/# weil mir das scheinbar immer wieder rausgelöscht wird.
    Da muss valetudo/# stehen.
    Keinen führenden Slash bei MQTT!

    Einen Kommentar schreiben:


  • jolt19
    antwortet
    Ah, verstanden.
    Habe nun die MQTT LBS installiert und stehe vor der nächsten Herausforderungen:

    Mosquitto läuft auf einem eigenen Proxmox Container und es ist auch schon was los auf dem Teil, mein Saugrobotor auf dem Valetudo läuft schickt schon fleißig was:
    Bildschirmfoto 2022-10-17 um 20.12.32.png


    In der Edomi Logik hakt es leider noch:
    Bildschirmfoto 2022-10-17 um 20.14.37.png


    Wenn ich es richtig deute, ist der Subscribe Client ja erfolgreich mit Mosquitto verbunden, empfängt aber weiter keine Nachrichten.
    Kann doch eigentlich nur an E9 liegen? Dort steht nur "valetudo". Kein /valetudo oder /valetudo/# weil mir das scheinbar immer wieder rausgelöscht wird.

    Einen Kommentar schreiben:


  • starwarsfan
    antwortet
    Hi

    Zitat von jolt19 Beitrag anzeigen
    Auch die anderen von dir eigentlich hinzugefügten LBS kann ich nicht entdecken.
    Das hast Du falsch verstanden. Hier steht das folgende:

    • Es ist eine ganze Reihe zusätzlicher Pakete für Userland-LBS'e bereits vorab installiert. Namentlich für die folgenden Bausteine:
      • Telegram-LBS (19000303 / 19000304)
      • Mailer-LBS (19000587)
      • Philips HUE Bridge (19000195)
      • MQTT Publish Server (19001051)
      • AlexaControl LBS (19000809)
      • MikroTik-LBS (19001059)
    In anderen Worten: All das, was für diese Bausteine auf dem Host-System gemacht werden muss, ist bereits vorhanden. Die Bausteine an und für sich musst Du schon noch installieren.

    Einen Kommentar schreiben:


  • jolt19
    antwortet
    Zitat von starwarsfan Beitrag anzeigen
    Wenn Template von mir, warum hast Du dann nochmals das MQTT-Zeugs installiert? Das ist im Template alles schon drin...
    Hi,
    ich habe vor ein paar Wochen mit deinem Container gestartet und wollte mich nun mal an das Thema MQTT wagen.
    Allerdings finde ich bei meiner Installation keinerlei MQTT Logikmodule. Wo sollten diese aufgelistet sein? Unter den eigenen Logikbausteinen? Die Suche ergibt auch keine Treffer. Auch die anderen von dir eigentlich hinzugefügten LBS kann ich nicht entdecken.

    Einen Kommentar schreiben:


  • givemeone
    antwortet
    Edit:
    Ich ziehe die Frage zurück:
    > /usr/local/edomi/www/data/liveproject/lbs/EXE19001054.php | Fehlercode: 8 | Zeile: 254 | Undefined offset: 9
    bedeutet, dass ich beim LOgging eine falsche Nummer eingetragen hatte. Sorry.
    Zuletzt geändert von givemeone; 18.09.2022, 23:49.

    Einen Kommentar schreiben:


  • dirkie
    antwortet
    Danke für die Erklärung. Habe den zweiten Vorschlag umgesetzt.

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Zitat von dirkie Beitrag anzeigen
    Hat noch jemand dieses Problem?
    Aktuell ist das logging des Skripts, welches nicht vom LBS sondern aus der Datenbank (stored procedure) aufgerufen wird, nicht konfigurierbar.
    Wenn du das abschalten möchtest, dann kannst du derzeit nur im Source Code die Zeile in der function logging() auskommentieren.

    Oder alternativ regelmäßig das Logfile löschen, z.B. wöchentlich über den "wöchentlichen" Trigger und einen EXEC Befehl.

    Einen Kommentar schreiben:


  • dirkie
    antwortet
    Hallo ich habe den MQTT Publish Server hier laufen und bekomme egal welches log level ich einstelle anscheinend den maximalen output den es gibt. Dies führte dazu (weil ich nicht darauf geachtet habe) das ich eine 30gb logdatei hatte welche das gesamtsystem zum erliegen gebracht hat. (Ja lief wohl eine weile so..)

    Im Verzeichnis
    /usr/local/edomi/www/data/log
    wird die Datei CUSTOMLOG_MQTT_Publish_Server-EXEC.log erstellt und bei egal welchem log Level mit solchem Inhalt gefüllt:
    Code:
    Publishing finished
    DISCONNECTING
    DISCONNECTED
    Match: edomi/status/internal/Systemzeit
    Connected!
    Publishing edomi/status/internal/Systemzeit
    Publishing edomi/status/internal/5
    Publishing finished
    Publishing finished
    DISCONNECTING
    DISCONNECTED
    und das für jedes iKO und KO.

    Sobald ich den Baustein deaktiviere wird nichts mehr in die Datei geschrieben.

    Bei den übrigen MQTT Bausteinen passiert dies nicht (alle Loglevel=1)

    Hat noch jemand dieses Problem?

    Einen Kommentar schreiben:


  • rossmax
    antwortet
    Zitat von jonofe Beitrag anzeigen
    Ich glaube der Ansatz ist falsch.
    Vielen Dank für die Hinweise. Läuft jetzt.

    Einen Kommentar schreiben:


  • beauty
    antwortet
    Zitat von jonofe Beitrag anzeigen
    Hier noch mal die Installationsanleitung für den Mosquitto MQTT Broker auf dem EDOMI Server. Dies setzt voraus, dass die Installation der LBS auf dem EDOMI Server bereits gemäß Anleitung im LBS erfolgt ist. Nur dann kann folgende Installation erfolgreich ablaufen:

    Code:
    yum -y install mosquitto
    mkdir /var/log/mosquitto
    chown mosquitto:mosquitto /var/log/mosquitto
    Hier mein /etc/mosquitto/mosquitto.conf Konfigurationsfile:

    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
    Danach kann mit

    Code:
    mosquitto_passwd -c /etc/mosquitto/pwfile edomi
    ein Passwort für den User 'edomi' angelegt werden und Mosquitto neu gestartett werden:

    Code:
    /etc/init.d/mosquitto restart
    Jetzt ist der Mosquitto Broker einsatzfähig und man kann die LBS entsprechend konfigurieren mit IP (IP des Mosquitto Servers), Port (1883), User (edomi), Password (wie gerade festgelegt).

    In EDOMI kann MQTT nun wie folgt konfiguriert werden:

    Screenshot from 2017-05-20 20-37-15.png
    Zunächst sollte der Subscribe und Publish Server ausreichen (die oberen beiden LBS).

    Publish Server:
    E1: 1
    E2: Broker IP: <EDOMI IP>
    E3: Broker Port: 1883
    E4: Broker User: edomi
    E5: Broker Password: <so wie oben gewählt>
    E6: Plain Filter: <leer>
    E7: RegExp Filter: <leer>
    E8: Structure: both
    E9: QoS: 1
    E10: Retain: 1
    E11: Loglevel: 8

    Subscribe Server:
    E1-E7: wie beim Publish Server
    E8: QoS: 1
    E9: Retain: 1
    E10: Loglevel: 8

    QoS/Retain sind nur für die Last Will & Testament Message (edomi/status), welche vom Broker an alle subscribten Clients gesendet wird, wenn die Verbindung zum Subscribe Server LBS abreißt.

    Dann Projekt neu aktivieren und schon sollte im Logfile des Mosquitto Brokers eine Menge los sein:

    Code:
    tail -f /var/log/mosquitto/mosquitto.log
    Des weiteren kann der Empfang von MQTT wie folgt getestetet werden. Auf dem EDOMI Server folgenden Befehl ausführen:

    Code:
    mosquitto_pub -h <IP-Mosquitto-Server> -u edomi -P <password> -t edomi/set/knx/[COLOR=#0000CD][B]x-y-z[/B][/COLOR] -m [COLOR=#0000CD][B]###[/B][/COLOR]
    x-y-z steht für eine KNX GA und ### für einen Wert der dieser GA zugeordnet werden soll.
    Hallo,
    bräuchte mal etwas Hilfe....Hab die MQTT LBS wie in den Hilfetexten geschrieben Installiert.
    Dann nach obiger Anleitung den Broker auf dem Edomi-Server (NUC) installiert.
    Der Publish Server LBS scheint sich zwar zu verbinden aber bekomme im Log einen Eintrag vom Exec Teil mit

    You don't have permission to access /data/log/CUSTOMLOG_MQTT_Publish_Server-EXEC.log on this server.
    Der Subscribe Server LBS will sich nicht verbinden und es kommt im Log die Meldung

    EXE19001052 [v1.2]: Exception caught: The client is not currently connected. (1275)
    Wie bekomm ich das zum laufen?

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Warum verwendest du / in iKO Namen?
    Das geht mit MQTT Topics ganz sicher schief.

    Ich glaube der Ansatz ist falsch. Um ein externes System per MQTT an EDOMI anzubinden solltest du einen Subscribe Client LBS verwenden.

    Der Subscribe-Client-LBS subscribed dann auf sonos/# und dann schreibst du die ankommenden Werte in deine EDOMI iKOs, denen du dann beliebige Namen geben kannst. Das machst du dann, in dem du einen MQTT Topic Parser 30-fach LBS (19002322) an mit E1 and den Ausgang A6 des Subscribe Client hängst.

    Einen Kommentar schreiben:


  • rossmax
    antwortet
    Guten Morgen

    Der Baustein MQTT Subscribe Server funktioniert prima. Vielen Dank dafür!
    Meine Situation sieht so aus:


    -Sonos2mqtt habe ich als Docker auf der Synology laufen.
    -Prefix: sonos/edomi/set/internal

    Folgende mit MSUB markierte IKO werden problemlos befüllt:

    connected
    RINCON_542A1BF5A78001400

    Nicht befüllt werden folgende IKO:

    status/esszimmer/avtransport
    status/esszimmer/volume

    Wahrscheinlich liegt es an den Slashes.
    Was kann ich tun?

    Einen Kommentar schreiben:

Lädt...
X