Beiträge von paicl01

    Kann man mit Mosquitto die Werte der Parameter mit der Kommandozeile (bash Skript) ändern?

    Zum Thema "Werte an p4 schreiben " hat horchi nun ja diese Super-MQTT-Erweiterung geschrieben, hier meine Erfahrungen damit:

    • es funktioniert super.
    • man kann damit über jedes MQTT Interface Werte schicken, muss sich halt allerdings einmal grundsätzlich mit der Philosophie dieses Protokolls beschäftigen. Da dieses aber momentan immer weitere Verbreitung findet, ist der Aufwand sicher nicht umsonst.
    • Ich verwender bekanntlich Openhab für meine Steuerung, und hab inzwischen mit dieser erweiterten Funktionaliät das ganze P4-Modul auf MQTT umgestellt (man muss sich dann tatsächlich kein extra Binding mehr für Openhab wünschen).
    • Entscheidend ist, dass die Syntax der state- und command topics korrekt geschrieben ist, und die Abfrage-Kanäle im p4-Interface auswgewählt sind. Dies ist unten beispielhaft in den Openhab-Code eingebettet, für andere Programme geht das entsprechend.

      Nur noch eine Frage / Verbesserungsvorschlag an Horchi: warum wird der "parstore: command" gebraucht?. Nach meinem Verständnis ist der Command-Charakter schon über den command-topic "p4d2mqtt/command" abgedeckt, man könnte das in der Paload also auch weglassen.

    Aber ansonsten alles super!


    Viele Grüße


    Wilfried

    okay noch ein Versuch auf den Hinweis das hex nicht unterstützt wird was daran liegt das JSON 'number das nicht unterstützt.
    Du kannst auch vor den Senden das JSON prüfen, nahezu jeder beliebige JSON Parser wird die verraten das dein JSON 'invalid' bzw. 'malformed' ist. Das hat hier nichts mit dem p4d zu tun.

    Nach längerem Nachdenken, hab ich dann auch endlich begriffen, was Deine Bemerkung mit der HexAdresse sollte. ich hatte einfach die Angabe übernommen, die Dein WebIF für den entsprechenden Kanal im Fenster für die Werteeingabe ausgibt, und das ist nun mal:

    Code
    Gewünschte Vorlauf-temperatur bei +10°C Außentemperatur
    Bereich: 10 - 110°C
    °C(Default 40 °C, Adresse 0x58, Typ 0x7)


    Auf die Idee, den Adresswert in Dezimal umzurechnen, bin ich erst gar nicht gekommen, ich dachte, wenn Du das so angibst, dann erwartet das Programm auch wieder Hex-Adressen. Und mit den Feinheiten von JSON Parsern beschäftige ich mich normalerweise nicht :)


    Wenn ich nun statt 0x58 den Wert 88 nehme, kommt auch hier tatsächlich der richtige Wert an und wird gespeichert.
    Super!!!!


    Damit kann ich jetzt mal weiter herumspielen, und versuchen, das in Openhab einzubauen.


    Vielen Dank erst mal, ich berichte, wenn es was Neues gibt.


    Wilfried

    die vom syslogd (oder rsyslogd) geschriebenen logs liegen unter /var/log/, das des p4d heißt p4d.log.
    Lass doch mal in einem Fenster ein tail -f /var/log/p4d.log laufen währen die die MQTT Message abschickst.


    Deutlicher Fortschritt meinerseits, ich hab jetzt die Logeinträge hinbekommen:

    Code
    Jan 17 12:10:15 raspberrypi p4d: <- (mqtt2p4d/command) [{ "command" : "parstore", "address" : 0, "value" : "6" }]Jan 17 12:10:15 raspberrypi p4d: Perform MQTT command 'parstore' for address 0 with value '6'Jan 17 12:10:15 raspberrypi p4d: Storing value '6' for parameter at address 0x0Jan 17 12:10:15 raspberrypi p4d: Stored parameter

    Und mit Deinen Beispieldaten wird auch der Wert gespeichert :)


    Wenn ich dann allerdings die Adresse und den Wert der Vorlauf-Solltemp. einsetze, gibts eine Fehlermeldung, scheint an der Stelle der Hex-Adresse zu, wenn das recht verstehe.

    Code
    Jan 17 12:10:31 raspberrypi p4d: <- (mqtt2p4d/command) [{ "command" : "parstore", "address" : 0x58, "value" : "36" }]Jan 17 12:10:31 raspberrypi p4d: Error: Ignoring invalid json in [{ "command" : "parstore", "address" : 0x58, "value" : "36" }]Jan 17 12:10:31 raspberrypi p4d: Error decoding json: '}' expected near 'x' (<string>, line 1 column 40, position 40)


    Aber insgesamt sieht das ja schon mal ganz gut aus.

    Poste mir mal bitte was der p4d loggt wenn du mein Beispiel verwendest


    Ergänzung, gerade bei den ersten Tests würde ich auf jeden Fall das Log im Auge behalten, nicht das du ganz andere Parameter veränderst!
    Weitere Ergänzung, hattest du gesehen was ich zu JSON und Hex geschrieben habe?


    Hallo Jörg,


    bzgl. log kenn ich nur
    sudo systemctl status p4d.
    ist es das was Du meinst?


    Dann kommt:
    ...
    Jan 16 21:34:56 raspberrypi p4d[978]: -> (p4d2mqtt/Resetierbarert-Zaehler_0x112/state)[{"value": 0.0}]
    Jan 16 21:34:56 raspberrypi p4d[978]: Processed 16 samples, state is 'Betriebsbereit'
    Jan 16 21:34:56 raspberrypi p4d[978]: client -1 not found! [{"event": "all", "object": []}]
    ...


    Ich hatte den Command Befehl nochmals mit Adresse 0 und Wert "7" abgesetzt, evtl. ist die letzte Zeile aber auch noch von den vorigen Versuchen da, keine Ahnung.


    JSON und Hex: wenn damit gemeint ist, wie die Adresse bereitgestellt werden soll, ist das auch meiner Sicht auch so, wie für Dich einfacher ist.


    Wilfried

    Hallo Jörg,


    ich bin ja absolut kein MQTT Crack, und mache das alles nur, indem ich reale Beispiele aus anderen Foren auf meine Anwendung übertrage, ohne alles (insb. die ganzen Daten-Typen-Transformations-Skripte) im Detail zu verstehen.


    Aber ich glaube, bei unsrem Thema bin ich momentan noch eine Ebene tiefer.


    Ich hab jetzt nochmals getestet, indem ich direkt in meinem Raspi, in dem der MQQT Server läuft, mit dem mosquitto_pub Befehl deine Kommandos abgesetzt habe.


    Die Verbindung zwischen p4d und Mqtt-Server steht, alle Lese-Operationen werden immer korrekt übertragen, aber das Schreiben hat keine Auswirkungen.
    Dabei hab ich die fehlenden Anführungszeichen in Deinem Originalstring ergänzt, damit die _pub Syntax fehlerfrei ist, und nochmals alle Kombinationen von Anführungszeichen und möglichen anderen Befehlskombis durchprobiert (in der letzten Zeile noch mit der -d Option). Der Befehl wird ohne Murren übrertragen, der Wert für die Vorlauf-Solltemperatur im P4 ändert sich nie.
    Ich hab auch noch versucht, ob als Channel möglicherweise mqtt2p4d/parstore gemeint sein könnte, weil mir komisch vorkommt, dass Du in der Payload nochmals ein Command spezifizierst. Warum reicht es nicht, das über den Channel allein zu machen, erwartest Du noch Bedarf für andere Operationen als Parameter zu speichern?
    Aber mqtt2p4d/parstore hat auch nicht funktioniert :(


    Was mache ich falsch?


    Code
    openhabian@openhab:~ $ mosquitto_pub -t 'mqtt2p4d/command' -p 1883 -m  '{ "command" : "parstore", "address" : 0x58, "value" : "44" }'
    openhabian@openhab:~ $ mosquitto_pub -t 'mqtt2p4d/command' -p 1883 -m  '{ "command" : "parstore", "address" : 0x58, "value" : 44 }'
    openhabian@openhab:~ $ mosquitto_pub -t 'mqtt2p4d/command' -p 1883 -m  '{ "command" : "parstore", "address" : "0x58", "value" : "44" }'
    openhabian@openhab:~ $ mosquitto_pub -d -t 'mqtt2p4d/command' -p 1883 -m  '{ "command" : "parstore", "address" : "0x58", "value" : 44 }'
    Client mosqpub|7094-openhab sending CONNECT
    Client mosqpub|7094-openhab received CONNACK (0)
    Client mosqpub|7094-openhab sending PUBLISH (d0, q0, r0, m1, 'mqtt2p4d/command', ... (60 bytes))
    Client mosqpub|7094-openhab sending DISCONNECT

    Zu Deiner Frage, welche Datentypen am besten geeignet wären:
    Das ist mir vollkommen schnurz, sobald dieser Testlauf funktioniert, kann man jegliche Anpassung direkt in openHAB mit einem Transformationsskript machen, dabei mehr oder weniger Anführungszeichen einzubauen, ist die leichteste Übung.


    Wilfried

    hab mal für die Vorgabe der Vorlauftemp. bei +10° getestet (Adresse 0x58), Wert soll von 41 auf 43° erhöht werden:
    Ergebnis:
    wenn ich den MQTT-Command Befehl über MQTT.fx absetze (also ohne jegliche Zwischenschritte), bekomme ich die Meldung, dass der Upload erfolgt ist, aber im WebIF des p4d scheint keine Änderung anzukommen. Ich hab auch noch versucht, ob es an den Anführungszeichen liegt, da bei den Lesewerten eine andere Syntax kommt, ist aber immer dasselbe.


    Mach ich da was falsch?
    Gibt es irgendein Logging, wo man sehen kann was p4d mit dem command string anstellt?

    Viele Grüße


    Wilfried

    @paicl01 wenn du das mir den MQTT Commands mal testen magst, das:

    Code
    mosquitto_pub -t mqtt2p4d/command -p 1883 -m '{ "command" : "parstore", "address" : 0, "value" : "7" }

    setzt Parameter mit Adresse 0 auf den Wert 5.
    Die p4d interne ID wird hier nicht mehr verwendet sondern die Parameter Adresse der Steuerung.
    Dieses Feature ist nur rudimentär getestet!!


    Viele Grüße Jörg

    mach ich baldmöglichst, ich muss grade nur immer das System herunterfahren und die Speicherkarte zum Testen wechseln, da ich mein richtiges System nach dem Update auf deine neue Version ja so nicht mehr läuft, sondern ich dann erst mal mein Openhab umschreiben muss.
    Jetzt arbeite ich zur Sicherheit auf zwei SD-Karten, eine zum testen der neuen config, und die bisherige als Backup, damit ich wieder zurück kann, wenn nicht gleich geht.
    Aber schon mal vielen Dank für die MQTT Command Erweiterung.

    und zu meinem aktuellen Problem:
    Im Moment bin ich wieder zurück auf meiner alten Version, und musste dabei feststellen, dass die Adressen sich tatsächlich verändert haben, nachdem gerade gestern der Service-TEchniker von Fröling einen Update aufgespielt hat (der seiner Meinung nach keine Änderungen enthält).


    Ich hab jetzt Lambdatronic V 50.04 B 05.18 vom 18.2. 2020, da der Service seit zwei Jahren nicht mehr da war, muss die letzte Version älter als 2019 gewesen sein.


    Die Wert aus der bisherigen Adresse 1705 liegt jetzt z.B. auf 2068, 2037 ist jetzt 2410, und 2038 verschiebt sich auf 2412.


    Nach diesen Änderungen in meinem Skript kommen wieder die korrekten Rückmeldungen, dass die entsprechenden Parameter geändert sind.


    Ist dazu etwas bekannt, daß sich diese Adressen in der aktuellen Softrware ändern können?

    horchi:


    wenn Du Steuerbefehle über MQTT in das Programm aufnimmst, dann bist Du für mich der absolute Held!! :):):) .


    Das hatte ich mir vor genau einem Jahr schon gewünscht, weil ich bereits damals nicht verstanden habe, was die ganzen Anstrengungen wert sind, wenn man der Heizung nur mit schönen Icons und Diagrammen beim Arbeiten zuschauen kann, ohne die Steuerparameter verändern zu können.


    Mit MQTT Lesen UND Schreiben hätte man eine einheitliche Schnittstelle, so dass jeder mit FHEM, Openhab, oder sonstwie die Heizung einbinden kann.


    Ich kann mich dazu gerne als Tester zur Verfügung stellen.

    Hallo Horchi,


    seit längerer Zeit komm ich mal wieder dazu, meine P4 Regelung anzufassen. Dazu hab ich erst mal ein Update auf Deine neueste Version gemacht, vorher war ich noch auf dem Stand von Anfang 2020 mit der ersten Version der MQTT Anbindung.
    Da der MQTT Link nun stabil funktioniert, hab ich nun alle Lese-Abfragen von Parametern aus dem Kessel von meiner alten umständlicen Skript-Variante auf diesen Weg umgestellt, das sieht nun wirklich gut aus.


    Dann hab ich allerdings gemerkt, dass die Übergabe von Steuerparametern an den Kessel mit der neuen Programmversion und den bisherigen Adressen nicht mehr funktioniert. Bisher hab ich z. B. für die Steuerung der Vorlauftemp. das Skript setp.sh mit der Adresse "1705 40" verwendet (um z.B die Vorlauftemp. 40° einzustellen.
    Nun sah ich im neuen P4-Web-IF, dass die Adresse auf "88" liegt (siehe Screenshot1). Daher hab ich die Adresse entsprechend angepasst.
    Mein Problem ist nun, dass der Befehl zwar in der Datenbank ankommt, ein geänderter Wert aber nicht in die Heizungssteuerung übernommen wird.


    In der Jobs-Tabelle sieht das Ergebnis so aus wie im zweiten Screenshot (oben noch alte Adressen, unten die neuen, sieht in beiden Fällen gleich aus).
    Hat sich da noch etwas anderes geändert, was ich übersehen hab?
    Gibt es eine Beschreibung, wie das Setp-Skript verwendet werden muss, im aktuellen Readme-md auf der GitHub Seite hab ich nichts gefunden?


    Vielen Dank für die Unterstützung

    Für mich hat das Thema im Moment auch nicht mehr die höchste Priorität, ich hab mich schliesslich bereits durch die ganze Anbindung des p4d in beide Richtungen (Darstellung in Grafana auf der Basis von SQL-Befehlen und Steuerung in openhab über das setp.sh-Skript durchgekämpft und das Ganze lief bereits den dritten Winter stabil.
    Ich frage mich nur, warum hier noch soviel ausschliesslich über Darstellungsprobleme diskutiert wird, die sich mit anderen Programmen viel einfacher lösen lassen, wenn die Schnittstelle stimmt, und andererseits die Frage der aktiven Steuerung so wenig Priorität hat. Jeder, damit neu anfängt, hätte einen wesentlich geringeren Einstiegsaufwand, um den p4d zu nutzen, wenn die volle Funktionalität in beide Richtungen vorhanden wäre.
    Und bitte nicht als Kritik an der Leistung verstehen, diesen Dämon zu programmieren. Der funktioniert einfach super. Es macht nur keinen Spaß, innerhalb einer geschlossenen Web-Oberfläche das Rad neu zu erfinden.


    Voila:
    In meiner Einstellung ist das Wort /sensor/ aus dem MQTT-Bezeichner entfernt. Dann sieht das für ein paar Beispiele so aus


    Brainfuck: p4.things
    Bridge   mqtt:broker:mymqttbroker [ host="192.168.2.60", secure=false, clientID="openhab_mosquitto" ]
    {
    Thing topic P4_Read "P4 Daemon Read" {
        Channels:
    Type number : 0x15 "Vorlauf-Isttemperatur"  [ stateTopic="p4d2mqtt/Vorlauf-Isttemperatur_0x15/state",   transformationPattern="JSONPATH:$.value"]
    Type number : 0x16 "Vorlauf-Solltemperatur" [ stateTopic="p4d2mqtt/Vorlauf-Solltemperatur_0x16/state",  transformationPattern="JSONPATH:$.value"]
    Type string : 0xZeit "Uhrzeit P4" [ stateTopic="p4d2mqtt/Uhrzeit/state",  transformationPattern="JSONPATH:$.value"]
    ... weitere Channels ....
         }
    }

    und für die items:

    Code: p4.items
    NumberP4DaemonRead0X15"Vorlauf isttemperatur" {channel="mqtt:topic:mymqttbroker:P4_Read:0x15"}
    NumberP4DaemonRead0X16"Vorlauf solltemperatur" {channel="mqtt:topic:mymqttbroker:P4_Read:0x16"}
    String 0XZeit "Uhrzeit p4" {channel="mqtt:topic:mymqttbroker:P4_Read:0xZeit"}

    Mir ist leider immer noch nicht ganz klar, was das Ziel der ganzen Daten-Leserei sein soll.


    Wir sollten dringend mal am besten in einem neuen Thread weiterdiskutieren, wie man von hier aus dazu kommt, auch Commands an den Dämon zu schicken.


    Wilfried

    horchi schrieb:

    Zitat

    ALLE Parameter der Datenbank-Anbindung sollten für den Dämon UND für das Web-Interface in EINER config-Datei zusammengefasst werden!

    das gestaltet sich schwierig da der p4d und der apache auf unterschiedlichen Hosts laufen können, wie stellst du dir das vor?
    Sorry, so eng hab ich das nicht gemeint, es können natürlich auch zwei Dateien sein für Apache und p4d. Aber es sollte eben auch für Apache eine klar erkennbare und in der Anleitung benannte Konfigurationsdatei geben, in der alle Anbindungen klar geregelt sind. Momentan sind die Werte auch noch in anderen php-Dateien, und es war (zumindest für mich) nicht so dokumentiert, dass Anpassungen leicht möglich sind.




    Zitat

    Das ist zwar für den Dämon in der Datei „p4d.conf“ so gemacht, aber NICHT für das WebIF. Damit würde man sich die mühsame Suche in einzelnen PHP Dateien sparen, wo jeweils noch Werte z.B. für den SQL-Port gesetzt werden (Standard 3306, muss aber für MariaDB auf 3307 umgesetzt werden).

    es sind zwei Dateien, die p4d.conf und die config.php

    Zitat

    Das gleiche gilt für den Namen der Datenbank (standardmässig p4, in meinem Fall aber „openhab“).

    warum musst du sie umbenennen, greift denn openhab direkt auf die Tabellen des p4d zu?


    Ja, ich greife sowohl aus openhab als auch aus Grafana direkt LESEND über SQL-Befehle auf die Datenbank zu, das hab ich ja bereits vor längerer Zeit ellenlang dokumentiert, wie man damit sowohl eine sehr mächtige Darstellung aller geloggten Daten in Grafana und auch einen Zugriff auf p4-Werte als Input-Parameter für eigene Regeleingriffe in Openhab bekommt.

    Ich will schliesslich der Heizung nicht nur beim Brennen zuschauen, sondern ihre Funktion optimieren, nur dazu brauch ich die ganzen Daten.

    Dazu müsste ich die SQL-Datenbank nicht unbedingt umbenennen, es war für mich halt zu der Zeit einfacher, p4 in openhab umzubenennen. Aber solche Dinge sollten halt sauber dokumentiert sein.

    kannst du mir einen login auf den Raspi geben dann schaue ich mal ob ich die Ursache finde


    Nach einem Upgrade auf Buster, (vorher alle alten Konfigdateien und WebIF gesichert und dann aus den aktiven Verzeichnissen gelöscht) und Neuinstallation von p4d über den apt-Pfad funktionieren jetzt Dämon und das WebInterface in der neuesten Version. Während des Einrichtens wurde mir aber leider auch wieder klar, warum ich davor so lange zurückgeschreckt hatte: es dauerte halt doch ein paar Stunden, bis über den Vergleich mit der alten Installation wieder alle Stellen gefunden und an meine Umgebung angepasst waren (externer SQL-Server auf Synology, Anbindung an OpenHAB, Grafana …, s. Post #166999 in diesem Thread)



    Aus dieser Erfahrung hätte ich einen Verbesserungsvorschlag:


    ALLE Parameter der Datenbank-Anbindung sollten für den Dämon UND für das Web-Interface in EINER config-Datei zusammengefasst werden!


    Das ist zwar für den Dämon in der Datei „p4d.conf“ so gemacht, aber NICHT für das WebIF. Damit würde man sich die mühsame Suche in einzelnen PHP Dateien sparen, wo jeweils noch Werte z.B. für den SQL-Port gesetzt werden (Standard 3306, muss aber für MariaDB auf 3307 umgesetzt werden). Das gleiche gilt für den Namen der Datenbank (standardmässig p4, in meinem Fall aber „openhab“).
    Jetzt läuft die Kiste auf jeden Fall wieder, und ich kann auch wieder die MQTT-Werte sehen und dank der neuen Einstellmöglichkeiten auch anpassen.
    Werd ich mir in den nächsten Tagen mal genauer anschauen.

    Hallo Horchi,


    leider dasselbe Ergebnis, die paho-lib hatte ich aktualisiert.
    Ich sag allerdings noch dazu, dass bei mir stretch läuft, und ich das Ganze anhand Deiner Anleitung im GitHub-README mache, da für die Paket-Installation die Zusammenstellung in Deinem apt-script wohl nicht auf Stretch passt.


    Also kein Paket-Update sondern fürs Aktualisieren diese Befehlsfolge, läuft dabei vielleicht was schief, oder muss noch was gelöscht werden?
    cd /usr/src/
    git clone https://github.com/horchi/linux-p4d/


    cd linux-p4d


    make clean all HASSMQTT=yes

    hier erst mal die Version 0.3.29:


    Code
    2020-05-05:  version 0.3.29   
         - added: Syslog to WEBIF

    Hallo Horchi,
    ich finds ja weiterhin interessant, die MQTT Integration zu beobachten. Allerdings bekomme ich die neueren Versionen bei mir nicht mehr zum Laufen, die alten vor einigen Wochen liessen sich problemlos übernehmen,
    aktuelle paho-library läuft auch noch durch, aber dann kommt immer die gleiche Fehlermeldung bei make des p4d.
    _________________________________
    [14:42:23] openhabian@openHABianPi:/usr/src/linux-p4d$ sudo make clean all HASSMQTT=yes
    rm -f */*.o *.o core* *~ */*~ lib/t *.jpg
    rm -f p4d dbchart p4 p4d-0.3.30.tgz
    rm -f com2
    if [ ! -d ~/build/paho.mqtt.c ]; then \
    mkdir -p ~/build; \
    cd ~/build; \
    git clone https://github.com/eclipse/paho.mqtt.c.git; \
    sed -i '/if test ! -f ..DESTDIR..{libdir}.lib..MQTTLIB_C..so..{MAJOR_VERSION.; then ln -s/d' ~/build/paho.mqtt.c/Makefile; \
    sed -i '/\- ..INSTALL_DATA. .{blddir}.doc.MQTTClient.man.man3.MQTTClient.h.3 ..DESTDIR..{man3dir}/d' ~/build/paho.mqtt.c/Makefile; \
    sed -i '/\- ..INSTALL_DATA. .{blddir}.doc.MQTTAsync.man.man3.MQTTAsync.h.3 ..DESTDIR..{man3dir}/d' ~/build/paho.mqtt.c/Makefile; \
    sed -i s/'int rc1 = sem_getvalue.sem, .val.;.*'/'sem_getvalue(sem, \&val);'/ ~/build/paho.mqtt.c/src/Thread.c; \
    sed -i s/'rm [$]'/'rm -f $'/g ~/build/paho.mqtt.c/Makefile; \
    fi
    Klone nach 'paho.mqtt.c' ...
    remote: Enumerating objects: 68, done.
    remote: Counting objects: 100% (68/68), done.
    remote: Compressing objects: 100% (53/53), done.
    remote: Total 7125 (delta 38), reused 36 (delta 15), pack-reused 7057
    Empfange Objekte: 100% (7125/7125), 2.80 MiB | 1.93 MiB/s, Fertig.
    Löse Unterschiede auf: 100% (5290/5290), Fertig.
    cd ~/build/paho.mqtt.c; \
    make -s; \
    sudo rm -f /usr/local/lib/libpaho*; \
    sudo make -s uninstall prefix=/usr; \
    sudo make -s install prefix=/usr
    OSTYPE is Linux
    src/Thread.c: In function ‘Thread_post_sem’:
    src/Thread.c:326:7: error: ‘rc1’ undeclared (first use in this function)
    if (rc1 != 0)
    ^~~
    src/Thread.c:326:7: note: each undeclared identifier is reported only once for each function it appears in
    Makefile:254: die Regel für Ziel „build/output/libpaho-mqtt3c.so.1.3“ scheiterte
    make[1]: *** [build/output/libpaho-mqtt3c.so.1.3] Fehler 1
    OSTYPE is Linux
    src/Thread.c: In function ‘Thread_post_sem’:
    src/Thread.c:326:7: error: ‘rc1’ undeclared (first use in this function)
    if (rc1 != 0)
    ^~~
    src/Thread.c:326:7: note: each undeclared identifier is reported only once for each function it appears in
    Makefile:254: die Regel für Ziel „build/output/libpaho-mqtt3c.so.1.3“ scheiterte
    make: *** [build/output/libpaho-mqtt3c.so.1.3] Fehler 1
    Makefile:183: die Regel für Ziel „paho-mqtt“ scheiterte
    make: *** [paho-mqtt] Fehler 2
    _____________________________________________


    Hab leider keine Idee mehr, an was das liegen könnte, vielleicht hast Du einen Tip?