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

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

  • fein das es bei euch läuft :)!!


    Zitat

    horchi sein script installiert


    nur um Missverständnissen vorzubeugen, Skript ist keines von mir, nur das Zeug im git, also der p4d und das PHP ;)

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

  • Hier Preview:


    http://akdy.dyndns.org


    Achtung, langsames Bauern-DSL und bitte nicht alle auf einmal.
    Der BBB wäre eigentlich schnell genug, im LAN sieht man, wie schnell die Charts aufgebaut werden.


    horchi: Habe die Puffersensoren wie der bashy am One-Wire (ASCII-Datei, s. o.). Könntest Du dem p4d lernen, die einzulesen? Möchte noch ein Thermoelement im Brennraum über den SPI-Bus des BBB einlesen. Dessen Wert steht dann auch in einer ASCII-Datei.


    Magst Du ein ASCII-Dateiformat zum Einlesen spezifizieren, wo dann Sensorname/Wert o.ä. drinsteht?


    Servus
    --
    Markus

  • sieht prima aus bei dir.


    Untersützung für die One-Wire Sensoren kommt, hab mir schon welche bestellt ;)


    Gibt schon eine weitere Anfrage für externe Sensoren im ASCII Format von Philipp, ich möchte nicht zu viele Sonderlocken einbauen. Ich lasse mir zusätzlich zu den One-Wire noch EIN weiteres generisches Interface einfallen, entweder über ASCII von einer Seriellen Schnittstelle oder vermutlich besser da noch allgemeiner einsetzbar via Filesystem


    BTW: für die vordefinierten Charts hast du noch wenige Sensoren aktiv ;)


    Grüße Jörg

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


  • Jörg, für die Charts braucht's die Nummern. Steht zwar "s. Aufzeichnung", dort sind aber nur Namen und Werte, keine Nummern. Wo finde ich die Zuordnungstabelle?

  • ups stimmt ;), das ist noch ein offener Punkt, da kommt bestimmt noch ein Knopf mit einer Übersicht oder etwas ähnliches hin.


    Wenn du in config.php debug auf 1 stellst siehst du in Aufzeichnung die Sensor ID

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

  • Fehler vom p4d im Log?


    Das p4 Kommandozeilentool (hab ich zum testen geschrieben) wird mit dem p4d mit installiert.


    Damit kann man so die Stammdaten Sensoren abfragen:

    Code
    root@raspberrypi:~# p4 values -d /dev/ttyUSB1


    so filterst du die Ausgabe auf den Außentemperaturfühler:

    Code
    root@raspberrypi:~# p4 values -d /dev/ttyUSB1 | grep -i Auß | head -1
     61) 0x0004    2 '°' (0002) 'Außentemperatur'


    der zweite Wert ist die Adresse des Fühlers und der dritte der Faktor, mit der Adresse nun so den Wert Abfragen:


    Code
    root@raspberrypi:~# p4 getv -a 4 -d /dev/ttyUSB1 
    value 0x4 is 6


    dann durch den Faktor teilen ergibt bei mir 3°C
    das Device beim Aufruf musst du ggf. anpassen oder falls ttyUSB0 kannst du es auch ganz weglassen

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

  • 114) 0x0004 2 '°' (0002) 'Außentemperatur'
    root@beaglebone:/var/log# p4 getv -a 4 -d /dev/ttyUSB0
    value 0x4 is 0


    root@beaglebone:/var/log# tail -f syslog
    Jan 29 18:59:51 beaglebone p4d: Processed 24 samples, state is 'Zünden Warten'
    Jan 29 18:59:59 beaglebone p4d: Checking state ...
    Jan 29 19:00:09 beaglebone p4d: Checking state ...
    Jan 29 19:00:19 beaglebone p4d: Checking state ...
    Jan 29 19:00:22 beaglebone apache2: p4: requesting p4d-state with 0, ''
    Jan 29 19:00:22 beaglebone p4d: Processing WEBIF job 1388 'p4d-state:0x0000/'
    Jan 29 19:00:23 beaglebone p4d: Processing WEBIF job 1388 done with 'success:19:00:49#0.1.6#4 Tagen 19 Stunden' after 1 seconds
    Jan 29 19:00:23 beaglebone apache2: p4: requesting s3200-state with 0, ''
    Jan 29 19:00:23 beaglebone p4d: Processing WEBIF job 1389 's3200-state:0x0000/'
    Jan 29 19:00:23 beaglebone p4d: Processing WEBIF job 1389 done with 'success:Wednesday, 29. Jan. 2014 19:00:01#35#Zünden Warten#Winterbetrieb' after 0 seconds
    Jan 29 19:00:29 beaglebone p4d: Checking state ...
    Jan 29 19:00:39 beaglebone p4d: Checking state ...

  • hmmm da liefert die Heizung 0 zurück.
    Kommen bei der values Abfrage weitere Fühler für die Außentemperatur mit anderen Adressen?
    Ansonsten ruf das getv nochmal mit zusätzlich -l 4 auf, da siehst du was genu mit der Heizung kommuniziert wird

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

  • root@beaglebone:/var/www# p4 values -d /dev/ttyUSB0 |grep Au
    114) 0x0004 2 '°' (0002) 'Außentemperatur'
    121) 0x0004 2 '°' (0002) 'Außentemperatur'
    126) 0x0004 2 '°' (0002) 'Außentemperatur'
    131) 0x0004 2 '°' (0002) 'Außentemperatur'
    136) 0x0004 2 '°' (0002) 'Außentemperatur'
    141) 0x0004 2 '°' (0002) 'Außentemperatur'
    146) 0x0004 2 '°' (0002) 'Außentemperatur'
    151) 0x0004 2 '°' (0002) 'Außentemperatur'
    156) 0x0004 2 '°' (0002) 'Außentemperatur'
    161) 0x0004 2 '°' (0002) 'Außentemperatur'
    166) 0x0004 2 '°' (0002) 'Außentemperatur'
    171) 0x0004 2 '°' (0002) 'Außentemperatur'
    176) 0x0004 2 '°' (0002) 'Außentemperatur'
    181) 0x0004 2 '°' (0002) 'Außentemperatur'
    186) 0x0004 2 '°' (0002) 'Außentemperatur'
    191) 0x0004 2 '°' (0002) 'Außentemperatur'
    196) 0x0004 2 '°' (0002) 'Außentemperatur'
    201) 0x0004 2 '°' (0002) 'Außentemperatur'


    root@beaglebone:/var/www# p4 getv -a 4 -l 4 -d /dev/ttyUSB0
    19:28:14,063 Opening '/dev/ttyUSB0' succeeded!
    19:28:14,171 -> 02 FD 00 0B 22 54 65 73 63 68 74 20 3B 2D 29 1C ...."Tescht ;-).
    19:28:14,178 got 02
    19:28:14,181 got FD
    19:28:14,187 got 00
    19:28:14,189 got 0B
    19:28:14,192 got 22
    19:28:14,193 got 54
    19:28:14,194 got 65
    19:28:14,195 got 73
    19:28:14,196 got 63
    19:28:14,198 got 68
    19:28:14,199 got 74
    19:28:14,200 got 20
    19:28:14,201 got 3B
    19:28:14,203 got 2D
    19:28:14,204 got 29
    19:28:14,209 got 1C
    19:28:14,212 <- 02 FD 00 0B 22 54 65 73 63 68 74 20 3B 2D 29 1C ...."Tescht ;-).
    19:28:14,226 -> 02 FD 00 03 30 00 04 58 ....0..X
    19:28:14,230 got 02
    19:28:14,236 got FD
    19:28:14,238 got 00
    19:28:14,239 got 03
    19:28:14,241 got 30
    19:28:14,243 got 00
    19:28:14,244 got 00
    19:28:14,246 got 54
    19:28:14,247 <- 02 FD 00 03 30 00 00 54 ....0..T
    19:28:14,260 value 0x4 is 0
    19:28:14,261 Closing io device

  • Wie bei mir, kommt in der Liste öfter vor (warum auch immer) jedoch nur eine Adresse.
    Die Heizung liefert eindeutig 0, die 00 00 vor der 45.


    Kann es sein das der Fühler an einem anderen als dem 'normalen' Anschluss hängt? Ansonsten mal die Steuerung resetten?


    Ich bin jetzt erst mal unterwegs ..

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

  • Wenn der p4d länger (>5min) läuft, braucht der mysqld 35-45% der CPU auf dem BBB (mit "top" und "xosview" gemessen). Speicherverbrauch normal.
    Diese Last bleibt dann konstant. Mir kommt das ziemlich hoch vor. Kann man das genauer untersuchen und ggf. eingrenzen?

  • bei mir zeiht der mysqld immer um die 3%-5% und ab und an mal 10% egal ob der p4d läuft oder nicht. Geht die Last beim beenden des p4d runter?


    Wie hast du denn interval und stateCheckInterval stehen? Hilft es wenn du stateCheckInterval erhöhst?


    Das einzige was er alle 50ms macht ist ein ganz billiger select auf die jobs Tabelle um nachzusehen ob eine Anfrage vom WEBIF ansteht.


    Ggf. passt bei dir mit den Indices noch nicht.


    Was sagt denn

    Code
    mysql> explain select * from jobs where state = 'P';
    +----+-------------+-------+------+---------------+------+---------+------+------+-------------+
    | id | select_type | table | type | possible_keys | key  | key_len | ref  | rows | Extra       |
    +----+-------------+-------+------+---------------+------+---------+------+------+-------------+
    |  1 | SIMPLE      | jobs  | ALL  | NULL          | NULL | NULL    | NULL |  465 | Using where |
    +----+-------------+-------+------+---------------+------+---------+------+------+-------------+


    Ups, jetzt wo ich es sehe :o wenn viel in der Tabelle ist kann es schon last erzeugen da fehlt ein Index auf State. Wobei die Tabelle nur die Requests der letzten 2 Tage enthält, der Rest wir automatisch weg geräumt.


    mach mal bitte:

    Code
    mysql> create index idxState on jobs(state);


    danach sollte es so ausschauen:

    Code
    mysql> explain select * from jobs where state = 'P';
    +----+-------------+-------+------+---------------+----------+---------+-------+------+-------------+
    | id | select_type | table | type | possible_keys | key      | key_len | ref   | rows | Extra       |
    +----+-------------+-------+------+---------------+----------+---------+-------+------+-------------+
    |  1 | SIMPLE      | jobs  | ref  | idxState      | idxState | 6       | const |    1 | Using where |
    +----+-------------+-------+------+---------------+----------+---------+-------+------+-------------+


    bin gespannt ob es hilft. Ich baue das anlegen dieses Indizes in den p4d.


    Jörg

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

  • Ja, das war's.
    Musste noch "connect" rausfinden...



    Code
    mysql> create index idxState on jobs(state);
    Query OK, 0 rows affected (1.33 sec)
    Records: 0  Duplicates: 0  Warnings: 0


    Code
    ;) mysql> explain select * from jobs where state = 'P';
    +----+-------------+-------+------+---------------+----------+---------+-------+------+-------------+
    | id | select_type | table | type | possible_keys | key      | key_len | ref   | rows | Extra       |
    +----+-------------+-------+------+---------------+----------+---------+-------+------+-------------+
    |  1 | SIMPLE      | jobs  | ref  | idxState      | idxState | 6       | const |    1 | Using where |
    +----+-------------+-------+------+---------------+----------+---------+-------+------+-------------+
    1 row in set (0.00 sec)


    mysqld jetzt zwischen 1,3 und 1,6%.

  • okay, hab den Index in den Code übernommen, plus noch einen auf 'requestat', nicht das der Cleanup der Tabelle am Ende noch unnötige Last erzeugt.


    Ah connect kannte ich noch nicht, ich verwende immer use (vermutlich das selbe) oder gehe direkt so drauf:

    Code
    mysql -Dp4 -u p4 -pp4


    Dafür hab ich auch einen Alias:

    Code
    alias p4db='mysql -Dp4 -u p4 -pp4 --default-character-set=utf8'


    damit passt auch gleich das charset, das will man ja nicht immer tippen müssen ;)

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

Jetzt mitmachen!

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