Beiträge von David92

    Nach der Anpassung des MQTT-Request-Topics im p4d habe ich das Script für die aktuelle Version angepasst. (Version 0.1.7 des Scripts)

    Mit der Änderung, dass nun Daten auch per MQTT am p4d abgefragt werden können werde ich - wenn ich die Zeit finde - das Script noch so umbauen dass auch die Abfrage von Pelletfüllstand und Heizungsstatus per MQTT gemacht werden.

    So, hier die geforderten Ausgaben:


    Code
    mosquitto_pub -t p4d2mqtt/s3200/request -m '{ "command" : "parset", "value" : "670", "address" : 60 }'
    
    
    Jan 10 14:17:21 raspiheizung p4d: Debug: Got message from topic 'p4d2mqtt/s3200/request'
    Jan 10 14:17:21 raspiheizung p4d: <- (p4d2mqtt/s3200/request) [{ "command" : "parset", "value" : "670", "address" : 60 }] retained 0
    Jan 10 14:17:21 raspiheizung p4d: Info: Parameter 0x3c not found, abort command


    Code
    ps -ef | grep p4
    
    root       627     1  4 14:15 ?        00:00:08 /usr/bin/p4d
    pi         950   790  0 14:19 pts/0    00:00:00 grep --color=auto p4d

    Habe in der Zwischenzeit nochmal die Parameter eingelesen und den pi einmal neu gestartet.
    Evtl. lief es vorher tatsächlich 2 mal.

    Hallo zusammen,


    ich habe nach dem Update das Problem, dass sich genau die beiden Parameter 60 und 516 (Start der 1. und 2. Pelletsbefüllung) nicht mehr schreiben lassen.

    Andere Parameter (z.B. Vorlauftemperaturen) sind kein Problem.


    Im Log taucht folgender Fehler auf:

    Jan 10 11:05:04 raspiheizung p4d: <- (p4d2mqtt/s3200/request) [{"command": "parset", "value": "670", "address": 60}] retained 0

    Jan 10 11:05:04 raspiheizung p4d: Error: Ingnoring unexpected message in 'p4d2mqtt/s3200/request' (dispatchOther) [{"command": "parset", "value": "670", "address": 60}]

    Jan 10 11:05:04 raspiheizung p4d: Info: Parameter 0x3c not found, abort command


    Per p4 setp -a 60 -v "670" lässt sich der Wert allerdings setzen.


    Ich habe bereits die Tabelle menu gedroppt und per WebGui neu eingelesen, das hat aber leider nicht geholfen.


    Wo ist mein Fehler?

    Hallo Gunther11,


    ich habe die Version 0.1.6 auf github hochgeladen.

    Das Problem war, dass die Reset-Zeiten immer geschrieben wurden, egal ob man eigentlich leer fahren sollte oder nicht.

    Das wurde jetzt behoben.

    Bei mir ist das nie aufgefallen weil ich das Script ohne Reset-Zeiten betreibe.


    Jenso :

    Bekommst du auf dem MQTT-Topic den Füllstand angezeigt? Wenn ja, hast du deine Login-Daten geprüft?


    Viele Grüße,

    David

    Aber dadurch nimmst Du doch in Kauf, dass ein gerade laufender Heizvorgang unterbrochen wird.

    Genau das will man doch mit so einem Skript vermeiden.

    Oder meinst Du was anderes und ich habe es nicht verstanden?

    Das Setzen der Zeit geschieht nur im Zustand "Betriebsbereit". (siehe erste Zeile) Dadurch ist gewährleistet, dass das Heizen nicht unterbrochen wird und der Behälter erst gefüllt wird wenn die Heizung fertig ist.


    Darüber wird während des Heizvorgangs das Füllen auch hinausgezögert, sollte bspw. die von Hand festgelegte Zeit erreicht werden während geheizt wird (letzter Satz im 1. Abschnitt).



    Ich meinte was dein Script bisher macht, du hattest ja gesagt dass du dir für den gleichen Einsatzzweck bereits ein Script geschrieben hast.

    Achso, jetzt verstehe ich.


    Also, es ist folgendermaßen:

    Wenn die beiden Zeiten auf 0:00 Uhr gestellt sind, ist die automatische Füllung praktisch deaktiviert.

    Mein Script arbeitet so, dass die Zeiten entsprechend dann, wenn der Füllstand unter den Wert MinPelletstandZumFuellen fällt, die Zeit auf 10 Minuten in der Zukunft setzt.

    Dadurch wird der Behälter sofort gefüllt (außer man würde den Parameter auf >85% stellen).


    Dadurch wird dafür gesorgt, dass der Behälter nicht z.B. auf 5% fällt und nicht gefüllt wird, der Heizvorgang aber trotzdem startet.


    Wie hat denn dein Script bisher gearbeitet?

    Hallo meute,


    das Script gibt es seit dem 25.01.2021. Ich hatte es auch im p4d-Sammelthread gepostet und von dir ein Danke erhalten ^^


    Zu deinen Fragen:

    Sinn des MinPelletstandZumFuellen ist, dass der Pellet-Tagesbehälter unter dieser Schwelle wieder gefüllt wird. Was meinst du damit, dass er immer bei unter 85% gefüllt wird?


    Der Parameter TageFuer0Prozent kann auch auf 0 gesetzt werden, ja. Dann wird nie leer gefahren.


    E-Mails zu versenden hatte ich erstmal nicht vor, da ich eigentlich dafür bin, dass sowas transparent ablaufen sollte und ich als Nutzer nicht 2-3 Mal pro Tag davon genervt werden will.

    Sollte das aber eine Anforderung sein, dann lässt sich das bestimmt umsetzen.

    Hallo gexle,


    im Script sollten username und passwort wie in deinem Screenshot von p4d verwendet werden.

    Wenn das ohne funktioniert gut - bei mir ging das mit Version 1.5.7 nicht.

    Habe das Script so geupdated dass es auch damit zurecht kommt wenn die beiden Felder leer sind -> wird kein Nutzername im Script angegeben wird die Verbindung auch ohne aufgebaut.

    Der Rest passt.

    Wenn du auf jeden Fall jeden Tag um 16 Uhr (bzw. dann 15:30 Uhr - die Heizung lädt immer eine halbe Stunde vor der eingestellten Zeit) laden willst dann ist der Eintrag korrekt.


    Um zu sehen, ob das Script funktioniert musst du erstmal die Variable "ImmerLoggen" auf true setzen. Dann musst du es einmal über den Befehl sudo python DynamischePelletaustragung.py starten. In der Konsole sollte es keine Ausgabe geben. Gleichzeitig wird ein Unterordner "logs" erstellt. Dort wiederum eine Datei mit dem aktuellen Datum. Dort siehst du dann, was das Script gemacht hat.


    Viel Erfolg!

    Hallo gexle, tut mir leid, hatte die Benachrichtigungen aus, dachte aber sie wären an..


    Also, der MQTT-Broker "mosquitto" wird bei der Installation von p4d mit installiert.

    Testen ob der Broker installiert ist kannst du mit dem Befehl "mosquitto -h" in der Konsole.
    Es sollte dann die Version von Mosquitto und die entsprechende Hilfe angezeigt werden.

    Kommt nur "-bash: mosquitto: command not found" ist der Broker nicht installiert und du musst ihn manuell installieren.


    Grundsätzlich musst du nur in p4d und im Script die Brokeradresse angeben.
    Wenn du alles auf einem Gerät laufen lässt musst du im Script nur deinen Nutzernamen und das Passwort angeben (siehe Update im git)
    Bei weiteren Fragen bin ich jetzt behilflich!

    Hallo alle zusammen,


    ich möchte an dieser Stelle nochmals auf mein Script zur Lösung dieses Problems hinweisen, nachdem der Admin den Thread für mich hierher verschoben und angepinnt hat. Ich habe das Script ursprünglich im allgemeinen Teil des Fröling-Forums vorgestellt, dort ging es allerdings ein bisschen unter. Ich denke aber, dass das Problem viele Fröling-Betreiber betrifft und nutze deshalb die Gelegenheit, es hier nochmal kurz vorzustellen.


    Durch die Nutzung von p4d ist mir aufgefallen, dass mein PE1-Kessel, unabhängig vom Pelletfüllstand, anfängt zu heizen (auch gerne mal bei 2%), was zu sehr kurzen Heizzeiten und kaltem Puffer führt. Ebenfalls wird das Heizen unterbrochen, sobald die eingestellte Zeit zum "Start der 1./2. Pelletsbefüllung" erreicht wird. Auch wenn noch 80% im Behälter sind.


    Diese beiden Probleme behebt mein Script. Zusätzlich zu p4d muss nur ein MQTT-Broker (z.B. mosquitto) und paho-mqtt installiert werden.


    Alles weitere findet ihr im github-Repository.

    Fragen/Anregungen immer gerne :)


    Vielen Dank an horchi , der mir bei Fragen zur Seite stand!


    Viele Grüße,

    David

    Hallo Andreas,


    das freut mich zu hören!
    Ich hatte gestern meinen Heizungsbauer aus anderen Gründen da und habe ihm die Funktionsweise des Scripts auch gleich mal vorgeführt.


    Er war allgemein sehr angetan von der Lösung, allerdings gab er mir einen Hinweis mit:
    Bei jeder Ansaugung kommt auch etwas Staub mit in den Tagesbehälter. Wird er auf 0% gefahren wird dieser Staub mitverbrannt.
    Füllt man vorher, sammelt sich der Staub.


    Ich habe deshalb das Script aktualisiert, sodass der Behälter alle x Tage komplett leer gefahren wird. Standardmäßig sind 10 Tage eingestellt.


    Viele Grüße,
    David

    Hallo Andreas,


    danke für die Logs.
    Ja, deine Probleme liegen daran, dass der Reset immer geschrieben wird. Das liegt daran dass ich die ResetTmp nicht richtig überschrieben habe. Das ist mit der neuen Version behoben.
    Ansonsten ist dein Behälter ja weit davon entfernt leer zu gehen :)


    Noch ein Tipp: Bei deinem prozentualen Pelletverbrauch pro Heizphase kannst du locker die Resets auf 0:00 Uhr stellen (dann wird nicht automatisch gesaugt) und die Mindestfüllmenge auf 25%. Damit dürfte dann bei dir nur noch jeden 2. Tag gefüllt werden. ;)


    Wenn der Bedarf besteht dass nachts nicht gesaugt wird kann ich mal schauen ob ich die nächsten Tage dazu komme dass man noch die späteste Zeit für Abends und die früheste für morgens festlegen kann.


    Viele Grüße, David