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

  • jonofe
    antwortet
    Sieht für mich danach aus, als wäre das epel Repo nicht richtig installiert.
    Das php72-php-devel kannst du mal mit php-devel ersetzen.

    Einen Kommentar schreiben:


  • hartwigm
    antwortet
    Nachdem ich nach einen crash den alten MQTT Client unter Centos 6.5 nicht mehr zu laufen bekam, habe ich Heute Centos 7.7.1908 installiert und dann nach der Anleitung im aktuell MQTT Client die addons zu installieren


    yum -y install epel-release php-process git gcc make lief durch


    yum -y install mosquitto mosquitto-devel php72-php-devel

    yum -y install mosquitto mosquitto-devel php72-php-devel
    Failed to set locale, defaulting to C
    Extra Packages for Enterprise Linux 8 - x86_64 865 kB/s | 4.3 MB 00:05
    Last metadata expiration check: 0:00:07 ago on Fri Dec 20 16:28:45 2019.
    No match for argument: mosquitto
    No match for argument: mosquitto-devel
    No match for argument: php72-php-devel
    Error: Unable to find a match
    Irgend eine Idee?

    Einen Kommentar schreiben:


  • harry7922
    antwortet
    Nanosonde

    Zitat von Nanosonde Beitrag anzeigen
    ich wollte Euch nur kurz den neuen LBS "MQTT Topic Parser" vorstellen: https://service.knx-user-forum.de/?c...ad&id=19001078
    Ich bekomme bei Version 0.2 des LBS häufig folgende Fehler:
    2019-12-16 20:10:45 698487 ? 26849 Datei: /usr/local/edomi/www/data/liveproject/lbs/LBS19001078.php | Fehlercode: 8 | Zeile: 52 | Undefined offset: 2 ERROR
    2019-12-16 20:10:45 698676 ? 26849 Datei: /usr/local/edomi/www/data/liveproject/lbs/LBS19001078.php | Fehlercode: 8 | Zeile: 63 | Undefined offset: 2 ERROR
    Müsste man beim Zugriff über den Index von subtopics_filter vielleicht prüfen wie groß das array ist, damit es keinen ungültigen Zugriff gibt?
    Gleiches gilt auch für den 19001079.

    Danke und Gruß
    Hardy
    Zuletzt geändert von harry7922; 19.12.2019, 21:24.

    Einen Kommentar schreiben:


  • BadWicky
    antwortet
    jonofe
    Dankeschön!!

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Zitat von BadWicky Beitrag anzeigen
    1. Subscribe Client
    p4d2mqtt/sensor/# die Raute steht für alle Werte die auf den Client rein kommen?
    Genau. Alle Werte und Multi-Level (siehe unten)

    Zitat von BadWicky Beitrag anzeigen
    für was steht das +
    + ist das MQTT Symbol für Single-Level Wildcard
    # ist das MQTT Symbol für Multi-Level Wildcard

    Es existiert auch ein Mechanismus, mit dem sich das Ordnersystem der Topics gruppieren lässt: sogenannte Single-Level-Wildcards(+) und Multi-Level-Wildcards(#)

    Die Single-level-Wildcard (+) ersetzt ein Element eines Topics durch eine Wildcard, sprich: Ein Subscriber zum topic „5OG/+/Temperatursensor/Temperatur“ würde alle Nachrichten erhalten, die den drei angegebenen Leveln entsprechen, ungeachtet der Wildcard. Nachrichten zu beispielsweise „5OG/Zimmer2/Temperatursensor/Temperatur“ oder „5OG/Flur/Temperatursensor/Temperatur“ würden jetzt empfangen werden.

    Die Multi-level-Wildcard (#) ersetzt die ganze folgende Baumstruktur. Eine Subscription zum Topic „5OG/#“ würde absolut alle Nachrichten empfangen, die mit „5OG/“ beginnen, auch z.Bsp „5OG/Flur/Tischkicker/Schummelmodul/Status“
    Wildcards lassen sich beliebig kombinieren, beispielsweise „+/+/Temperatursensor/#“ für alle Temperatursensor-Daten aus allen Stöcken und Zimmern.
    Mehr Details dazu hier: https://blog.doubleslash.de/mqtt-fuer-dummies/

    Einen Kommentar schreiben:


  • BadWicky
    antwortet
    jonofe

    Vielen Dank für Deine Hilfe!!,

    Hat gefruchtet und es funktioniert fürs erste alles einwandfrei.

    Zum Verständnis, weil ich es ja auch verstehen will.
    1. Subscribe Client
    p4d2mqtt/sensor/# die Raute steht für alle Werte die auf den Client rein kommen?
    2. Praser
    p4d2mqtt/sensor/+/state für was steht das + (für mein Verständnis steht das + ebenfalls für alle Werte die vom Client kommen richtig?)
    wieso hier + und nicht #?


    Gruß

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Zitat von BadWicky Beitrag anzeigen
    ich habe keine Ahnung wie ich das in meinem Anwendungsfall realisieren soll.
    Am besten so wie in der Hilfe meines LBS beschrieben. Mit dem Subscribe Client auf p4d2mqtt/sensor/# subscriben
    A6 vom Subscribe Client mit E1 vom MQTT Parser verwenden. (per iKO)
    E2 des MQTT Parsers auf p4d2mqtt/sensor/+/state setzen.
    E6 des MQTT Parsers z.B. auf: Betriebsstunden_0x62
    E7-E10 auf weitere Sensornamen

    An A4-A8 kommen dann die Payloads der enstprechenden Sensoren (E6-E10) raus.
    Da dies JSON Datenstrukturen sind, musst du diese auf einen JSON Extractor LBS geben, d.h. auf E1 des 19001208 LBS.
    An E2 gibst du dann das Feld des JSON ein, welches du haben willst. Wenn ich das aufgeklappte JSON deines Screenshots richtig interpretiere, muss du nur value auf E2 geben. Dann sollte an A2 der richtige Dezimalwert des Sensor erscheinen.
    Du benötigst aber auf jeden Fall einen JSON Extractor ja Sensor.

    D.h. Insgesamt:

    - einen Subscribe Client
    - für je 5 Sensoren einen MQTT Parser
    - einen JSON Extractor je Sensor.

    Einen Kommentar schreiben:


  • BadWicky
    antwortet
    jonofe,

    ich habe keine Ahnung wie ich das in meinem Anwendungsfall realisieren soll.
    Ich habe dir mal zur Verdeutlichung einen Screenshot beigefügt bei dem ein Teil der Sensorwerte ersichtlich ist die geliefert werden.
    Weiter habe ich Dir mal meine versuch ebenfalls in einem Screenshot beigefügt, hier habe ich mal zwei Subscribe Client verwendet und bei jedem client unter E9 dann die Sensorwerte eingetragen.
    Unten auf dem Screensoht habe ich mal den Praser eingefügt, keine Ahnung wo und wie ich da was einstellen muss.

    Ach ja was ich Dich noch fragen wollte wie bekomme ich da am Ausgang A2 des Subscribe Client einen sauberen Dezimalwert raus?

    Kannst Du mir vielleicht ein paar Tipps geben.

    Guß



    Angehängte Dateien

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Zitat von BadWicky Beitrag anzeigen
    kommen alle Sensorwerte die gesendet werden nacheinander, dies bringt mir jedoch nichts
    Würde es denn etwas bringen, wenn sie alle zusammen kommen würden? Nein, geht ja auch nicht, da die Sensoren ja dann, senden, wenn sie neue Daten haben. Das ist halt der Sinn von MQTT.

    Zitat von BadWicky Beitrag anzeigen
    Muss ich jetzt bei jedem Sensor Wert der bei beim MQTT Subscribe Client ankommt, diesen in das Subscribe Feld mit deinem jeweiligen Namen eintragen?
    Zitat von BadWicky Beitrag anzeigen
    oder gibt es eine andere Möglichkeit?
    Du könntest einfach den MQTT Parser LBS verwenden (19001207). Der ist genau dafür gemacht.
    Zuletzt geändert von jonofe; 16.12.2019, 13:49.

    Einen Kommentar schreiben:


  • BadWicky
    antwortet
    jonofe,

    bin jetzt gestern endlich soweit gekommen das der Subscribe Client funktioniert und mir die Sensorwerte der Heizung sendet.
    Mein Problem wenn ich # im Subscribe Client eintrage, kommen alle Sensorwerte die gesendet werden nacheinander, dies bringt mir jedoch nichts wenn ich die Werte in der edomi Oberfläche einzeln dargestellt haben möchte.

    Muss ich jetzt bei jedem Sensor Wert der bei beim MQTT Subscribe Client ankommt, diesen in das Subscribe Feld mit deinem jeweiligen Namen eintragen?
    Dies würde dann im Umkehrschluss bedeuten, dass ich für jeden Sensorwerte einen eigenen Subscribe Client benötige, oder gibt es eine andere Möglichkeit?

    Gruß

    Einen Kommentar schreiben:


  • Lapheus
    antwortet
    Zitat von jonofe Beitrag anzeigen
    Code:
    [COLOR=#FF0000]centos-release-7-7.1908.0.el7.centos.x86_64[/COLOR]
    Intressant.

    Das Image das Geert auf Edomi.de verlinkt gibt folgendes aus:
    Code:
    [root@edomi ~]# rpm -q centos-release
    centos-release-7-6.1810.2.el7.centos.x86_64
    Ist damit auch mein Fehler aus Post #412 zu erklären?

    Einen Kommentar schreiben:


  • BadWicky
    antwortet
    Danke

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Code:
    [root@edomi ~]# rpm -q centos-release
    [COLOR=#FF0000]centos-release-7-7.1908.0.el7.centos.x86_64[/COLOR]
    LBS gemäß Hilfe installieren. Sollte dann funktionieren. Wenn nicht, einfach hier melden.

    Einen Kommentar schreiben:


  • BadWicky
    antwortet
    Ok danke und so vorgehen wie im lbs beschrieben mit der Installation. CentOs 7.6 oder 7.7 oder ...
    oder geht jede Version von der 7 ner Version

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    CentOS7
    Wenn du Daten von anderen Systemen via MQTT in EDOMI übernehmen willst, dann ist der Subscribe Client der richtige LBS

    Einen Kommentar schreiben:

Lädt...
X