Fröling: [ANNOUNCE] p4d - Visualisierung und Einstellung der S-3200 via COM1

Es gibt 4.961 Antworten in diesem Thema, welches 1.501.508 mal aufgerufen wurde. Der letzte Beitrag () ist von ranseyer.

  • ich kann mir das bei Gelegenheit mal ansehen, oder hat jemand einen fertigen patch für mich?
    Für mich ist das nicht so kritisch da ich den MQTT Brocker so aufgesetzt habe das er nur erreichbar ist wenn man es in mein netzt geschafft hat und dann ist das ohnehin kein Thema mehr da dann vieles offen steht.

    Seit Oktober 2009:
    Fröling P4 mit 1000l Pufferspeicher

  • Ein Patch dazu wäre über meinem Level.


    Allerdings bin ich am umbauen, da ich durchaus aus "den Feind aus den eigenen Reihen" sehe...
    (Umso mehr [Leute / ] Geräte im LAN sind um so wahrscheinlicher, dass diese (un)absichtlich etwas böses tun...)


    PS: Meinen MQTT Broker erreichst du auch nur lokal und dass du meine Garage dazu aufbrichst würde ich nicht vermuten :-). Aber bei einer gewissen Menge an Geräten im Netz, ...)

  • das hier:

    Code
    2021-01-13:  version 0.6.12
    - change: Improved handling of state durations
    - change: Display progress dialog on load of all pages
    - change: Log rotate now zip fist backup
    - change: Display 'min' durations > 60 as HH:MM
    - change: Minor code cleanup
    - added:  MQTT command interface to set parameters

    gibt es jetzt als Package und im git.


    @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

    Seit Oktober 2009:
    Fröling P4 mit 1000l Pufferspeicher

  • Hallo an alle, vor allem hallo Jörg.
    Lese schon länger mit und habe jetzt entschieden mir einen Pi zu bestellen und das Ganze mal auszuprobieren!


    Habe nur eine Frage, passenderweise zum Setzen der Parameter:
    Ist es möglich die manuelle Befüllung des Pelletbehälters zu triggern?
    Mein Kessel springt nämlich in letzter Zeit immer bei unter 10% Füllstand an (zum Teil auch bei 0%..) und heizt dann für ein paar Minuten bis er wieder aus geht...


    Vielen Dank schon mal und riesen Respekt vor der Arbeit die da drin steckt, sowie den Support!!

  • Mein Kessel springt nämlich in letzter Zeit immer bei unter 10% Füllstand an (zum Teil auch bei 0%..) und heizt dann für ein paar Minuten bis er wieder aus geht...

    das Problem habe ich auch, ist vom Hersteller schon perfekt durchdacht gerade weil das anheizen ja den Heißluftfön quält und eine Menge Strom braucht.
    Ich kenne keine Möglichkeit das über die COM1 zu triggern, ggf den richtigen Ausgang setzen, was aber m.E. nicht unkritisch ist.

    Seit Oktober 2009:
    Fröling P4 mit 1000l Pufferspeicher

  • Mein Kessel springt nämlich in letzter Zeit immer bei unter 10% Füllstand an (zum Teil auch bei 0%..) und heizt dann für ein paar Minuten bis er wieder aus geht...

    Das Problem haben auch schon andere versucht zu lösen. Wenn bei Dir der Lärmpegel des Saugers keine Rolle spielt, könntest Du die Austragungszeiten deaktivieren und den Behälter nach jeder Pufferladung nachfüllen lassen.

  • Ich kenne keine Möglichkeit das über die COM1 zu triggern, ggf den richtigen Ausgang setzen, was aber m.E. nicht unkritisch ist.

    Hm, das ist schade. Was meinst du mit Ausgang setzen? Kann man mit deinem Tool beliebige Digitale Ausgänge schalten?


    Dann würde ich mich mal ran wagen.
    Wie ich mitbekommen hab kann man ja den Betriebsmodus wechseln, dann könnte man ja theoretisch einfach abfragen ob der Kessel heizt, wenn nicht und der Füllstand unter x% ist den Betriebsmodus auf „Aus“, den entsprechenden Ausgang setzen, warten bis voll, Ausgang wieder zurücksetzen, Betriebsmodus auf „Ein“, fertig.


    Allerdings müsste man dann testen ob man mitbekommt wann der Pelletbehälter voll ist, sonst wäre es natürlich doof..


    Edit: Was mir grade noch kommt:
    Kann man den Parameter zur 1./2. Befüllzeit anpassen? Dann könnte man immer beim Übergang zu Betriebsbereit den Füllstand checken und dann die Befüllzeit entsprechend auf 20 Minuten in der Zukunft setzen.


    Den Behälter jedesmal nach der Pufferladung füllen zu lassen würde bei mir theoretisch funktionieren, aber das finde ich übertrieben. Brauche pro Ladung nur etwa 30%. Könnte ich zur Not aber machen, da hast du recht pellet-heizer.

  • Wenn Du einigermaßen konstante Heizzeiten hast, dann könntest Du die Austragungszeiten dazwischenlegen. Die Steuerung aktiviert die Austragung bis zu 30min vor dem eingestellten Zeitpunkt. Ich habe bei mir im Moment die Austragung auf 10 Uhr (zwischen 1. und 2. Heizlauf) und 20 Uhr (nach 3. Heizlauf) gelegt. Üblicherweise erfolgt die Austragung um 9:30 Uhr und 19:30 Uhr, außer der Kessel ist mit dem vorigen Heizlauf noch nicht fertig.


    Vom Ablauf sieht das im p4d dann z.B. so aus:



    Bei mir klappt das, bei anderen funktioniert diese Methode nicht, besonders wenn sie durchheizen und sich dadurch die Heizzeiten ständig verschieben.


    Über p4d kann man die Austragungszeiten anpassen (Service -> Austragung -> Zeiten).

  • @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.

  • 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 Habe es mir deine Versuche jetzt im Detail angesehen (gestern nur kurz am Handy)


    Diese hier:

    Code
    { "command" : "parstore", "address" : "0x58", "value" : 43 } to topic mqtt2p4d/command (QoS 0, Retained: false)
    { "command" : "parstore", "address" : "0x58", "value" : "43" } to topic mqtt2p4d/command (QoS 0, Retained: false)

    hängen daran das der p4d die Adresse also JSON Number erwartet


    diese:

    Code
    { "command" : "parstore", "address" : 0x58, "value" : 43 } to topic mqtt2p4d/command (QoS 0, Retained: false)

    daran das value als JSON String erwartet wird.


    Hier:

    Code
    { "command" : "parstore", "address" : 0x58, "value" : "43" } to topic mqtt2p4d/command (QoS 0, Retained: false)

    stimmen die Datentypen nur das JSON Number kein HEX unterstützt siehe auch https://riptutorial.com/de/jso…le/9864/json-syntaxregeln


    Das der p4d den Werte (value) als String erwartet ist den unterschiedlichen parameter Typen der Heizung geschuldet. Mit Number könnte man kein Boolean, keine Zeit und auch keine Zeitspanne abbilden. Ich könnte es so erweitern das der p4d je nach Parameter das value in unterschiedlichen Typen (JSON: Number, Boolean, String) erwartet.
    Macht es etwas aufwändiger wäre aber auch kein Problem. Auch die Adresse könnte man wahlweise in Dezimal oder Hexadezimal angeben wenn ich es auf JSON String umstelle. Das hebelt man nur die JSON Typprüfung aus da ein String auch z.B. 'foobar' enthalten darf.


    Was denkst du/ihr was der bessere Weg ist?


    Grüße
    Jörg

    Seit Oktober 2009:
    Fröling P4 mit 1000l Pufferspeicher

  • 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

  • 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?

    Seit Oktober 2009:
    Fröling P4 mit 1000l Pufferspeicher

  • 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

  • sudo systemctl status p4d.

    ja dieses log jedoch liefert dieses Kommando nur einen kleinen Ausschnitt.


    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.


    zum Beispiel kommt bei:

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

    das hier wegen des falschen Datenformates:

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


    bei dieser Message hingegen:

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


    kommt das:

    Code
    Jan 17 09:08:54 raspberrypi p4d: <- (mqtt2p4d/command) [{ "command" : "parstore", "address" : 0, "value" : "5" }]
    Jan 17 09:08:54 raspberrypi p4d: Perform MQTT command 'parstore' for address 0 with value '5'
    Jan 17 09:08:54 raspberrypi p4d: Storing value '5' for parameter at address 0x0
    Jan 17 09:08:54 raspberrypi p4d: Stored parameter


    Das hat also geklappt.


    Grüße Jörg

    Seit Oktober 2009:
    Fröling P4 mit 1000l Pufferspeicher

  • Hallo,


    Frage zur Funktion p4 getp


    p4 getp -a 0x003c zeigt den Wert des Parameters "Start der 1. Pelletsbefüllung" an.


    Ergebnis ist 720.
    720 entspricht Minuten am Tag
    720 / 60 = 12 = 12:00 Uhr


    Wie kann man in einem bash-Skript den Wert "720" in eine Variable schreiben lassen?



    Gruß
    meute

    Fröling Pelletskessel PE1 25 kW, Fröling Hygiene-Solarschichtspeicher H3 850, 4x Buderus Flachkollektor SKN4.0-w


    fraenk for friends Code: MATF103

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!