Das legt aus dem Hauptspeicher eine 30MB „Partition“ an, und diese wird als /tmp eingebunden. Da dort temporäre Daten gespeichert werden erfolgen hier öfters Schreibzugriffe. Würde also ne SD-Karte belasten, bei ner SSD mit 128GB sollte es unkritisch sein. Kannste also eigentlich auskommentiert lassen.
Stefan Von meinem iPad gesendet > Am 05.05.2018 um 23:15 schrieb Christian Wulff <christianwu...@gmx.de>: > > Bis jetzt läuft es. > Was ist denn das und was tut es? (tmpfs /tmp tmpfs > nodev,nosuid,mode=1777,size=30M 0 0) > Muss ich das danach wieder zurückstellen? > LG > Chris > > > Von: Frank Richter [mailto:frank.richte...@gmail.com] > Gesendet: Samstag, 5. Mai 2018 23:13 > An: volkszaehler.org - users > Betreff: Re: [vz-users] Schaltspiel- und Betriebsstundenzähler - Konzept > gesucht > > Und was sagt aggregate.php jetzt? > > Christian Wulff <christianwu...@gmx.de> schrieb am Sa., 5. Mai 2018 22:51: > Dann sieht es so aus: > > df -h > Filesystem Size Used Avail Use% Mounted on > /dev/root 118G 53G 59G 48% / > devtmpfs 459M 0 459M 0% /dev > tmpfs 463M 0 463M 0% /dev/shm > tmpfs 463M 6.3M 457M 2% /run > tmpfs 5.0M 4.0K 5.0M 1% /run/lock > tmpfs 463M 0 463M 0% /sys/fs/cgroup > /dev/mmcblk0p1 63M 21M 43M 33% /boot > tmpfs 93M 0 93M 0% /run/user/1000 > > > Lieben Gruß, > Chris > > Von: Frank Richter [mailto:frank.richte...@gmail.com] > Gesendet: Samstag, 5. Mai 2018 20:38 > An: volkszaehler.org - users > Betreff: Re: [vz-users] Schaltspiel- und Betriebsstundenzähler - Konzept > gesucht > > Vermutlich ist das diese Zeile in der /etc/fstab: > > tmpfs /tmp tmpfs nodev,nosuid,mode=1777,size=30M 0 0 > > Kommentier' die mal aus (mit #), starte neu und schau nochmal was df -h dann > sagt. > > > > > Am 5. Mai 2018 um 20:33 schrieb Frank Richter <frank.richte...@gmail.com>: > Dann hast du die Version vom Image, wo /tmp als Ramdisk eingerichtet ist. > Vermutlich reicht dort der Platz nicht für so umfangreiche DB-Akrobatik. > Vielleicht kann Udo kurz erklären, wie du /tmp zurück auf die Platte bekommst. > > Grüße > Frank > > Am 5. Mai 2018 um 20:28 schrieb Christian Wulff <christianwu...@gmx.de>: > Moin Frank, > > Das Systemlaufwerk ist eine 128GB SSD > > /tmp $ df -h > Filesystem Size Used Avail Use% Mounted on > /dev/root 118G 53G 59G 48% / > devtmpfs 459M 0 459M 0% /dev > tmpfs 463M 0 463M 0% /dev/shm > tmpfs 463M 6.3M 457M 2% /run > tmpfs 5.0M 4.0K 5.0M 1% /run/lock > tmpfs 463M 0 463M 0% /sys/fs/cgroup > tmpfs 30M 0 30M 0% /tmp > /dev/mmcblk0p1 63M 21M 43M 33% /boot > tmpfs 93M 0 93M 0% /run/user/1000 > > Lieben Gruß, > Chris > > > > Von: Frank Richter [mailto:frank.richte...@gmail.com] > Gesendet: Samstag, 5. Mai 2018 20:23 > > An: volkszaehler.org - users > Betreff: Re: [vz-users] Schaltspiel- und Betriebsstundenzähler - Konzept > gesucht > > Wie voll ist dein /tmp (df - h)? > > Am 5. Mai 2018 um 20:16 schrieb Frank Richter <frank.richte...@gmail.com>: > Kein Plan, hatte ich noch nie. Speicherkarte oder was besseres als > Systemlaufwerk? > > Am 5. Mai 2018 um 20:13 schrieb Christian Wulff <christianwu...@gmx.de>: > …..lief leider nicht soooo lange. Fehlermeldung: > > Performing 'full' aggregation on 'day' level. > > > [Doctrine\DBAL\Exception\DriverException] > An exception occurred while executing 'REPLACE INTO aggregate (channel_id, > type, timestamp, value, count) SELECT channel_id, ? AS type, > MAX(agg.timestamp) > AS timestamp, COALESCE( SUM(agg.val_by_time) / (MAX(agg.timestamp) - > MIN(agg.prev_timestamp)), AVG(agg.value)) AS value, COUNT(agg.value) AS count > FROM ( S > ELECT channel_id, timestamp, value, value * (timestamp - @prev_timestamp) > AS val_by_time, GREATEST(0, IF(@prev_timestamp = NULL, NULL, > @prev_timestamp)) AS > prev_timestamp, @prev_timestamp := timestamp FROM data CROSS JOIN (SELECT > @prev_timestamp := NULL) AS vars WHERE channel_id = ? AND timestamp < > UNIX_TIMES > TAMP(DATE_FORMAT(NOW(), "%Y-%m-%d")) * 1000 ORDER BY timestamp ) AS agg > GROUP BY channel_id, YEAR(FROM_UNIXTIME(timestamp/1000)), > DAYOFYEAR(FROM_UNIXTIME(t > imestamp/1000))' with params [3, "15"]: > SQLSTATE[HY000]: General error: 126 Incorrect key file for table > '/tmp/#sql_49e_1.MYI'; try to repair it > > > > [Doctrine\DBAL\Driver\PDOException] > SQLSTATE[HY000]: General error: 126 Incorrect key file for table > '/tmp/#sql_49e_1.MYI'; try to repair it > > > > [PDOException] > SQLSTATE[HY000]: General error: 126 Incorrect key file for table > '/tmp/#sql_49e_1.MYI'; try to repair it > > > run [-l|--level LEVEL] [-m|--mode MODE] [-p|--period PERIOD] [--] [<uuid>]... > > > Was muss ich nun tun? > > Lieben Gruß, > Chris > > > > Von: Christian Wulff [mailto:christianwu...@gmx.de] > Gesendet: Samstag, 5. Mai 2018 20:04 > > An: 'volkszaehler.org - users' > Betreff: Re: [vz-users] Schaltspiel- und Betriebsstundenzähler - Konzept > gesucht > > Moin, > > alles klaro, läuft jetzt mit: > > php /var/www/volkszaehler.org/misc/tools/aggregate.php run -m full -l day -l > hour > > Vielen Dank! > > ….mal sehen wie lange es dauert…. > > Lieben Gruß, > Chris > > Von: Frank Richter [mailto:frank.richte...@gmail.com] > Gesendet: Samstag, 5. Mai 2018 19:53 > An: volkszaehler.org - users > Betreff: Re: [vz-users] Schaltspiel- und Betriebsstundenzähler - Konzept > gesucht > Frank Richter <frank.richte...@gmail.com> > Und lass -l minute erstmal weg, das bringt nicht viel und dauert ewig. > > Am 5. Mai 2018 um 19:48 schrieb Christian Wulff <christianwu...@gmx.de>: > Moin, > > ich muss nochmal an dieser Stelle einhaken. > > Vor der Aktivierung der Aggregation sah die Antwort der Abfrage > http://IP-ADRESSE/middleware.php/capabilities/database.json? so aus: > {"version":"0.3","capabilities":{"database":{"data_rows":30461209,"data_size":2664267776,"aggregation_enabled":0}}} > > Ich habe jetzt die Aggregation aktiviert. > > Nach der Aktivierung der Aggregation sah die Antwort der Abfrage > http://IP-ADRESSE/middleware.php/capabilities/database.json? so aus: > {"version":"0.3","capabilities":{"database":{"data_rows":30087708,"data_size":2674753536,"aggregation_enabled":1,"aggregation_rows":0,"aggregation_size":49152,"aggregation_ratio":0}}} > > Soweit so gut. > > Allerdings kann ich die Aggregation nicht starten. > Ich habe folgenden Befehl aus dem Wiki probiert: > php /var/www/volkszaehler.org/bin/aggregate run -m full -l day -l hour -l > minute > > Antwort: > Could not open input file: /var/www/volkszaehler.org/bin/aggregate > > Das Problem ist, dass es in dem Ordner /var/www/volkszaehler.org/ keinen > Ordner „bin“ gibt. > > Nun weiß ich nicht mehr weiter. > Wer weiß da Rat? > > Danke und lieben Gruß, > Chris > > > > > > > > > Von: Frank Richter [mailto:frank.richte...@gmail.com] > Gesendet: Mittwoch, 2. Mai 2018 22:02 > An: volkszaehler.org - users > Betreff: Re: [vz-users] Schaltspiel- und Betriebsstundenzähler - Konzept > gesucht > > Hi Christian, > > bei deinen lahmen Antwortzeiten hast du sicher keine Aggregation aktiviert, > oder? Bitte mal überprüfen (aggregation in der volkszaehler.conf.php und > Cronjobs für regelmäßige Aktualisierung der Tabelle aggregate). > > Zählerstände sind sicherlich schicker, aber auch schwieriger in der > Handhabung: soll der ESP den laufenden Absolutwert speichern? > > Gruß > Frank > > Christian Wulff <christianwu...@gmx.de> schrieb am Mi., 2. Mai 2018 21:49: > Moin, > > ja, mit S0 Impulsen geht das, klar. Aber grottenlahm. > Ich habe zum Beispiel einen Wasserzähler, der seit Oktober 2016 (sind ja nur > 1,5 Jahre, also noch nicht soooo viel) bis heute 458733 Datensätze geloggt > hat. > > Wenn ich mit der VZ App v9.7 den Wasserzähler abfrage, dann addiert er glatte > 46 Sekunden lang alle S0 Impulse zusammen, bis das Ergebnis kommt. Das ist > mir zu langsam. > Wenn ich in die Datenbank schauen würde und den letzten Wert abfrage, und > dieser die Information enthält die ich suche, (nämlich zum Beispiel > 613390,5L) dann dauert die Abfrage des Wertes nur Millisekunden. > Übrigens dauert es 38 Sekunden, wenn ich die aktuell 458733 Datensätze des > Wasserzählers in der Administration der Datenbank folgendermaßen abfrage: > SELECT * FROM `data` WHERE channel_id = '16' > Is ja auch kein Wunder, dass es dauert bis man ein paar hunderttausend > Datensätze abgefragt und aufaddiert hat. > Aber warum muss man denn ein paar hunderttausend Werte abfragen und > aufaddieren, wenn man anstatt dummen S0 Bits auch die wirkliche Anzahl der > Impulse speichern kann? > Statt hundertausende Daten abfragen und addieren zu müssen, reicht dann die > Abfrage von einem einzigen Datensatz. > Will man einen Bereich wissen muss man nur zwei Datensätze abfragen und die > Differenz bilden. > Das geht dann logischerweise Faktor mehrere hunderttausendfach schneller > Und genau das ist der Grund ,warum ich von S0 Impulse nix halte und sie so > oft wie möglich versuche zu vermeiden. > > Ich schaue per http Abfrage über JSON über die API der Middleware in die > Datenbank. > (Ich habe mir ein eigenes Hardwarefrontend gebaut. > Das besteht aus einem ESP8266 und einem 2,8“ 320x200 Display für insgesamt 20 > Euro. > Das geht dann immer mit der Beleuchtung im Gäste WC an, fragt die Daten über > WLAN ab und stellt sie dar. > Leider hatte ich noch keine Zeit dies zum Nachbauen zu dokumentieren L > Die nächste Stufe in 4“ mit 480x320 liegt hier vor mir, muss ich nur Zeit für > haben) > > Warum ich das über einen ESP8266 machen will? > Weil ich schon 2 Stück ESP8266 laufen habe, die über WLAN Daten an den > Volkszähler senden. > 1x drei Drehzahlen von der kontrollierten BE- und Entlüftung meiner > Wärmepumpe. Da musste ich selber die Software schreiben bis das klappte. > 1x mit 15 Stück DS18b20 Temperatursensoren. Da konnte ich als Software eine > gepimpte Version von ESP Easy Mega nehmen. > Und weil ich keine Kabelverbindung (außer der Stromleitung) zum Carport > liegen habe, aber selbiges locker in WLAN Reichweite liegt. > Die galvanische Trennung auf der Signalebene ist sicherlich auch nicht > schlecht. Wer weiß schon was sich da draußen für böse Spannungen rumtreiben, > die meinen Raspi ärgern wollen. > > Den letzten Datensatz per http Request abzufragen ist sehr einfach: > 192.168.178.xx/middleware.php/data/xxxxx--UUID--xxxxx.json?from=now > Die Antwort ist ein JSON mit dem letzten timestamp und dem letzten Wert. > > Nun nochmal zu meinen Fragestellungen: > 1. Hat schon mal jemand eine Betriebsstunden- und/oder > Schaltspielerfassung mit einem Volkszähler realisiert? Wenn ja, wie? > 2. Wie stellt man die Betriebsstunden im Frontend dar? Wie sieht > das aus? „Betriebsstundenzähler (Impulse)“ und „Betriebsstundenzähler > (Zählerstand)“ gibt es ja, aber dann gibt es noch einen > „Betriebsstundenzähler“. Was ist das? > 3. Wie stellt ich die Schaltspiele dar? Als Ventil? Welche Daten > braucht das Ventil? „1“ für „high“ und „0“ für „low“? Ist das irgendwo > dokumentiert? > 4. Der Bewegungsmelder schaltet ja auch den ESP8266 mit ein und > aus. Die Bootverzögerung kann ich ignorieren oder mal messen und dann als > konstanten Wert zu jeder Messung dazu addieren. > Aber wie schaffe ich es, dass der ESP8266 das Abschalten registriert und dann > noch den Wert an die Datenbank sendet? > > Hat vielleicht jemand ein paar gute Ideen wie man das umsetzen kann? > > Danke und liebe Grüße, > Chris > > Von: Rupert Schöttler [mailto:rupert.schoett...@gmx.de] > Gesendet: Dienstag, 1. Mai 2018 12:46 > An: volkszaehler-users@demo.volkszaehler.org > Betreff: Re: [vz-users] Schaltspiel- und Betriebsstundenzähler - Konzept > gesucht > > Hallo Christian, > > > Am 30.04.2018 um 10:52 schrieb Christian Wulff: > ich bin auf der Suche nach einem Konzept für folgende Fragestellung: > > Ich möchte die Schaltspiele und Betriebsstunden einer > Bewegungsmelder-gesteuerten Beleuchtung über WLAN mit dem Volkszähler > erfassen. > > Die Schaltspiele möchte ich dabei nicht als S0 Impulse, sondern als Zahl > gespeichert haben. Das heißt folgendermaßen: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, > 11, ........ > Hintergrund ist, dass man so auf den ersten Blick in die Datenbank die > Schaltspiele ablesen kann, und nicht bei einer Abfrage mühsam alle Impulse > aufaddieren muss. (Hab ich nämlich schon bei anderen Kanälen in der Datenbank > und dauert mir bei der späteren Abfrage leider zu lange). > > Ich meine, dass das mit S0-Impulsen schon gut geht: Jedes Einschalten > (Wechsel 0 -> 1) erzeugt einen Impuls, den Du mit vzlogger registrieren > kannst. Die Auflösung ist 1. In der Grafik des VZ bzw. der Tabelle darunter > bekommst Du dann als "Verbrauch" die Anzahl Schaltspiele im ausgewählten > Zeitraum. Ok, 100% so wie Du Dir das vorstellst, ist es nicht. Aber das > Aufaddieren ist m.E. nicht "mühsam", wie Du schreibst. > Das wäre der 1. Kanal zum Mitzählen. > > Bei den "Betriebsstunden" sollen die "Betriebssekunden" aufaddiert werden. > Diese können variieren, weil der Bewegungsmelder innerhalb seiner > Timerlaufzeit mehrfach ausgelöst werden kann, oder das Licht auch manuell > angeschaltet werden kann. > Das heißt folgendermaßen (Beispiel pro Schaltspiel 55 Sekunden, kann aber > auch variieren): 55, 110 , 165, 220, 652, 707, 762, 817, 1254, 1309, ..... > Auch hier der gleiche Grund: Bei ersten Blick in die Datenbank möchte ich die > Betriebsstunden in Sekunden auslesen. > > Hierzu würde ich einen 2. Kanal einrichten, der auf dasselbe 1 / 0-Signal > reagiert. Ich habe eine Photodiode, die registriert, ob im Keller Licht an > ist, und das an einen GPIO des Pi gibt. Der Kanal ist ein allgemeiner > "Sensor" mit Einheit "Ein" und Stil "states". Hier sehe ich z.B. in der > Tabelle, dass das Licht im Durchschnitt eines Tages "0,037 Ein" war. Gut, das > müsste ich in Stunden umrechnen. Vermutlich geht es mit dem Kanaltyp > "Betriebsstundensensor" viel einfacher, ich habe damit aber keine Erfahrung. > > Ich gebe zu, meine Lösungsvorschläge ignorieren Deinen Wunsch, "beim ersten > Blick in die DB" die Info zu bekommen. Ich kann den aber auch nicht wirklich > nachvollziehen: Wie würdest Du "in die DB" hineinschauen? Per SQL? Auch dann > muss, nach Tausenden Schaltspielen, die je 1 Datensatz erzeugt haben, der > richtige =letzte herausgesucht werden. Geht das schneller als ein COUNT oder > SUM? Ich habe eine analoge Wasseruhr als S0-Zähler eingerichtet, die hat nach > 4 Monaten rd. 226.000 Datensätze in die DB gepumpt. Eine Grafik über diesen > Zeitraum aufzubauen dauert ein paar Sekunden, liefert mir aber neben dem > Gesamtverbrauch auch den zeitlichen Verlauf. Würde ich diese Daten verdichten > gemäß https://wiki.volkszaehler.org/howto/datenmengen, würde es vermutlich > noch deutlich schneller gehen. > > Direkt auf der DB (phpMyAdmin) geht's auch nicht viel schneller: > Zeige Datensätze 0 - 0 (1 insgesamt, Die Abfrage dauerte 3.7392 Sekunden.) > > SELECT count(*), Sum(value) FROM `data` WHERE channel_id=12 > 225887 736725 > (Da fällt mir auf: 736.725 Impulse bei 60 Imp/l sind 12.278,75 l. Die Tabelle > sagt 12,2 m³ -- kann das Teil nicht richtig runden??) > > Brauchst Du bessere Performance, für die es sich lohnt, die Standardkonzepte > zu verbiegen? > > Als Hardware dachte ich an einen ESP8266. Damit habe ich bereits einige > Projekte erfolgreich gemacht. Diesen könnte ich auch mit einem FRAM > Speichermodul kombinieren, um die Werte beim Sensor zwischenzuspeichern. > Was soll der ESP8266 machen? M.E. reicht es, wenn Du Licht an/aus als 1/0 an > einen GPIO bekommst und das mit vzlogger an die Middleware übertragen lässt. > > > Warum will ich das haben? In erster Linie: Just for fun! > Das ist die wichtigste Triebfeder! :-) > > Viele Grüße > Rupert > > > > >