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

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

  • das passiert hier in der detail.php:

    Code
    $query = "select"      . "   unix_timestamp(min(time)) as time,"      . "   avg(value) as value"      . " from samples where address = " . $address      . "   and type = '" . $type . "'"      . "   and time > from_unixtime(" . $from . ") and time < from_unixtime(" . $to . ")"      . " group by"      . "   date(time), ((60/" . $groupMinutes . ") * hour(time) + floor(minute(time)/" . $groupMinutes . "))"      . " order by time";
       syslog(LOG_DEBUG, "p4: $query");
       $result = $mysqli->query($query)      or die("Error: " . $mysqli->error . ", query: [" . $query . "]");
       syslog(LOG_DEBUG, "p4: " . $result->num_rows . " for $title ($address) $name");
       $lastLabel = "";
       while ($row = $result->fetch_assoc())   {      $time = $row['time'];      $value = $row['value'];
          // store the sensor value
          $series[$title][] = $value;
          // need only one time scale -> create only for the first sensor


    da werden die Werte sortiert nach dem Zeitpunkt aus der Tabelle gelesen, was da fehlt ist das berücksichtigen etwaiger Datenlücken indem diese z.B durch die richtige Anzahl an 0-Werten ergänzt werden.
    Ggf. kann hier einenr der PHP Spezialisten unter euch helfen, ich übernehme den Patch dann gern ins git. Selbst komme ich im Moment leider nicht dazu es mir genauer anzuschauen bin gerade ziemlich land unter ...


    LG Jörg

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

  • Ich kann keine Tabellenwerte exportieren, MariaDB meldet nach


    SQL
    SELECT time, 
           value
    FROM   samples
    INTO OUTFILE '/home/pi/tmp/temp.txt';

    ERROR 1045 (28000): Access denied for user 'p4'@'localhost' (using password: YES)



    Bin als root angemeldet,
    ls -ldh /home/pi/tmp/
    drwxr-xr-x 2 root root 4,0K Mär 26 08:40 /home/pi/tmp/


    Kann mir bitte jemand helfen?

    S4 Turbo 22kW
    800l Hygienespeicher, 2x1000l Puffer

    Einmal editiert, zuletzt von klossheimer () aus folgendem Grund: vereinfacht

  • leider später geworden,
    aus dem Readme:

    Code
    SHOW GRANTS FOR 'p4'@'%';
    +---------------------------------------------------------------------------------------------------+
    | Grants for p4@%                                                                                   |
    +---------------------------------------------------------------------------------------------------+
    | GRANT USAGE ON *.* TO 'p4'@'%' IDENTIFIED BY PASSWORD '*9A6091F31A878A194D2A2AAAEBBBBE896A36CA70' |
    | GRANT ALL PRIVILEGES ON `p4`.* TO 'p4'@'%'                                                        |
    +---------------------------------------------------------------------------------------------------+

    S4 Turbo 22kW
    800l Hygienespeicher, 2x1000l Puffer

    Einmal editiert, zuletzt von klossheimer ()

  • die Rechte stimmen, sind bei mir identisch, aber ich sehe grade du bekommst keinen Zugriffsfehler auf die Tabelle oder Datenbank mehr sondern jetzt auf dein lokales Filesystem!


    Can't create/write to file '/home/pi/tmp/temp.txt'


    also entweder woanders hinschreiben oder dem Unix User mit dem du das machst Rechte an diesem Ordner geben sollte helfen

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

  • Weiss jemand grad die Bytesequenz um den Kessel einzuschalten? Sind im Urlaub und es hat daheim überraschend geschneit - wäre schön ein warmes Haus zu haben wenn wir zurückkommen :)

  • Vielen Dank für diese tolle Software! Das läuft bei mir seit ca. 2 Jahren und bereichert die Heizung ungemein. Da sich bei uns noch einige ESP8266 durch MQTT mit Home Assistant unterhalten (Gewächshaus, Lichter, uvm.) hab ich nun das neue Update installiert. Leider erscheinen die Werte aber noch nicht als Entität im HA. Im Git steht dass im HA eigentlich nichts mehr gemacht werden muss. Ich glaube aber dass bei mir noch irgendetwas fehlt…


    Die Mosquitto config sollte auch richtig sein da die ESP8266 problemlos alle Werte übertragen. Anonyme Verbindung ist auf true. Wenn ich mit MQTT.fx die Topics scanne erscheint der P4D-Publisher nicht. Im Logfile von HA aber schon. Mehrmals alles neugestartet und Mosquitto auch mal neuinstalliert.
    In der configuration.yaml habe ich nichts von von mqtt eingefügt. Sollte da evtl. noch etwas rein?


    Hat irgendwer einen entscheidenden Tipp für mich? :)


    Mosquitto log:
    1558051950: New connection from 192.168.0.113 on port 1883.
    1558051951: New client connected from 192.168.0.113 as p4d_publisher (c1, k20).
    1558051951: New connection from 192.168.0.113 on port 1883.
    1558051951: New client connected from 192.168.0.113 as p4d_subscriber (c1, k20).
    1558052560: Saving in-memory database to /data/mosquitto.db.

  • gibt es beim Start des p4d Meldungen mit MQTT im log?


    Code
    May 17 06:38:29 p4d p4d: MQTT: Connecting publisher to 'tcp://gate:1883' succeeded
    May 17 06:38:29 p4d p4d: MQTT: Connecting subscriber to 'tcp://gate:1883' succeeded

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

  • Die Verbindung scheint zu klappen aber danach werden die Sensoren nicht gefunden:


    May 18 05:01:48 raspberrypi p4d: MQTT: Connecting publisher to 'tcp://192.168.0.130:1883' succeeded
    May 18 05:01:48 raspberrypi p4d: MQTT: Connecting subscriber to 'tcp://192.168.0.130:1883' succeeded
    May 18 05:01:49 raspberrypi p4d: Info: Sensor 'Status' not found at home assistants MQTT, sendig config message
    May 18 05:01:49 raspberrypi p4d: -> (homeassistant/sensor/Status/config)[{"unit_of_measurement" : "","value_template" : "{{ value_json.value }}","state_topic" : "p4d2mqtt/sensor/Status/state","name" : "zst","unique_id" : "Status_p4d2mqtt"}]
    May 18 05:01:49 raspberrypi p4d: -> (p4d2mqtt/sensor/Status/state)[{ "value" : "Betriebsbereit" }]
    May 18 05:01:49 raspberrypi p4d: Info: Sensor 'Betriebsmodus' not found at home assistants MQTT, sendig config message
    May 18 05:01:49 raspberrypi p4d: -> (homeassistant/sensor/Betriebsmodus/config)[{"unit_of_measurement" : "","value_template" : "{{ value_json.value }}","state_topic" : "p4d2mqtt/sensor/Betriebsmodus/state","name" : "Betriebsmodus","unique_id" : "Betriebsmodus_p4d2mqtt"}]
    May 18 05:01:49 raspberrypi p4d: -> (p4d2mqtt/sensor/Betriebsmodus/state)[{ "value" : "Automatik" }]



    Ich habe versucht die Sensoren in der Configuration.yaml zu definieren aber das ändert nichts. Die Logs von HA sind alle sauber...

  • so wie das ausschaut schreibt der p4d alles problemlos zu MQTT, incl. der config Messages.
    Auf HA Seite wird dieser MQTT Broker auch verwendet?


    so was hast du in der configuration.yaml?

    Code
    mqtt:
      broker: 192.168.200.101
      discovery: true

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

  • Ich habe HA mit Mosquitto noch einmal neu installiert und jetzt geht’s, allerdings nur wenn ich wie folgt vorgehe:
    (Hass.IO; Home Assistant 0.93.2; Mosquitto broker 4.2)
    Configuration.yaml: Nichts von MQTT reinschreiben.


    Mosquitto Broker config:

    In /share/mosquitto/accesscontrollist (wird ab Mosquitto 4.1. benötigt) hinzufügen:


    Code
    user p4d_subscriber
    topic #
    user p4d_publisher
    topic #
    user homeassistant
    topic #

    Dann sollten die Einträge in HA auftauchen. Wenn nicht, in /config/.storage/core.config_entries prüfen ob discovery: true steht.
    Der Subscriber verursacht Connection Errors und die Werte updaten sich nicht. Da aber die Entities nun vorhanden sind, reicht der Publisher. Also in in /share/mosquitto/accesscontrollist den subscriber wieder auskommentieren:


    Code
    #user p4d_subscriber
    topic #
    user p4d_publisher
    topic #
    user homeassistant
    topic #

    Keine Ahnung ob irgendwas unnötig oder falsch ist aber es läuft :)
    Vielen Dank nochmal!

  • Hallo,


    ich scheitere leider bei der Installation. Ich denke es ist eine Inkompatibilität zwischen MySQL/MariaDB.


    Bin dem Readme soweit gefolgt (auf Raspbian Buster Lite) und bekomme nun beim make:


    sudo make clean all
    rm -f */*.o *.o core* *~ */*~ lib/t *.jpg
    rm -f p4d dbchart p4 p4d-0.2.335.tgz
    rm -f com2
    make: mysql_config: Kommando nicht gefunden
    g++ -c -ggdb -O0 -fPIC -Wreturn-type -Wall -Wno-parentheses -Wformat -pedantic -Wunused-variable -Wunused-label -Wunused-value -Wunused-function -Wno-long-long -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/libxml2 -D_GNU_SOURCE -DTARGET='"p4d"' -DLOG_PREFIX='""' -DPLGDIR='""' -DUSEUUID -DUSEMD5 -DUSELIBXML -DUSELIBARCHIVE -DUSEJSON -DUSEGUNZIP -D_GNU_SOURCE -DTARGET='"p4d"' -DDEAMON=P4d -DUSEMD5 -DGIT_REV='"ec50da3"' -o lib/db.o lib/db.c
    lib/db.c:9:10: fatal error: errmsg.h: Datei oder Verzeichnis nicht gefunden
    #include <errmsg.h>
    ^~~~~~~~~~
    compilation terminated.
    make: *** [Make.config:53: lib/db.o] Fehler 1


    Wenige Beiträge zuvor hatte schon jemand das Problem und es wurde verwiesen, dass anstatt libmysqlclient-dev bei MariaDB libmariadbclient-dev installiert sein soll.
    Ist es allerdings:


    sudo apt install libmariadbclient-dev
    Paketlisten werden gelesen... Fertig
    Abhängigkeitsbaum wird aufgebaut.
    Statusinformationen werden eingelesen.... Fertig
    libmariadbclient-dev ist schon die neueste Version (1:10.3.17-0+deb10u1).



    Ich hoffe mir kann jemand helfen, im Gegenzug kann ich nach Erfolg mein mitgeschriebenes "Dillo-Install Log" zu Verfügung stellen...es scheitert scheinbar bei vielen an dem nötigen Basiswissen (weit außerhalb von P4D) für die Installation.


    Herzlichen Dank und schönen Gruß,
    Richie

  • Für Buster habe ich gebraucht:
    apt install libmariadb-dev
    apt install libmariadb-dev-compat
    in /usr/lib/arm-linux-gnueabihf: ln -s libmariadb.so.3 libmariadbclient.so.18
    ssmtp gibt es nicht mehr:
    apt install msmtp msmtp-mta
    und den Mailer neu konfigurieren


    Edit:
    Nach kompletter Neukompilierung ist "ln -s libmariadb.so.3 libmariadbclient.so.18"
    nicht mehr nötig.
    In die CFLAGS in Make.config muß -pthread.
    In lib/db.c
    habe ich CR_INVALID_CONN_HANDLE durch CR_INVALID_BUFFER_USE
    und CR_CONN_UNKNOW_PROTOKOLL durch CR_CONN_UNKNOWN_PROTOKOLL ersetzt.


    Und der Mailer braucht einen vollständigen Pfad.


  • Hai,


    Danke vielmals für die Hilfe. Das hat geklappt.


    Derzeit bin ich noch ohne Verbindung zum Kessel unterwegs...der Apache läuft, die Default Seite sehe ich. Jedoch gibt es keinerlei P4 Inhalte in /var/www außer dem index.html.
    Wie erzähl ich dem Apache nun, wo die Inhalte sind? myip/main.php bringt natürlich ein "not found"


    pi@rpip4d:/etc/p4d $ cd /usr/src/linux-p4d/
    pi@rpip4d:/usr/src/linux-p4d $ sudo make install-web
    if ! test -d /var/lib/p4; then \
    mkdir -p "/var/lib/p4"; \
    chmod a+rx /var/lib/p4; \
    fi
    if test -f "/var/lib/p4/stylesheet.css"; then \
    cp -Pp "/var/lib/p4/stylesheet.css" "/var/lib/p4/stylesheet.css.save"; \
    fi
    if test -f "/var/lib/p4/config.php"; then \
    cp -p "/var/lib/p4/config.php" "/var/lib/p4/config.php.save"; \
    fi
    cp -r ./htdocs/* /var/lib/p4/
    if test -f "/var/lib/p4/config.php.save"; then \
    cp -p "/var/lib/p4/config.php" "/var/lib/p4/config.php.dist"; \
    cp -p "/var/lib/p4/config.php.save" "/var/lib/p4/config.php"; \
    fi
    if test -f "/var/lib/p4/stylesheet.css.save"; then \
    cp -Pp "/var/lib/p4/stylesheet.css.save" "/var/lib/p4/stylesheet.css"; \
    fi
    cat ./htdocs/header.php | sed s:"<VERSION>":"0.2.335":g > /var/lib/p4/header.php; \
    chmod -R a+r /var/lib/p4; \
    chown -R www-data:www-data /var/lib/p4
    pi@rpip4d:/usr/src/linux-p4d $ sudo make install-pcharts
    if ! test -d /var/lib/pChart2.0; then \
    git clone https://github.com/bozhinov/pChart2.0-for-PHP7.git /var/lib/pChart2.0; \
    cd /var/lib/pChart2.0; \
    git checkout 7.x-compatible; \
    ln -s /var/lib/pChart2.0 /var/lib/p4/pChart; \
    chown -R www-data:www-data /var/lib/pChart2.0; \
    fi
    Klone nach '/var/lib/pChart2.0' ...
    remote: Enumerating objects: 147, done.
    remote: Counting objects: 100% (147/147), done.
    remote: Compressing objects: 100% (108/108), done.
    remote: Total 4348 (delta 103), reused 75 (delta 39), pack-reused 4201
    Empfange Objekte: 100% (4348/4348), 7.72 MiB | 946.00 KiB/s, Fertig.
    Löse Unterschiede auf: 100% (3445/3445), Fertig.
    Branch '7.x-compatible' folgt nun Remote-Branch '7.x-compatible' von 'origin'.
    Zu neuem Branch '7.x-compatible' gewechselt
    pi@rpip4d:/usr/src/linux-p4d $ sudo make install-apache-conf
    install --mode=644 -D apache2/p4.conf /etc/apache2/conf-available/
    rm -f /etc/apache2/conf-enabled/p4.conf
    ln -s /etc/apache2/conf-available/p4.conf /etc/apache2/conf-enabled/p4.conf



    DB hat auch noch Schmerzen:
    Sep 30 06:42:32 rpip4d p4d: Try conneting to database
    Sep 30 06:42:32 rpip4d p4d: Checking database connection ...
    Sep 30 06:42:32 rpip4d p4d: Calling mysql_init(16168)
    Sep 30 06:42:32 rpip4d p4d: SQL-Error in 'connecting to database' - Access denied for user 'p4'@'localhost' (using password: YES) (1045)
    Sep 30 06:42:32 rpip4d p4d: Fatal, lost connection to mysql server, aborting pending actions
    Sep 30 06:42:32 rpip4d p4d: Error, connecting to database at 'localhost' on port (3306) failed
    Sep 30 06:42:32 rpip4d p4d: Closing mysql connection and calling mysql_thread_end(16168)
    Sep 30 06:42:32 rpip4d p4d: Error: Initial database connect failed
    Sep 30 06:42:32 rpip4d p4d: Retrying in 10 seconds


    DbPass in /etc/p4d/p4d.conf hab ich aktualisiert.



    Vielen Dank und scheen Dog,
    Richie

Jetzt mitmachen!

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