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

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

  • Tach,


    ich hab heute...mal wieder....den Raspi neu gemacht. Ich hol mir bald mal ne kleine SSD, die SD Karten rauchen bei mir alle 2 Jahre ab....egal....ich komme nicht weiter. Mein Anschluss an den Kessel ist ein serieller Port...Com1 sagte man früher. Ich hab im raspi-config den serial Port aktiviert und im Setup vom p4d als device /dev/ttyAMA0 eingetragen....so wars zumindest vor Buster. Leider bekomme ich trotzdem keine Daten vom Kessel. Ist aber auch lange her seit ich das letzte mal dran war :( Vielleicht hab ich ja was verkehrt gemacht?


    Ach und noch ne gaaaaanz wichtige Frage....Ich hab ein altes Tablet mit dem PV-Portal und dem P4 (wenns dann läuft) an der Wand. Ich würde gern die schematische Darrstellung automatisch aktualisieren lassen, so minütlich. Bei meiner letzten Installation hab ich die html Seite im Code bearbeitet....aber kannst du nicht nen auto-refresh timer einbauen? Finde die html Datei nicht, ein www Ordner gibts wohl nicht mehr bzw. der ist jetzt woanders?


    Damit man das als Anzeige laufen lassen kann ohne ständig aktualisieren drücken zu müssen? Wäre super.

  • Ranseyer hat wahrscheinlich das gleiche Problem mit Web Sockets, welches ich bereits hatte. Guck mal hier und folge der Anleitung von @horchi, um die aktuelle Version der Web Sockets zu intallieren.

    Danke das wars. Hatte den Post wohl übersehen !


    War zwar fast so weit hatte mir war aber unklar dass hinter dem cmake noch ".." erforderlich ist...



    (Das wäre auch super in der Doku...)

  • Gib auf dem Raspi mal folgenden Befehl ein:


    dmesg | grep 'base_baud'


    Das sollte Dir die verfügbaren seriellen Ports anzeigen. Bei mir kommt dann z.B. so eine Ausgabe:


    [ 1.661411] 00:06: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A


    Bei mir ist der serielle Port also /dev/ttyS0. In /var/log/syslog solltest Du dann beim Starten von p4d eine Erfolgsmeldung sehen, wenn der Port erfolgreich geöffnet werden konnte, z.B.:


    Dec 16 05:46:30 master p4d: Opening '/dev/ttyS0' succeeded!


    Welchen Browser nutzt Du auf dem Tablet? Bei mir auf dem Rechner wird die "Funktionsschema" Anzeige automatisch aktualisiert. Ich nutze Vivaldi.

  • et läuft....danke !!!


    Das Dashboard wird bei mir auch automatisch aktualisiert. vermutlich hat horchi das bereits eingebaut...hatte schonmal gefragt....hab dann aber den www Ordner nicht gefunden....naja, egal.


    An einem punkt scheitere ich aber dennoch:


    "Sensoren 'Dashboard': Komma getrennte Liste aus ID:Typ siehe 'Aufzeichnung'"



    Egal was ich hier eintrage, mein Dashboard zeigt nichts an. Lasse ich das Feld komplett leer ist das Dashboard komplett mit allen Sensoren. Ich würde aber gern mehr Sensoren aufzeichnen (fürs Chart), dann aber im Dashboard (welches einsame spitze ist, ich hätte früher updaten sollen) nur eine Auswahl anzeigen. Ich denke dafür ist dieses Deld gedacht. die Auswahl will mir nicht gelingen. Hab da schon ettliche Varianten der Senortypen eingetragen, welche ist denn die richtigste?

  • Ich kopiere Mal meine Einträge als Beispiel:


    VA:0x76,VA:0x77,VA:0x78,VA:0x04,VA:0x1bf,VA:0x15,VA:0x16

  • Im Setup unter dem Punkt "Aufzeichnung" findest Du die Adressen in der Spalte "ID:Typ". Der Trick ist, daß sie mindestens zweistellig in der Sensorenliste eingetragen sein müssen, sonst funktioniert es nicht.


    Wenn also z.B. unter Aufzeichnung bei Kesseltemperatur die ID "VA:0x0" steht, dann mußt Du in die Liste "VA:0x00" eintragen. Werte, die bereits zwei oder mehr Stellen haben, übernimmst Du direkt, z.B. "VA:0x15" für Vorlauf-Ist von Heizkreis 1. Die einzelnen Werte trennst Du durch Komma, wie Bernd es oben als Beispiel aufgeführt hat.

  • Den Kesselzustand kann ich in die Dashboard Konfiguration eintragen, allerdings wird er dann im Dashboard nur als Ein/Aus-Schalter angezeigt.



    Trage ich die Adresse der Betriebsart in die Dashboard Konfiguration ein, hat dies überhaupt keinen Effekt. Im Dashboard wird dafür weder ein leeres Feld angezeigt, noch sonst etwas. Ich hatte auch schon daran gedacht, die Anzeige direkt im Widget "Aktualisiert" unterzubringen. Dafür müßte ich aber verstehen, wie das programmiert ist. Ich vermute, daß die Änderung in der "dashboard.js" stattfinden müßte.

    So, heute habe ich mir mal meinen eigenen Wunsch erfüllt und die Anzeige des Heizungsstatus im Dashboard untergebracht.



    So kann man auch im Dashboard sehen, was der Kessel gerade treibt. Wer diese kleine Änderung nutzen möchte, kann seine /var/lib/p4/dashboard.js durch die angehängte Version ersetzen.

  • Sieht gut aus!


    eine Idee? Wenn ihr solche Anpassungen (auch die zum ChRt oben) als pull request bei git hub einstellt kann ich die einfach in den master Branch übernehmen

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

  • Sieht gut aus!


    eine Idee? Wenn ihr solche Anpassungen (auch die zum ChRt oben) als pull request bei git hub einstellt kann ich die einfach in den master Branch übernehmen

    Wenn ich das richtig sehe, kann ich einen Pull Request nur einstellen, wenn ich einen eigenen Branch für das Projekt auf GitHub habe und den habe ich nicht. Somit kann ich nur Deinen Master mit Deinem Master vergleichen, was logischerweise keinerlei Unterschiede ergibt. ;)
    Meine lokale Kopie des Repositories kann ich nur für Push Operationen nutzen, doch dafür fehlen mir die Zugriffsrechte, was völlig korrekt ist.

  • Tja, die Änderung am Dashboard funktioniert zwar prinzipiell, doch es gibt einen Fehler, den ich noch nicht lokalisieren konnte. Läßt man das Dashboard einfach offen, dann wird alles minütlich aktualisiert, außer dem Wert für den Heizungsmodus/-status. Ich habe mir ein Logging in die dashboard.js eingebaut, welche mir den Inhalt von "refreshTime" und "heatingstatus" bei jeder Aktualisierung ausgibt.
    "refreshTime" wird minütlich aktualisiert, "heatingstatus" hat immer den gleichen Wert und aktualisiert sich nicht. Lädt man die Seite neu, wird auch "heatingstatus" aktualisiert.


    Hier habe ich die Logfunktion eingebaut:

    Code
    function updateDashboard(sensors)
    {
    // console.log("updateDashboard");
    
    
    document.getElementById("refreshTime").innerHTML = "Aktualisiert: " + lastUpdate + "<br>" + "_________________";
    document.getElementById("heatingstatus").innerHTML = s3200State.modeinfo + "<br>" + s3200State.stateinfo;
    
    
    console.log(document.getElementById("refreshTime").innerHTML + " / " + document.getElementById("heatingstatus").innerHTML);

    Als Ausgabe in der Browserconsole steht dann z.B.:


    Aktualisiert: 15:32:52<br>_________________ / Automatik<br>Betriebsbereit


    Hat jemand eine Idee, wieso "heatingstatus" falsche Daten erhält? Wird "s3200State.stateinfo" vielleicht nicht regelmäßig aktualisiert?

  • Schade, es sieht so aus, als wenn der Inhalt des Objekts "s3200State" nur beim Neuladen der Seite über das Event "s3200-state" gesetzt wird. Ich habe keine Möglichkeit gefunden, den Inhalt von "s3200State" per Javascript auffrischen zu lassen. Er scheint nur beim Aufruf der Seite in der Funktion "performLogin" in "wsactions.c" gepusht zu werden und dann bleibt er auf dem festgesetzten Inhalt stehen.
    Das betrifft übrigens auch die Seite "Liste". Auch dort ändert sich der Status des Kessels nur über ein Neuladen der Seite. Das Schema ist nicht betroffen, da es direkt die Adressen ausliest.


    Ich bin kein Programmierer, also sind mir für den Moment die Ideen ausgegangen.

  • Hat sonst noch jemand die Version 0.5.20 vom p4d ausprobiert? Ich habe gerade von 0.5.18 nach 0.5.20 gewechselt. Meine Fresse, die Seiten brauchen ja jetzt ewig, bis sie aufgebaut sind. Die Charts bauen sich gar nicht auf. Was ist denn da passiert?


    @horchi
    Ich denke, ich habe verstanden, wie Du das mit den Pull Requests gemeint hast. Ich habe mir nun ein eigenes GitHub Konto erstellt und meinen eigenen Branch vom p4d erzeugt. Für diesen Branch könnte ich einen Pull Request erstellen. Nach der obigen Erfahrung mit der 0.5.20 möchte ich diese aber nicht verwenden. Wie bringe ich denn nun meine Änderungen der 0.5.18 in ein für Dich nutzbares Format?
    Ich habe übrigens auch das Problem mit den automatischen Updates für Daemon State und S3200 State gelöst (in p4d.c), sodaß das Dashboard und die Liste jetzt automatisch aktualisierte Daten anzeigen.


    Ich teste das ganze jetzt noch ein bißchen und würde die Änderungen wieder hier im Forum zur Verfügung stellen, wahrscheinlich als Gesamtpaket.

  • Hallo liebe p4d Nutzer. Weil morgen Weihnachten ist, habe ich ein kleines Geschenk für euch.


    Im Anhang findet ihr meine konsolidierten Updates für Version 0.5.18 des p4d. Die Verbesserungen sind im Detail:


    p4d (ACHTUNG! Diese Datei ist für ein x86_64 System kompiliert! Ich habe keinen Raspi.:(

    • Die Objekte für p4d Daemon Status und s3200 Status werden nun immer aktualisiert, wenn Sensordaten aktualisiert werden. Somit können diese Daten automatisch auf den "Dashboard" und "List" Seiten aktualisiert werden, ohne die Seite neuzuladen.


    htdocs (diese Dateien gehören nach /var/lib/p4):

    • chart.html erlaubt das Vor- und Zurückspringen um einen Monat
    • chart.js bietet ein paar mehr Farben für die Graphen und behebt Fehler bei der Datums-/Zeitanzeige
    • dashboard.js bietet jetzt die Anzeige von Uhrzeit, Modus und Status der Heizungssteuerung (automatisch aktualisiert)
    • list.js bietet jetzt die automatische Aktualisierung von Uhrzeit, Modus, Status und Icon der Heizungssteuerung, sowie die automatische Aktualisierung von P4D Daemon Status und CPU Last
    • main.js behebt die fehlerhafte Zeitanzeige in den Dashboard Graphen


    Die automatischen Aktualisierungen bei Dashboard und List funktionieren nur mit der neuen p4d. Vielleicht kann jemand sie für ein ARM System kompilieren und hier zur Verfügung stellen.


    Hier noch ein paar Bilder:



    Den Quellcode der verwendeten Version 0.5.18 des P4D (mit der geänderten "p4d.c") könnt ihr hier auf GitHub finden. Ihr könnt euch so eure eigene p4d kompilieren oder die im angehängten ZIP File verwenden.


    Ich habe auf GitHub auch die aktuelle Version 0.5.20 von @horchi als separaten Fork liegen, für die ich einen Pull Request erstellt habe. Diese sorgt aber wie oben erwähnt für einen extrem langsamen Seitenaufbau. Deshalb habe ich die Version 0.5.18 als separaten Branch eingestellt, weil sie bisher für mich am besten funktioniert.


    Probleme mit den geänderten Dateien konnte ich bisher nicht feststellen. Falls euch doch etwas auffällt, dann meldet es bitte hier.

  • super, Danke! Habe deinen pull Request übernommen und auch das fertige Install Package für Raspbian Buster bereit gestellt.
    Nicht wundern die Version ist noch die 0.5.20, hatte erst nach dem bauen und hochladen bemerkt das sie nicht hochgezählt ist.


    (Ich werde nur bei Gelegenheit Code der List-View bei init und update zusammenfassen um Redundanzen zu vermeiden.)

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

  • Weißt Du eigentlich, wieso die 0.5.20 so langsam läuft? Ein Beispiel - im Dashboard habe ich 20 Widgets. Wenn die Seite in 0.5.18 das erste Mal lädt, dauert es ca. 2s, bis die gesamte Seite mit allen Werten und Charts gefüllt ist. Ein Update aller Werte dauert ca. 1s.


    Mit 0.5.20 dauert es pro Widget 1-2 Sekunden, also rund 10 - 20 mal so lange. Das kann doch nicht gewollt sein.

  • Hallo,


    mir ist aufgefallen, dass unter
    Setup > Aufzeichnung
    die Anzeige von ID und Typ vertauscht ist.


    In der Spaltenüberschrift steht ID:Typ.
    Die Werte stehen aber dann als Typ:ID drin.


    Beispiel:
    ID:Typ
    VA:0x0


    VA ist der Typ und 0x0 ist die ID.


    In der alten p4-Version bis vor wenigen Monaten hat das noch gepasst.


    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!