ja genau
sorry fast so, du schreibst parstore das Kommando heißt jetzt parset
Beiträge von horchi
-
-
Nun mit Antwort für parget und parset auf das p4d2mqtt/s3200/reply Topic.
Die Antwort ist für 'parget' so:Code
Alles anzeigen{ "address" : 3, "default" : 250, "digits" : 0, "id" : 260, "max" : 300, "min" : 85, "status" : "success", "title" : "Maximale Abgastemperatur", "unit" : "°C", "value" : 250 }
und für 'parset' so aufgebaut:
Code
Alles anzeigen{ "address" : 4, "default" : 15, "digits" : 0, "error" : "Set of parameter failed, value identical, ignoring request", "id" : 263, "max" : 50, "min" : 0, "status" : "success", "title" : "Mindestdifferenz zwischen Abgas- und Kesseltemperatur im Heizen", "unit" : "°C", "value" : 15 }
Bzw wenn es geklappt hat so:
-
das JSON bleibt identisch, das Topic muss auf das oben genannte angepasst werden.
-
junibart danke für das Donate und auch dir ein erfolgreiches Jahr 2024!
-
-
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 9Man 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 -
Die 0.9.53 ist nun auch als Debian Paket für Rspberry Pi OS Buster verfügbar
-
Habe den Patch manuell leicht angepasst übernommen. Hoffe es hat sich kein Fehler eingeschlichen
-
ich habe das Home Assistent Thema in diesem Issue kommentiert.
Ich schaue mir den Patch mal an und übernehme ich vermutlich dennoch bis es eine andere Lösung gibt. -
Der Vergleich mit "Deinem" kleinen "a" schläft dann fehl und es kommt kein Bild. Hab ich gelöst mit "strcasecmp(t, title)".
gut möglich das es überall mit großem A kommt, aber der Case Compare macht Sinn, habe ich übernommen. Danke!
-
Oder sicher und einfach VPN
Schöne Weihnachten
-
Ja, so mache ich das
-
Hallo Panzerknacker,
vielen Dank für Deine Antwort!
Das "diff" ist im Anhang zu finden, allerdings hab ich da noch ne Frage:
warum hat stateInfos[] in service.c eigentlich die (nicht fortlaufende) Status in der ersten Spalte?
Die Tatsache, dass nach "State 23" plötzlich "State 32" kommt hat "mir" das Genick gebrochen!
Die toState() gibt nämlich aktuell den Laufindex "i" zurück, statt richtigerweise "stateInfos[i].code".
Und ein zweites Problem war noch, dass meine Steuerung "Feuer Aus" ausgibt, was erfolglos mit "Feuer aus" verglichen wird -> wieder kein Bild.
Und wer kann mir jetzt bei NGINX helfen?
Liebe Grüße
Cobraball
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 -
Hallo,
ich scheitere an einer Neuinstallation, das hat die letzten Male immer ganz gut funktioniert. Aber dieses Mal startet p4d nicht und nicht.
Was habe ich gemacht
- Raspberry Pi OS Lite in 32Bit runter geladen und auf Karte geschrieben
- gestartet, Benutzer pi mit meinem Passwort angelegt und SSH aktiviert
- das install-deb.sh runter geladen und installiert.
Ich bekomme dann beim Versuch p4d zu starten oder den status abzufragen folgende Fehler:
Code
Alles anzeigenpi@raspberrypi:~ $ systemctl start p4d ==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ==== Legitimierung ist zum Starten von »p4d.service« notwendig. Authenticating as: ,,, (pi) Password: Failed to start p4d.service: Die Wartezeit für die Verbindung ist abgelaufen See system logs and 'systemctl status p4d.service' for details. polkit-agent-helper-1: pam_authenticate failed: Authentication failure pi@raspberrypi:~ $ pi@raspberrypi:~ $ systemctl status p4d × p4d.service - P4d Control Deamon Loaded: loaded (/etc/systemd/system/p4d.service; enabled; preset: enabled) Active: failed (Result: exit-code) since Fri 2023-10-27 17:56:32 CEST; 10min ago Process: 1110 ExecStart=/usr/bin/p4d (code=exited, status=127) CPU: 5ms Okt 27 17:56:32 raspberrypi systemd[1]: p4d.service: Scheduled restart job, restart counter is at 5. Okt 27 17:56:32 raspberrypi systemd[1]: Stopped p4d.service - P4d Control Deamon. Okt 27 17:56:32 raspberrypi systemd[1]: p4d.service: Start request repeated too quickly. Okt 27 17:56:32 raspberrypi systemd[1]: p4d.service: Failed with result 'exit-code'. Okt 27 17:56:32 raspberrypi systemd[1]: Failed to start p4d.service - P4d Control Deamon.
Kann mir da vielleicht jemand einen Tipp geben? Bitte?
Schöne Grüße
Peter
Der Aufruf von
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 :
ZitatPerform all the following steps as root userHält man sich daran taucht dieses Problem erst gar nicht auf
-
Vielen Dank für die Erklärung.
1. Frage: Wenn ich es richtig verstanden habe, werde ich eine Datensicherung mit dem Befehl: „p4d-backup.sh“ durchführen. Wenn ich öfter ein Backup mache, überschreibt die Datensicherung dann das Original oder wird neben dem Original eine neue Datensicherung erstellt?
2. Frage:
Befehle:
" gunzip NAME-dump.sql.gz " und
" mysql -u p4 -pp4 -Dp4 < *-dump.sql "
Ich werde das Backup importieren.
3. Frage:
Können Datensicherungen woanders gespeichert werden und wie? Es ist mir passiert, dass ich p4d mit dem Befehl „dpkg --remove p4d“ deinstallieren musste und das neu installierte p4d nach dem Befehl nicht funktionierte
„dpkg --purge p4d“ und anschließende Installation von p4d funktionierten und die Datensicherung verschwand wieder.
Welches Verfahren soll ich wählen?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 -
Meppo bist du weiter gekommen oder kann ich helfen?
-
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:
ZitatDer 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.
-
-
ich gehe davon aus das du das unter Setup -> Sensor Alerts eingetragen hast