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

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

  • Sicher bin ich nicht, habe gesehen, dass der systemd den p4d ziemlich früh startet und er in den 3 Sekunden bis die mysql läuft, zigmal restartet wird.Der dump hat halt den gleichen Zeitpunkt, da melde ich mich nochmal.
    Vielleicht wäre auch ein sleep im runp4d vor dem restart entschärfend.

    ja mal ein zwei Sekunden warten kann nicht schaden baue ich ein.
    Denke es ist jetzt schon entschärft da er sich auch ohne db nicht mehr beendet. Ob er bei dir crashed wäre noch interessant - das kann ich hier nicht reproduzieren auch nicht wenn ich die db runterfahre.
    Ich vermute bei dir ist nach dem booten der p4d schneller da als der mysqld (bei mir läuft das auf zwei unterschiedlichen Hosts).
    Du könntest im Init Skript oben in der Zeile

    Code
    # Required-Start:    hostname $local_fs $network $syslog

    noch mysql aufnehmen, das kann ich nicht im git machen sonst wartet er mit dem Start bei allen die den mysql Server nicht lokal auf dem selben Host laufen haben für immer ;)
    ob der Eintrag für "Required-Start" mysql, mysqld oder ähnlich heißt weiß ich nicht, ich habe kein Sys-V init mehr.

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

  • Eine Frage: Welche Verzeichnisse muss ich sichern um im Falle eines Kartendefekts einfach und schnell alle Daten und Einstellungen zurück zu bekommen?


    • Das ich die Datenbank mit sqldump sichern kann ist mir klar. Das ist also erledigt.
    • Dann noch das /etc/p4d/-Verzeichnis. Das ist auch klar.
    • Werden die Einstellungen die man im webif macht in /var/www/html gespeichert?

    Fehlt in den obigen Punkten noch was? Wird noch irgendwo etwas p4d-spezifisches abgelegt?



    Schöne Grüße
    Peter

  • Wenn ich den p4d manuell starte (alle anderen Dienste laufen dann schon ), gibt es keinen dump. Es muß also an den aborts und restarts liegen.

    kannst ja mal die Datenbank stoppen und den p4d mit "p4d -n -t" an der Konsole Starten und schauen was passiert. Poste dann bitte mal die Ausgabe

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

  • nein, außer dem von dir genannten gibt es nichts. Die Einstellungen aus dem WEB stehen auch in der Datenbank (Tabelle 'config')

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


  • kannst ja mal die Datenbank stoppen und den p4d mit "p4d -n -t" an der Konsole Starten und schauen was passiert. Poste dann bitte mal die Ausgabe

    Kein dump.

  • Wenn das ohne Fehlermeldung geht sollte es auch mit dem p4d klappen:


    echo "xxxxx" | iconv -f "ISO8859-1" -t "UTF-8"

    Zunächst mal: iconv musste ich installieren, das führte noch zur Installation vom Paket libcharset. Das Paket libiconv-full war bereits installiert (nur dass klar ist, dass es zum Zeitpunkt des make auch da war, falls das ein Fehler sein könnte; ich habe auch nochmal make clean, make, make install aufgerufen):

    Bash
    # opkg status libiconv-full
    Package: libiconv-full
    Version: 1.11.1-3
    Depends: libc, libssp, librt, libpthread
    Status: install ok installed
    Architecture: armv5soft
    Installed-Time: 1484687201 (entspricht 17.01.2017 - 22:06:41)


    Ich hab es dann so getestet: Ich habe mit Notepad++ eine Textdatei in ISO8859-1 geschrieben. Die Ausgabe der Datei in Putty hat daher einen falsch dargestellten Umlaut. Die Konvertierung mit iconv nach UTF-8 ist dann erfolgreich.

    Bash
    # cat libiconv.txt
    ▒bergangsbetrieb
    # cat libiconv.txt | iconv -t "UTF-8" -f "ISO8859-1"
    Übergangsbetrieb

    Dennoch funktioniert es nicht in p4d.


    Ich habe auch noch ein Minimal C Programm erstellt (sorry, ich kann zwar ein bisschen C und C++, aber eigentlich besser Java, deswegen sieht es vielleicht grauenhaft aus), das einmal hin- und herkonvertiert. Es müsste also grundsätzlich gehen:




    Output:



    Bash
    # ./a.out
    Ü
    Success!
    Success!
    Ü


    Weitere Ideen?


  • ist ja grundsätzlich der Code aus meiner Konvertierung in common.c. Wenn das geht muss es m.E. im p4d auch klappen. Den Fehler vom p4d bekommst du im syslog?


    Geht es wenn du den p4d mit "p4d -n -t" an der Konsole im selben Environment wie dein Test Prog laufen lässt?

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

  • Geht es wenn du den p4d mit "p4d -n -t" an der Konsole im selben Environment wie dein Test Prog laufen lässt?

    Genau so hab ich es probiert und sehe dort die Warnungen.


    Ich bin bereits ein paar Schritte weiter. Ich konnte durch ein paar weitere Debug-Zeilen den Fehler auf iconv_open eingrenzen und dort kommt als Fehler EINVAL zurück. Ferner konnte ich herausfinden, dass es an der Art und Weise der Kompilierung liegt. Mit dem make von p4d werden u.a. (über mysql_config) die Optionen -Wl,-rpath,/opt/lib -Wl,--dynamic-linker=/opt/lib/ld-linux.so.3 ergänzt. Diese sind aber laut https://github.com/Entware-ng/…g-gcc-(native-compilation) auch notwendig (und ich hab es ohne diese probiert, dann geht das Kompilieren nicht). Wenn ich mit diesen Switches mein Mini-Programm kompiliere geht es auch nicht mehr.


    ldd sagt:

    Bash
    ldd ./a.out
            libstdc++.so.6 => /opt/lib/libstdc++.so.6 (0xb6da3000)
            libm.so.6 => /opt/lib/libm.so.6 (0xb6cef000)
            libgcc_s.so.1 => /opt/lib/libgcc_s.so.1 (0xb6cd4000)
            libc.so.6 => /opt/lib/libc.so.6 (0xb6b90000)
            /opt/lib/ld-linux.so.3 (0xb6f0c000)


    Er nutzt also die iconv Implementierung in libc (wenn ich richtig recherchiert habe hat libc eine iconv Implementierung). Die macht also offenbar ein Problem. Hat jemand eine Idee, wie man das herausfinden kann oder wie man es löst?


    Es gibt auch ein Package libiconv bei Entware-ng, das ich installiert habe. Vielleicht ist das die Lösung. Das Problem ist nur, ich weiß nicht, wie ich dem Compiler mitteilen kann, dass er dieses nutzen soll. Anderes Header File? Wo bekomme ich das her (auf https://github.com/Entware-ng/…g-gcc-(native-compilation) ist ein Link to header Dateien die ich nutzen "muss"). Oder eine Compiler/Linker Switch?


    Das Kommandozeilentool iconv nutzt libiconv, aber wie das zustande kam weiß ich nicht:

    Bash
    ldd /opt/bin/iconv
            libiconv.so.2 => /opt/lib/libiconv.so.2 (0xb6e22000)
            libc.so.6 => /opt/lib/libc.so.6 (0xb6cde000)
            /opt/lib/ld-linux.so.3 (0xb6f3a000)


    Wird man da vielleicht aus dem Entware Package von libiconv schlauer? Ich erkenne das nicht: https://github.com/Entware-ng/…294/package/libs/libiconv

  • versuch mal beim linken -L /opt/lib/ -liconv anzugeben. beim compilieren mit -I den Pfad zum 'richtigen' iconv header


    besser wäre wenn es automatisch geht, das könntest du ggf. erreichen wenn es nicht unter opt sondern /usr/local/lib bzw. /usr/local/include installiert ist.


    Hast du auch zwei iconv Header oder nur die zusätzliche lib? Den Lib Suchpfad für den linker (und den Laufzeit-Loader) in /etc/ld.so.conf erweitern, danach ldconfig aufrufen, ggf mit -v dann siehst du was er macht

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

  • versuch mal beim linken -L /opt/lib/ -liconv anzugeben. beim compilieren mit -I den Pfad zum 'richtigen' iconv header


    besser wäre wenn es automatisch geht, das könntest du ggf. erreichen wenn es nicht unter opt sondern /usr/local/lib bzw. /usr/local/include installiert ist.


    Hast du auch zwei iconv Header oder nur die zusätzliche lib? Den Lib Suchpfad für den linker (und den Laufzeit-Loader) in /etc/ld.so.conf erweitern, danach ldconfig aufrufen, ggf mit -v dann siehst du was er macht

    Ich hab Deinen Kommentar eben erst gelesen, bin aber währenddessen selbst auf die Lösung gekommen, die Deinen Anmerkungen weitestgehend ähnelt:


    Zunächst hatte ich eine Anfrage (https://github.com/Entware-ng/…32#issuecomment-275947129) in dem Projekt gestellt, aber erfolglos, da sie sagten, dass die native Kompilierung nicht wirklich supported ist.
    Aber dennoch fand ich dann die Lösung: Das wesentliche Problem war wirklich das Thema Header für iconv. Ich vertraute da voll den mitgelieferten Headern. Als ich dann den Header in den Quellen der libiconv verwendete (https://github.com/Entware-ng/…iconv/src/include/iconv.h) und damit den "mitgelieferten" iconv Header ersetzte (ich wählte also 2a aus meiner Antwort auf https://github.com/Entware-ng/…32#issuecomment-275947129), zusätzlich noch -liconv als Compiler Switch ergänzte, funktionierte es.


    Fazit: Ich muss nur eine Ergänzung am Makefile machen und schon funktioniert auch die Charset-Konvertierung auf meiner QNAP TS-219 II !!! Dafür hab ich nun ziemlich lang gebraucht, aber besser spät als nie. Vielen Dank für Deinen/Euren Support.

  • Hallo,


    mir kam heute eine Idee. Die Uhrzeit des Kessels wird jeden Tag um 23:00 synchronisiert. Wenn du das auf 3:00 morgens ändern würdest dann könnte man damit die Sommerzeitumstellung recht gut bewerstelligen.


    Schöne Grüße
    Peter

  • Hallo Jörg,


    bin seit heute ebenfalls Benutzer der p4d. Erstmal: Spitze! Alles rund um die Heizung, hat man schön auf seiner Webseite. Tolle Leistung.


    Ich hätte nur eine Frage, und zwar wäre es mögliche die Automatische Anzündung einzustellen? Ein/Aus ist ja möglich, aber leider kann man die Zeit und das Datum nicht einstellen.


    Wäre dies irgendwie möglich?


    Lg

  • Hallo zuammen,


    da ich an meinem P4 einen recht kleinen Pelletbunker (3to) habe, muss ich an den kalten Tagen den Pelletstand im Bunker immer im Auge behalten, dass ich nicht auf einmal kalt sitze.
    Hab mir zwar schon im Bunker Markierungen an die Wand gemalt, aber wenn ich da rein gucke, sehe ich danach immer aus wie Sau.
    Meine Pellets werden per Saugsonde an den Kessel transportiert.
    Meine Idee: Anhand der Saugzeit die Saugleistung pro Minute errechnen. So kann ich in etwa ausrechnen, wie viele Pellets noch im Bunker sind.
    Die Saugzeit wird momentan noch in ganzen Stunden gezählt. Ist es irgendwie möglich, die Zählzeit auf Minuten umzustellen?
    Hat einer von euch Vergleichswerte, wie viele Pellets in der Minute gezogen werden?
    Ich komm auf ca. 15kg/Min.


    Hab noch ein Problem:
    Will auf meinem neuen Raspi die Software neu einspielen.
    Bin nach der Anleitung von Seite 26 vorgegangen und habe zusätzlich die Schritte der Readme Datei (github) vom Punkt "Installation p4d Application" manuell ausgeführt.
    Die config. Datei auf USB0 angepasst.
    Wenn ich nun die IP Adresse ohne Zusatz im Browser eingebe kommt die "It works" Seite. Apache scheint wohl zu laufen.
    Aber die index.php lässt sich nicht aufrufen, obwohl die Datei im Pfad var/www vorhanden ist.
    Kann es sein, dass bei der neueren Apache Version das Root verzeichnis nicht mehr var/www ist, sondern var/www/html ?
    Kann man das irgendwie umstellen?
    Hat einer nen Tip?


    Gruß
    Scal


  • Kann es sein, dass bei der neueren Apache Version das Root verzeichnis nicht mehr var/www ist, sondern var/www/html ?
    Kann man das irgendwie umstellen?

    Hast du die Dateien unter /var/www liegen oder unter /var/www/html?
    Ich und einige andere mussten auch alles nach /var/www/html verschieben damit es funktioniert hat.

Jetzt mitmachen!

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