Beiträge von horchi

    Code
    2024-01-07:  version 0.9.55
    - added:   Added reply topic for parset/parget requests


    Nun mit Antwort für parget und parset auf das p4d2mqtt/s3200/reply Topic.

    Die Antwort ist für 'parget' so:


    und für 'parset' so aufgebaut:


    Bzw wenn es geklappt hat so:

    das wird aufwändig, es baut auf der vom p4d an den Web Client gelieferten Menü Struktur auf und verwendet die IDs der Menüstruktur zur Kommunikation. Auch würde das nur funktionieren bis sich das Protokoll zum WebClient durch einen Change/Erweiterung etwas ändert.

    Es gibt bereits ein Interface zum p4d um Parameter der Heizung zu ändern. Dieses geht über MQTT und ist damit von nahezu jeder Programmiersprache aus zu verwenden.
    Dazu den p4d zusätzlich auf dem Topic p4d2mqtt/light/command lauschen lassen (eine Einstellung im Setup).

    Dann kann man über dieses Topic die Parameter ändern.


    Beispiel { "command" : "parstore", "address" : 0, "value" : "9" } ändert den Wert des Parameters mit der Adresse 0 auf den Wert 9

    Man kann mit parget erst mal checken ob alles klappt, wenn ich { "command" : "parget", "address" : 0 } zum Topic schreibe bekomme ich im Log des p4d das: Jan  2 09:26:31 raspberrypi p4d: Address: 0x0000; Unit: °C; Value: 5


    Schreiben des Topic von der Kommandozeile geht z.B. so:

    mosquitto_pub -t p4d2mqtt/light/command -m '{ "command" : "parget", "address" : 0 }'


    Das der Topic Name 'light' enthält liegt daran das ich es damals aus einem anderen Projekt von mir (Hausautomatisierung) übernommen habe. Das werde ich demnächst auf p4d2mqtt/command anpassen. Auch eine Antwort via Topic auf eine parget Abfrage (statt es nur ins log zu schreiben) ist geplant.

    Grüße
    Jörg

    danke für den Patch, den Heizungs-Status 71 (SH Anheizen) habe ich nun dem Status 2 (Anheizen) gleich gesetzt, nicht wie im Patch (9 - Zünden) was unterm Strich aufs selbe rauskommt da es das selbe GIF ist.


    Die Umstellung von state-shfire auf gif noch nicht hierzu benötige ich zuerst das entsprechende gif.


    Zu "Feuer Aus". das ist Status 1, auch bei dir oder? Da bekommst du auch kein Bild?


    stateInfos ist über 15 Jahre so gewachsen, ich wollte mit den 3-4 mir initial bekannten Status keine Liste mit ~70 Elementen anlegen in welcher fast alles leer ist. Inzwischen gibt es wenig Lücken da könnte man es ggf. mal umstellen.

    Das 'i' statt 'code' zurückgegeben wird ist es Bug, ist mir nie aufgefallen da ich selten Status > 23 habe und es bis 23 noch identisch ist. Fehler ist behoben, danke für den Hinweis.

    Zu NGINX, den verwendest du einfach als Proxy um Anfragen vom Browser zum p4d zu routen?
    Wenn du von einer ganz alten p4d Version gewechselt hast bei der das WEBIF noch mit PHP realisiert war und ein Apache nötig war ....
    geändert hat sich das der p4d nun selbst den WEB Server stellt und die Kommunikation des WEB Client (nun JavaScript) und dem p4d über Websockets erfolgt. Ggf. musst du dem Proxy für die Verbindung noch Websockets erlauben?

    Grüße
    Jörg

    Der Aufruf von

    Code
    systemctl start p4d

    als nicht root User sollte nach einem Passwort fragen, den Meldungen nach hast du das nicht eingeben. Sollte systemctrl nicht nach einem Passwort fragen verwende sudo systemctl start p4d Ansonsten schau mal nach diesem Hinweis im README :

    Zitat
    Perform all the following steps as root user

    Hält man sich daran taucht dieses Problem erst gar nicht auf ;)

    1. es wird in dem Ordner erstellt in welchem Das Backup Skript aufgerufen wird, liegt dort eine Sicherung so wird diese Überschrieben.
    2. was ist die Frage
    3. ja siehe 1.
    Weder purge noch remove löscht die Backups.

    Meppo ich habe es selbst mal auf einem frischen Linux (Ubuntu 23.04) versucht dort wird der g++ in Version 12.3 verwendet.
    Damit kann ich die von dir geschilderten Probleme reproduzieren. Ich habe es so angepasst das es auch mit dem neueren g++ baut. Ist schon im git verfügbar.

    Schau mal ob das auch bei dir unter Debian alle Probleme löst.


    Dazu entweder in dem Ordner mir den Quellen:

    git checkout .
    git pull

    um auf den aktuellen Stand zu kommen. Oder löschen und nach der Anleitung bei git clone ... beginnen.

    BTW: Die libwebsockets solltest du bei einem so neuen System nicht selbst bauen müssen da sollte bereits eine 4.x dabei sein, also einfach

    Code
    sudo apt install libwebsockets-dev 

    sorry das ich immer noch so selten hier rein schaue, nach wie vor viel zu wenig Zeit.

    Erstmal zu dem Backup. Wenn man alles also auch dem DB Server neu aufsetzt sollte man wenn man die Daten nicht verlieren möchte die Tabellen sichern.
    Das geht wie oben schon geschrieben wurde mittels des Skripts p4d-backup.sh das sichert alle Tabellen und legt dazu ein File ja Tabelle in aktuellen Ordner in welchem man sich beim Aufruf befindet an. Dort muss natürlich genug Platz sein.

    Auf dem neuen System importiert man alles wie beschrieben und schon ist man auf dem alten Stand.
    Selbstredend muss man die Sicherungs-Dateien dazu auf das neue System, transportieren (Netzwerk, Stick, externe Platte, ... wie immer man möchte).

    Zu der Meldung:

    Zitat

    Der Import löscht zunächst alle Daten und importiert dann die gedumpten Daten ....

    bei einem neuen System ist noch nichts da also wird auch nichts gelöscht. Die Meldung soll warnen das man wenn man einen alten Stand auf ein bestehendes System einspielt alles neuerer weg ist sofern man sich nicht selbst darum kümmert das eben dies nicht passiert.