NEWS
Wasserzähler - Selfmade
-
@pfried Hallo Paul,
du musst zuerst die Verzeichnisse "log" und "config" anlegen und dann die richtigen absoluten Pfade bei source eintragen. Wenn ich es bei mir direkt unter dem Homeverzeichnis des Users "pi" mache funktioniert es folgendermassen:mkdir log mkdir config docker run -p 3000:3000 --mount type=bind,source=/home/pi/config,target=/config --mount type=bind,source=/home/pi/log,target=/log jomjol/wasserzaehler:raspi-rollingGruß,
jomjol@jomjol Hallo Jomjol, vielen Dank, funktioniert :+1: :blush: Frage: kann ich den Docker auch unter dem pm2 Tool laufen lassen, sodass nach einem Neustart der Docker automatisch gestartet wird?
Liebe Grüße
PaulEDIT: So geht es:
pm2 start 'sudo docker run -p 3000:3000 --mount type=bind,source=/home/pi/config,target=/config --mount type=bind,source=/home/pi/log,target=/log jomjol/wasserzaehler:raspi-rolling' -
@pfried Hallo Paul,
du musst zuerst die Verzeichnisse "log" und "config" anlegen und dann die richtigen absoluten Pfade bei source eintragen. Wenn ich es bei mir direkt unter dem Homeverzeichnis des Users "pi" mache funktioniert es folgendermassen:mkdir log mkdir config docker run -p 3000:3000 --mount type=bind,source=/home/pi/config,target=/config --mount type=bind,source=/home/pi/log,target=/log jomjol/wasserzaehler:raspi-rollingGruß,
jomjol -
Servus
Mal ne etwas andere Zwischenfrage
Wie habt ihr den Plastikdeckel von der Wasseruhr ab bekommen?
Wenn ich den drauf lasse und auf klappe passt das mit dem 3D-Druck nicht mehr.
Oder habt ihr da ein Stück aus dem gedruckten Ring raus geschnitten?
Gruß Peer -
Servus
Mal ne etwas andere Zwischenfrage
Wie habt ihr den Plastikdeckel von der Wasseruhr ab bekommen?
Wenn ich den drauf lasse und auf klappe passt das mit dem 3D-Druck nicht mehr.
Oder habt ihr da ein Stück aus dem gedruckten Ring raus geschnitten?
Gruß Peer@C1500 Ich habe einfach was rausgedremelt , da ich denke das die Wasserwerke was dagegen haben, wenn Mann mechanisch was an der Wasseruhr verändert.
Ist ja handwerklich auch keine große Sache -
@Knallochse Guten Morgen, habe dazu weiter oben gepostet. Check doch mal ob nicht statt Enable=True ConsistencyEnable=True in die Config.ini gehört.
@pfried sagte in Wasserzähler - Selfmade:
@Knallochse Guten Morgen, habe dazu weiter oben gepostet. Check doch mal ob nicht statt Enable=True ConsistencyEnable=True in die Config.ini gehört.
Danke für den Hinweis, habe die config.ini mal dahingehend geändert (probiert habe ich : ConsistencyEnable=True und ConsistencyCheckEnable=True , was aber keinen Effekt hatte. Wird weiterhin kein Fehler ausgegeben. Mal sehen, ob @jomjol noch eine Idee hat.
-
Ich möchte einfach mal einen Gedanken zur Erkennung allgemein äußern.
Braucht es die Erkennung der digitalen Zahlen überhaupt?
Da bei mir die analogen Zeiger sehr zuverlässig erkannt werden, könnte man da nicht die m3-Zahlen rechnerisch erhöhten?
Bei mir machen halt die digitalen Zahlen Probleme.
Momentan sieht das Bild so aus:

Erkannt wird: N00.1684 00N00 1684 (also die 3 nicht) -
Ich möchte einfach mal einen Gedanken zur Erkennung allgemein äußern.
Braucht es die Erkennung der digitalen Zahlen überhaupt?
Da bei mir die analogen Zeiger sehr zuverlässig erkannt werden, könnte man da nicht die m3-Zahlen rechnerisch erhöhten?
Bei mir machen halt die digitalen Zahlen Probleme.
Momentan sieht das Bild so aus:

Erkannt wird: N00.1684 00N00 1684 (also die 3 nicht)@pfried na klar, ich bin jetzt nicht der Javascript Programmierer, aber es funktioniert ;-)
Bei schedule sind 10 Minuten eingestellt.
In der Klammer von body.slice können die Stellen noch angepasst werden, hier ist 0 (Anfang vom Array) und 8 (bis zur 8ten Stelle des Arrays). Könnt ihr anpassen, wie ihr es braucht.createState('javascript.0.Wasserzaehler.Stand',""); schedule('*/10 * * * *', function () { var url = "http://IP:3000/wasserzaehler.html?usePreValue"; var req = require('request'); req(url, function(error, response, body) { if (body){ log("Body OK","warn"); setState("javascript.0.Wasserzaehler.Stand",body.slice(0, 8)); } else {log("Body fehlerhaft","warn"); } }) }); -
Ich habe leider das Problem, dass die Fehlerprüfung gar nicht mehr greift.
Habe heute auch mehrfach den Docker Container recreatet (Synology DS918+ / rolling), was leider keinen Erfolg brachte.
Gemerkt hatte ich es, als heute die Wasseruhr von 299 auf 300 m³ gewechselt hat.
Da wurde NNN.0156 angezeigt. Es kahm aber kein Error.
Mit der Version von Mitte November hatte die Fehlerprüfung noch funktioniert.
Da mittlerweile die Erkennung wirklich gut funktioniert, ist mir leider nicht aufgefallen, seit wann genau die Fehlerprüfung nicht mehr geht.Aktuell sieht meine .ini so aus.
[Imagesource] TimeoutLoadImage=30 #IP durch die IP des ESP32 ersetzen! URLImageSource=http://192.168.178.71/capture_with_flashlight LogImageLocation=./log/source_image # Falls nur schlechte / fehlerhafte Bilder gelockt werden sollen, naechste Zeile Kommentar entfernen LogOnlyFalsePictures=True [ConsistencyCheck] Enabled=True AllowNegativeRates=False #Maximum Change of new to old value (+ or -) MaxRateValue=0.2 #Return in Case of Error: Value = OldValue or NewValue # ErrorMessage = Return Text with problem (seperated by Tabstopp) if nothing, then no error message # Readout = Real Readout without corrections (NewValue) ErrorReturn=OldValue, ErrorMessage, Readout #ErrorReturn=OldValue, ErrorMessage #ErrorReturn=NewValue, ErrorMessage [alignment] initial_rotation_angle=358 [alignment.ref0] image=./config/Ref_ZR_x99_y219.jpg pos_x=130 pos_y=166 [alignment.ref1] image=./config/Ref_m3_x512_y117.jpg pos_x=554 pos_y=150 [alignment.ref2] image=./config/Ref_x0_x301_y386.jpg pos_x=339 pos_y=416 [Digital_Digit] names=ziffer1, ziffer2, ziffer3, ziffer4, ziffer5 Modelfile=./config/neuralnets/Train_CNN_Digital-Readout_Version_4.1.0.h5 #LogImageLocation=./log/digital_digit #LogNames=zeiger3, zeiger4 [Analog_Counter] names=zeiger1, zeiger2, zeiger3, zeiger4 Modelfile=./config/neuralnets/CNN_Analog-Readout_Version-4.0.1.h5 #LogImageLocation=./log/analog_counter #LogNames=zeiger3, zeiger4 [Analog_Counter.zeiger1] pos_x=524 pos_y=258 dx=120 dy=120 [Analog_Counter.zeiger2] pos_x=456 pos_y=390 dx=120 dy=120 [Analog_Counter.zeiger3] pos_x=330 pos_y=446 dx=120 dy=120 [Analog_Counter.zeiger4] pos_x=167 pos_y=382 dx=120 dy=120 [Digital_Digit.ziffer1] pos_x=232 pos_y=126 dx=42 dy=75 [Digital_Digit.ziffer2] pos_x=292 pos_y=126 dx=42 dy=75 [Digital_Digit.ziffer3] pos_x=355 pos_y=126 dx=42 dy=75 [Digital_Digit.ziffer4] pos_x=417 pos_y=126 dx=42 dy=75 [Digital_Digit.ziffer5] pos_x=476 pos_y=126 dx=42 dy=75@Knallochse Habe mal gerade meine internen Logs geprüft. Bei mir hat die Fehlererkennung gestern noch angeschlagen (ErrorRateTooHigh).
Hast du das Problem jetzt nur beim Übergang auf die nächsten Hunderter?
NNN dürfte es eigentlich gar nicht geben, wenn du mit den Wasserzähler mit dem Parameter "usePreValue" aufrufst - das würde ich unbedingt empfehlen:/wasserzaehler.html?usePrevalue -
@Knallochse Habe mal gerade meine internen Logs geprüft. Bei mir hat die Fehlererkennung gestern noch angeschlagen (ErrorRateTooHigh).
Hast du das Problem jetzt nur beim Übergang auf die nächsten Hunderter?
NNN dürfte es eigentlich gar nicht geben, wenn du mit den Wasserzähler mit dem Parameter "usePreValue" aufrufst - das würde ich unbedingt empfehlen:/wasserzaehler.html?usePrevalue -
@jomjol Hallo jomjol, bei meinem Raspberry 4 mit 2Gbyte Hauptspeicher, verabschiedet sich der Docker immer nach einiger Zeit mit:

Was kann ich da noch tun?
Liebe Grüße
Paul -
@jomjol Hallo jomjol, bei meinem Raspberry 4 mit 2Gbyte Hauptspeicher, verabschiedet sich der Docker immer nach einiger Zeit mit:

Was kann ich da noch tun?
Liebe Grüße
Paul@pfried Hallo Paul, ich habe eine Speicherlücke in
LoadFileFromHTTPClass.pygefunden und korrigiert. Da ich bis nächstes Wochenende verreist bin, habe ich keinen Raspi zum testen, ob es überhaupt läuft. Daher habe ich für dich ein neues Docker zum Testen hochgeladen:jomjol/wasserzaehler:raspi-rolling3Wichtig ist die "3" bei rolling. Ich wollte die alte Version ohne Test auf meinem Raspi (gerade ohne Strom) nicht überschreiben.
-
@pfried Hallo Paul, ich habe eine Speicherlücke in
LoadFileFromHTTPClass.pygefunden und korrigiert. Da ich bis nächstes Wochenende verreist bin, habe ich keinen Raspi zum testen, ob es überhaupt läuft. Daher habe ich für dich ein neues Docker zum Testen hochgeladen:jomjol/wasserzaehler:raspi-rolling3Wichtig ist die "3" bei rolling. Ich wollte die alte Version ohne Test auf meinem Raspi (gerade ohne Strom) nicht überschreiben.
-
@jomjol OK, mache mich gleich ans testen. Melde mich asap. Der letzte Overflow war zwischen 2 und 4 Stunden....
-
@jomjol
Hallo jomjol, habe um 15:35h den Docker gestartet und um 19:15h hat der Docker die Fehlermeldung ausgegeben, die nun bei jedem Aufruf ausgegeben wird. Startet man den Docker neu, läuft er wieder für die circa 4 Stunden. Unten die erste Fehlermeldung nach dem Crash:
Mein Docker läuft unter RB4
Ich hoffe irgendwann gibt es wieder eine Version die unter Python läuft, denn im Docker ist man völlig blind wenn man sich nicht auskennt...
Liebe Grüße
Paul -
Moin, ich möchte mich hier mal kurz (oder lang :blush: ) mit einklinken.
ich versuche gerade die Kamera zu implementieren, jedoch habe ich beim kompilieren folgenden Fehler
'Adafruit_NeoPixel' does not name a typefrom C:\Users\tajes\Documents\Arduino\all_wasser_skatch_jam\all_wasser_skatch_jam.ino:11: JomjolGitESP32CamComm.h:36:7: error: 'Adafruit_NeoPixel' does not name a type Adafruit_NeoPixel *light; ^ In file included from C:\Users\tajes\AppData\Local\Temp\arduino_build_422536\sketch\JomjolGitESP32CAM-Server-Class.h:2:0, from C:\Users\tajes\AppData\Local\Temp\arduino_build_422536\sketch\JomjolGitESP32CAM-Server-Class.cpp:1: JomjolGitESP32CamComm.h:36:7: error: 'Adafruit_NeoPixel' does not name a type Adafruit_NeoPixel *light; ^ In file included from C:\Users\tajes\AppData\Local\Temp\arduino_build_422536\sketch\JomjolGitESP32CamComm.cpp:1:0: C:\Users\tajes\AppData\Local\Temp\arduino_build_422536\sketch\JomjolGitESP32CAMComm.h:36:7: error: 'Adafruit_NeoPixel' does not name a type Adafruit_NeoPixel *light; ^ C:\Users\tajes\AppData\Local\Temp\arduino_build_422536\sketch\JomjolGitESP32CamComm.cpp: In constructor 'GitESP32CAMCommLibrary::ESP32CAMCommClass::ESP32CAMCommClass(int, int, int, int, int, WebServer*)': JomjolGitESP32CamComm.cpp:7:3: error: 'light' was not declared in this scope light = new Adafruit_NeoPixel(_num_led, _pin, NEO_GRBW + NEO_KHZ800); ^ JomjolGitESP32CamComm.cpp:7:15: error: expected type-specifier before 'Adafruit_NeoPixel' light = new Adafruit_NeoPixel(_num_led, _pin, NEO_GRBW + NEO_KHZ800); ^ C:\Users\tajes\AppData\Local\Temp\arduino_build_422536\sketch\JomjolGitESP32CamComm.cpp: In member function 'virtual void GitESP32CAMCommLibrary::ESP32CAMCommClass::setup()': JomjolGitESP32CamComm.cpp:193:3: error: 'light' was not declared in this scope light->setBrightness(brightness); ^ C:\Users\tajes\AppData\Local\Temp\arduino_build_422536\sketch\JomjolGitESP32CamComm.cpp: In member function 'void GitESP32CAMCommLibrary::ESP32CAMCommClass::LightOn()': JomjolGitESP32CamComm.cpp:213:3: error: 'light' was not declared in this scope light->show(); // Initialize all pixels to 'off' ^ C:\Users\tajes\AppData\Local\Temp\arduino_build_422536\sketch\JomjolGitESP32CamComm.cpp: In member function 'void GitESP32CAMCommLibrary::ESP32CAMCommClass::LightOff()': JomjolGitESP32CamComm.cpp:220:13: error: 'light' was not declared in this scope colorWipe(light->Color(0, 0, 0, 0), 0); // Aus ^ C:\Users\tajes\AppData\Local\Temp\arduino_build_422536\sketch\JomjolGitESP32CamComm.cpp: In member function 'void GitESP32CAMCommLibrary::ESP32CAMCommClass::colorWipe(uint32_t, uint8_t)': JomjolGitESP32CamComm.cpp:226:23: error: 'light' was not declared in this scope for(uint16_t i=0; i<light->numPixels(); i++) { ^ JomjolGitESP32CamComm.cpp:231:1: error: expected '}' at end of input } ^ Mehrere Bibliotheken wurden für "WebServer.h" gefunden Benutzt: C:\Users\tajes\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\libraries\WebServer Mehrere Bibliotheken wurden für "ESPmDNS.h" gefunden Benutzt: C:\Users\tajes\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\libraries\ESPmDNS Mehrere Bibliotheken wurden für "ArduinoOTA.h" gefunden Benutzt: C:\Users\tajes\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\libraries\ArduinoOTA Mehrere Bibliotheken wurden für "Update.h" gefunden Benutzt: C:\Users\tajes\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\libraries\Update Mehrere Bibliotheken wurden für "FS.h" gefunden Benutzt: C:\Users\tajes\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\libraries\FS Mehrere Bibliotheken wurden für "WiFi.h" gefunden Benutzt: C:\Users\tajes\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\libraries\WiFi Nicht benutzt: C:\Program Bibliothek WiFi in Version 1.0 im Ordner: C:\Users\tajes\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\libraries\WiFi wird verwendet Bibliothek WebServer in Version 1.0 im Ordner: C:\Users\tajes\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\libraries\WebServer wird verwendet Bibliothek ESPmDNS in Version 1.0 im Ordner: C:\Users\tajes\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\libraries\ESPmDNS wird verwendet Bibliothek ArduinoOTA in Version 1.0 im Ordner: C:\Users\tajes\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\libraries\ArduinoOTA wird verwendet Bibliothek Update in Version 1.0 im Ordner: C:\Users\tajes\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\libraries\Update wird verwendet Bibliothek FS in Version 1.0 im Ordner: C:\Users\tajes\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\libraries\FS wird verwendet exit status 1 'Adafruit_NeoPixel' does not name a typeAdafruit_NeoPixel *light; int brightness; void colorWipe(uint32_t c, uint8_t wait); framesize_t fr_size; uint8_t fr_quality;Von diesem in der ersten Zeile, im Sketch Zeile 36
Hat das schon mal jemand gehabt bzw. eine Lösung ad hock parat?
Für Brainstorming oder :"Ey Du siehst den Wald vor lauter Bäume nicht..." wäre ich sehr dankbar...
Und Daumen Hoch für die geleistete Arbeit hier :+1:
-
Moin, ich möchte mich hier mal kurz (oder lang :blush: ) mit einklinken.
ich versuche gerade die Kamera zu implementieren, jedoch habe ich beim kompilieren folgenden Fehler
'Adafruit_NeoPixel' does not name a typefrom C:\Users\tajes\Documents\Arduino\all_wasser_skatch_jam\all_wasser_skatch_jam.ino:11: JomjolGitESP32CamComm.h:36:7: error: 'Adafruit_NeoPixel' does not name a type Adafruit_NeoPixel *light; ^ In file included from C:\Users\tajes\AppData\Local\Temp\arduino_build_422536\sketch\JomjolGitESP32CAM-Server-Class.h:2:0, from C:\Users\tajes\AppData\Local\Temp\arduino_build_422536\sketch\JomjolGitESP32CAM-Server-Class.cpp:1: JomjolGitESP32CamComm.h:36:7: error: 'Adafruit_NeoPixel' does not name a type Adafruit_NeoPixel *light; ^ In file included from C:\Users\tajes\AppData\Local\Temp\arduino_build_422536\sketch\JomjolGitESP32CamComm.cpp:1:0: C:\Users\tajes\AppData\Local\Temp\arduino_build_422536\sketch\JomjolGitESP32CAMComm.h:36:7: error: 'Adafruit_NeoPixel' does not name a type Adafruit_NeoPixel *light; ^ C:\Users\tajes\AppData\Local\Temp\arduino_build_422536\sketch\JomjolGitESP32CamComm.cpp: In constructor 'GitESP32CAMCommLibrary::ESP32CAMCommClass::ESP32CAMCommClass(int, int, int, int, int, WebServer*)': JomjolGitESP32CamComm.cpp:7:3: error: 'light' was not declared in this scope light = new Adafruit_NeoPixel(_num_led, _pin, NEO_GRBW + NEO_KHZ800); ^ JomjolGitESP32CamComm.cpp:7:15: error: expected type-specifier before 'Adafruit_NeoPixel' light = new Adafruit_NeoPixel(_num_led, _pin, NEO_GRBW + NEO_KHZ800); ^ C:\Users\tajes\AppData\Local\Temp\arduino_build_422536\sketch\JomjolGitESP32CamComm.cpp: In member function 'virtual void GitESP32CAMCommLibrary::ESP32CAMCommClass::setup()': JomjolGitESP32CamComm.cpp:193:3: error: 'light' was not declared in this scope light->setBrightness(brightness); ^ C:\Users\tajes\AppData\Local\Temp\arduino_build_422536\sketch\JomjolGitESP32CamComm.cpp: In member function 'void GitESP32CAMCommLibrary::ESP32CAMCommClass::LightOn()': JomjolGitESP32CamComm.cpp:213:3: error: 'light' was not declared in this scope light->show(); // Initialize all pixels to 'off' ^ C:\Users\tajes\AppData\Local\Temp\arduino_build_422536\sketch\JomjolGitESP32CamComm.cpp: In member function 'void GitESP32CAMCommLibrary::ESP32CAMCommClass::LightOff()': JomjolGitESP32CamComm.cpp:220:13: error: 'light' was not declared in this scope colorWipe(light->Color(0, 0, 0, 0), 0); // Aus ^ C:\Users\tajes\AppData\Local\Temp\arduino_build_422536\sketch\JomjolGitESP32CamComm.cpp: In member function 'void GitESP32CAMCommLibrary::ESP32CAMCommClass::colorWipe(uint32_t, uint8_t)': JomjolGitESP32CamComm.cpp:226:23: error: 'light' was not declared in this scope for(uint16_t i=0; i<light->numPixels(); i++) { ^ JomjolGitESP32CamComm.cpp:231:1: error: expected '}' at end of input } ^ Mehrere Bibliotheken wurden für "WebServer.h" gefunden Benutzt: C:\Users\tajes\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\libraries\WebServer Mehrere Bibliotheken wurden für "ESPmDNS.h" gefunden Benutzt: C:\Users\tajes\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\libraries\ESPmDNS Mehrere Bibliotheken wurden für "ArduinoOTA.h" gefunden Benutzt: C:\Users\tajes\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\libraries\ArduinoOTA Mehrere Bibliotheken wurden für "Update.h" gefunden Benutzt: C:\Users\tajes\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\libraries\Update Mehrere Bibliotheken wurden für "FS.h" gefunden Benutzt: C:\Users\tajes\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\libraries\FS Mehrere Bibliotheken wurden für "WiFi.h" gefunden Benutzt: C:\Users\tajes\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\libraries\WiFi Nicht benutzt: C:\Program Bibliothek WiFi in Version 1.0 im Ordner: C:\Users\tajes\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\libraries\WiFi wird verwendet Bibliothek WebServer in Version 1.0 im Ordner: C:\Users\tajes\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\libraries\WebServer wird verwendet Bibliothek ESPmDNS in Version 1.0 im Ordner: C:\Users\tajes\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\libraries\ESPmDNS wird verwendet Bibliothek ArduinoOTA in Version 1.0 im Ordner: C:\Users\tajes\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\libraries\ArduinoOTA wird verwendet Bibliothek Update in Version 1.0 im Ordner: C:\Users\tajes\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\libraries\Update wird verwendet Bibliothek FS in Version 1.0 im Ordner: C:\Users\tajes\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\libraries\FS wird verwendet exit status 1 'Adafruit_NeoPixel' does not name a typeAdafruit_NeoPixel *light; int brightness; void colorWipe(uint32_t c, uint8_t wait); framesize_t fr_size; uint8_t fr_quality;Von diesem in der ersten Zeile, im Sketch Zeile 36
Hat das schon mal jemand gehabt bzw. eine Lösung ad hock parat?
Für Brainstorming oder :"Ey Du siehst den Wald vor lauter Bäume nicht..." wäre ich sehr dankbar...
Und Daumen Hoch für die geleistete Arbeit hier :+1:
@Rababersaft Adafruit_Neopixel ist eine Bibliothek, die ich für eine Version mit getrennter Beleuchtung benötige. Ich flashe meinen ESP32 mit der Arduino Umgebung und dann kannst du das über die Bibliothekverwaltung installieren:

Theoretisch kann man den Code auch streichen, aber dann ist es mit meiner alten Hardware nicht kompatibel (ESP3286 mit ArduCAM) - aktuell fehlt mir auch die Zeit dazu
-
@Rababersaft Adafruit_Neopixel ist eine Bibliothek, die ich für eine Version mit getrennter Beleuchtung benötige. Ich flashe meinen ESP32 mit der Arduino Umgebung und dann kannst du das über die Bibliothekverwaltung installieren:

Theoretisch kann man den Code auch streichen, aber dann ist es mit meiner alten Hardware nicht kompatibel (ESP3286 mit ArduCAM) - aktuell fehlt mir auch die Zeit dazu
@jomjol Nabend 😉
Ja, so flashe ich auch. Er moniert ja den *light Befehl bei mir. Evtl sollte ich auf deine Version von neopixel downgreaden. Das wäre nen Versuch mal wert 🙂Ich informiere weiter ...
-
kommt heute Abend
So hier mein Programm.
Programm mcchickents 191017.txtDu brauchst zwei DB Steine meine beiden heißen.

Und dann habe ich SV auf meiner CCU gefühlt hier kannst du aber auch DB im Iobroker füllen.
Gruß Julian
@mcchickents sagte in Wasserzähler - Selfmade:
kommt heute Abend
So hier mein Programm.
Programm mcchickents 191017.txtDu brauchst zwei DB Steine meine beiden heißen.

Und dann habe ich SV auf meiner CCU gefühlt hier kannst du aber auch DB im Iobroker füllen.
Gruß Julian
Wie ich schon angemerkt hatte, werden bei mir die "Digitalen" Zahlem (m³) nicht immer richtig erkannt. Das führte bei mir zu Verbrauchswerten, die nicht besonders aussagekräftig waren.
Dagegen habe ich beobachtet, das die Erkennung der Zeiger (analog) sehr zuverlässig funktioniert.
Ich habe mir erlaubt, dass Script von @mcchickents so umzubauen, dass nur noch diese Analogen Werte verwendet werden. die Digitalen (m³) werden nur noch im Script hochgezählt.
Ausgangspunkt sind die Parser Werte mit den Einstellungen von @mcchickents

mit Intervall von 300000 (5min)Ich habe des Script so umgebaut, das mit Anfangszählerständen gearbeitet wird (Tag; Woche; Monat; Jahr) Die dazugehörigen Objekte müssen (wo immer Ihr sie hin haben wollt) angelegt werden.
WICHTIG: Die Plausibilitätsprüfung muss ausgeschaltet sein, so das immer der gerade erkannte Wert im Parser mitgegeben wird.
Bei mir funktioniert das seit 1er Woche ohne Auffälligkeiten.
Ich würde mich über Tester freuen. Auch Verbesserungsvorschläge sind sehr willkommen.
Ich bin wahrlich kein Profi, was das Scripten betrifft.Hier das Blockly Script:
<xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="" id="+{wu7EACDqh[jz.w|UJ_">Digital</variable> <variable type="" id="CrQs0Fj4!jTiB_=7Z{H#">Analog alt</variable> <variable type="undefined" id="timeout2">timeout2</variable> <variable type="undefined" id="timeout">timeout</variable> <variable type="" id="Y%2waVBVJfgC:UsZNg9^">Analog</variable> <variable type="" id="jD*[#Zlic1jmyurL%.%b">Wasser</variable> <variable type="" id="S~g:}fW6Tm:Aw?GxUkaZ">Wasser gerechnet</variable> <variable type="undefined" id="timeout3">timeout3</variable> </variables> <block type="variables_set" id="GE[E%kt%s0mH*y[T,]`|" x="-1813" y="-637"> <field name="VAR" id="+{wu7EACDqh[jz.w|UJ_" variabletype="">Digital</field> <value name="VALUE"> <block type="get_value" id="f#L%AXrk=Ex$lR)!ag{6"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Digital</field> </block> </value> </block> <block type="on_ext" id="hW,coeg6nL[_/oRIW8`_" x="-1288" y="-612"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="#1+|n}n82E%YcW~~(OAJ"> <field name="oid">javascript.0.Wasserverbrauch1.Anfangszaehlerstand</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="[3s08X/c2]b+g09k=MS2"> <field name="VAR" id="+{wu7EACDqh[jz.w|UJ_" variabletype="">Digital</field> <value name="VALUE"> <block type="get_value" id="~ZWWb=S%vhPDv}PO8g-~"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Anfangszaehlerstand</field> </block> </value> </block> </statement> </block> <block type="comment" id="{)~[qYJwM%HmTqZC[Dme" x="-1787" y="-537"> <field name="COMMENT">Werte von Url Ausgabe aufbereiten und als Zahl in neuen DB</field> <next> <block type="on_ext" id="O@t;)N+2$SFNG$?Gf{h2"> <mutation items="1"></mutation> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="9K|x1o#+%6GQb*;p%3O#"> <field name="oid">parser.0.Wasserzähler</field> </shadow> </value> <statement name="STATEMENT"> <block type="timeouts_settimeout" id="W]bzQri^_8bvqpKQOrEV"> <field name="NAME">timeout</field> <field name="DELAY">200</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="variables_set" id="5w0B^2Jki=M**PAtqc+u"> <field name="VAR" id="jD*[#Zlic1jmyurL%.%b" variabletype="">Wasser</field> <value name="VALUE"> <block type="get_value" id=";?U(`UWCL4fsnK8#0#*["> <field name="ATTR">val</field> <field name="OID">parser.0.Wasserzähler</field> </block> </value> <next> <block type="variables_set" id="ixFd@J8)L1oE}OCVbtYq"> <field name="VAR" id="Y%2waVBVJfgC:UsZNg9^" variabletype="">Analog</field> <value name="VALUE"> <block type="text_join" id="/fqyB}E;PHmjBsJJ`0Fh"> <mutation items="6"></mutation> <value name="ADD0"> <block type="math_number" id="SMJBX;~T(pjV^d0~+S)y"> <field name="NUM">0</field> </block> </value> <value name="ADD1"> <block type="text" id="u[@%#8#fi4C^yX.r%d!I"> <field name="TEXT">.</field> </block> </value> <value name="ADD2"> <block type="text_charAt" id="kJ_eC,oa_KKeEhwykd:J"> <mutation at="true"></mutation> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="variables_get" id="-y({kI6sfR,nQAjVkA]A"> <field name="VAR" id="jD*[#Zlic1jmyurL%.%b" variabletype="">Wasser</field> </block> </value> <value name="AT"> <block type="math_number" id="hr%jA*b+T]5*Ca|K9m+4"> <field name="NUM">7</field> </block> </value> </block> </value> <value name="ADD3"> <block type="text_charAt" id="5.{HXUkih?pbuhQ3mL)E"> <mutation at="true"></mutation> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="variables_get" id="H=fwgeU*yM2BO1So/@rJ"> <field name="VAR" id="jD*[#Zlic1jmyurL%.%b" variabletype="">Wasser</field> </block> </value> <value name="AT"> <block type="math_number" id="Up65|^q^LW$4[4{Q2Kvh"> <field name="NUM">8</field> </block> </value> </block> </value> <value name="ADD4"> <block type="text_charAt" id="ds.0fi_$#ZlQ+?RhAo,4"> <mutation at="true"></mutation> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="variables_get" id="O|qHH_xUhqy?KE+,cKX2"> <field name="VAR" id="jD*[#Zlic1jmyurL%.%b" variabletype="">Wasser</field> </block> </value> <value name="AT"> <block type="math_number" id="bLvs%(U/*rs$Ld9Al1[+"> <field name="NUM">9</field> </block> </value> </block> </value> <value name="ADD5"> <block type="text_charAt" id="6OR:#lbqI-PRhCHNec9^"> <mutation at="true"></mutation> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="variables_get" id=":H4e}P$k[XW1ul.ATEA5"> <field name="VAR" id="jD*[#Zlic1jmyurL%.%b" variabletype="">Wasser</field> </block> </value> <value name="AT"> <block type="math_number" id="X4xw.sN^lzaqf}IPF.jh"> <field name="NUM">10</field> </block> </value> </block> </value> </block> </value> <next> <block type="timeouts_settimeout" id=".SMM.AW-`BYfdQ}ya?b1"> <field name="NAME">timeout3</field> <field name="DELAY">200</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="controls_if" id="ju/a2i7Frg:jTfpH!r}c"> <value name="IF0"> <block type="logic_compare" id="iF^jZ2ra(+[,1@C9!+=|"> <field name="OP">GT</field> <value name="A"> <block type="math_arithmetic" id="_GG[w[-[]ELfHI1|/,TP"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="Olf6S3dwBydhTC59hi/:"> <field name="NUM">1</field> </shadow> <block type="convert_tonumber" id="BL,kMdDU#u3!rMwPJmR*"> <value name="VALUE"> <block type="variables_get" id="PhuKa|3GsTTN8QxR{%AZ"> <field name="VAR" id="CrQs0Fj4!jTiB_=7Z{H#" variabletype="">Analog alt</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="u!#Qj:zrQsUXSN8{%.g1"> <field name="NUM">1</field> </shadow> <block type="convert_tonumber" id="OEPXck6@PFIlEp.OYnhd"> <value name="VALUE"> <block type="variables_get" id="7,s5XP+o{Z?X[7ll.+0Q"> <field name="VAR" id="Y%2waVBVJfgC:UsZNg9^" variabletype="">Analog</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="math_number" id="%At]Iu`?WR5ZfT:VCL#z"> <field name="NUM">0.5</field> </block> </value> </block> </value> <statement name="DO0"> <block type="math_change" id="DAIA1CzWMpcy853_!RS!"> <field name="VAR" id="+{wu7EACDqh[jz.w|UJ_" variabletype="">Digital</field> <value name="DELTA"> <shadow type="math_number" id="~^qVXIp-f$qYSGT|k(p*"> <field name="NUM">1</field> </shadow> </value> </block> </statement> <next> <block type="control" id="9n0als[H])_JXK;wZ;Rj"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Wasserverbrauch1.Digital</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="convert_tonumber" id="(V-dzVo;qF_Ad-#3qQ{U"> <value name="VALUE"> <block type="variables_get" id="YRQ;vYYHy!{m@:dXStQf"> <field name="VAR" id="+{wu7EACDqh[jz.w|UJ_" variabletype="">Digital</field> </block> </value> </block> </value> <next> <block type="control" id="y/fZ]IDy`tMrbrJLSaCC"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Wasserverbrauch1.Analog</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="convert_tonumber" id="duI29L)?T~xuD,TORa9@"> <value name="VALUE"> <block type="variables_get" id="+Y@Az*Mey}}NRlITw$Xi"> <field name="VAR" id="Y%2waVBVJfgC:UsZNg9^" variabletype="">Analog</field> </block> </value> </block> </value> <next> <block type="control" id="K2vn9_SQgwL|)u!!gl1|"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Wasserverbrauch1.Wasserverbrauch_aktualisiert</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="MM+jsw4UfO(.Hx.u/s:`"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="7Oaw?3HKyclxaVy@qE~p"> <field name="NUM">1</field> </shadow> <block type="convert_tonumber" id="XJ=s_p6$TZ)-avlBa((;"> <value name="VALUE"> <block type="variables_get" id="W0w=_,X/ejFNyHT1XV{R"> <field name="VAR" id="+{wu7EACDqh[jz.w|UJ_" variabletype="">Digital</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="|=f,]Pr,T6HC8laX|R;o"> <field name="NUM">1</field> </shadow> <block type="convert_tonumber" id="552=i|r`DG0,-Fa.z5km"> <value name="VALUE"> <block type="variables_get" id="9`[$K-.pLdS/93Sr7u]M"> <field name="VAR" id="Y%2waVBVJfgC:UsZNg9^" variabletype="">Analog</field> </block> </value> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> <block type="on_ext" id="@zG4;]iYO[gk6PE9A8Bd" x="-1788" y="137"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="bo2gx?dIMh?:HL#A@*J["> <field name="oid">parser.0.Wasserzähler</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="$^5i[4.V)UQ$0,R53n%|"> <field name="VAR" id="CrQs0Fj4!jTiB_=7Z{H#" variabletype="">Analog alt</field> <value name="VALUE"> <block type="variables_get" id="auf4Vpl?.5xl,2EQDC}x"> <field name="VAR" id="Y%2waVBVJfgC:UsZNg9^" variabletype="">Analog</field> </block> </value> <next> <block type="control" id="6DzKEv?-~d]3U=;Btcop"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Wasserverbrauch1.Wasserverbrauch_alt</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id="o5`@Rv8Ul:#hrNuvl,2|"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Wasserverbrauch_aktualisiert</field> </block> </value> </block> </next> </block> </statement> </block> <block type="on_ext" id="g0!@tN:hJ5,@IC03]C(R" x="-1787" y="337"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="i*|8`Z*]C1Z-aKXfx4qF"> <field name="oid">javascript.0.Wasserverbrauch1.Wasserverbrauch_aktualisiert</field> </shadow> </value> <statement name="STATEMENT"> <block type="timeouts_settimeout" id="9)silgejCBBBlJ^K5*h."> <field name="NAME">timeout2</field> <field name="DELAY">1000</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="controls_if" id="$_^*U)oNg;J39mNWX7iv"> <value name="IF0"> <block type="logic_compare" id="R+]z+~$9PRX.!`-n2j$_"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="1Q.u,.7hmJgpxgTS!yJJ"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Wasserverbrauch_aktualisiert</field> </block> </value> <value name="B"> <block type="get_value" id="*^w0O6:fgj}}S|y_?89S"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Wasserverbrauch_alt</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="z)/Gd*s9,-W6[D752=D?"> <field name="VAR" id="S~g:}fW6Tm:Aw?GxUkaZ" variabletype="">Wasser gerechnet</field> <value name="VALUE"> <block type="math_arithmetic" id="xt-H^j-:43Irbg7Fhml("> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="X_rWlPD~o/J^KhVZi%6o"> <field name="NUM">1</field> </shadow> <block type="get_value" id="A4Sx?OtCp2T?h#I(031U"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Wasserverbrauch_aktualisiert</field> </block> </value> <value name="B"> <shadow type="math_number" id="+qND:7;^kTj.azwuZHHi"> <field name="NUM">1</field> </shadow> <block type="get_value" id="@R6Vro4Waf_mK|.+!]^0"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Wasserverbrauch_alt</field> </block> </value> </block> </value> <next> <block type="control" id="0(_/h8O2,M[gEb`Ic4=2"> <mutation delay_input="false"></mutation> <field name="OID">hm-rega.0.8533</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="s)PN7Vw`prv!A?hv2mLf"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="E#zB^cvPPx!3cYPr+Pu{"> <field name="NUM">1</field> </shadow> <block type="math_rndfixed" id="A_V2Dl3Tco*!@[~Lr1n~"> <field name="n">4</field> <value name="x"> <shadow type="math_number" id="a?I?-VQtRV1uduc!*;@I"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="XY5vn6~5Da?Zt0namcfQ"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="TlPoMg6n6S:en?y89?T4"> <field name="NUM">1</field> </shadow> <block type="get_value" id="Il/T*4`06v:{m@*OFmkc"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Wasserverbrauch_aktualisiert</field> </block> </value> <value name="B"> <shadow type="math_number" id="%8A!l4mo_0a=h,ezfnVP"> <field name="NUM">1</field> </shadow> <block type="get_value" id="=TjWO/63[rWCTbDj7JUs"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Anfangszaehlerstand_heute</field> </block> </value> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="tn*R.05(D.%K3Cq(}nvg"> <field name="NUM">1000</field> </shadow> </value> </block> </value> <next> <block type="control" id="5fng!*j2(M,$$,YwlLHx"> <mutation delay_input="false"></mutation> <field name="OID">hm-rega.0.8568</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="j!|XN6hin]+7`7e88l18"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="!%YGCtSmGv.!]KU$#6Nw"> <field name="NUM">1</field> </shadow> <block type="math_rndfixed" id="-3@,nGkZ]@$FU1Ry}%PA"> <field name="n">4</field> <value name="x"> <shadow type="math_number" id="a?I?-VQtRV1uduc!*;@I"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="(E?id-LI#NfEL|Jt:.vZ"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="TlPoMg6n6S:en?y89?T4"> <field name="NUM">1</field> </shadow> <block type="get_value" id="0E2;EjD-PBt:GCDwPU~H"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Wasserverbrauch_aktualisiert</field> </block> </value> <value name="B"> <shadow type="math_number" id="%8A!l4mo_0a=h,ezfnVP"> <field name="NUM">1</field> </shadow> <block type="get_value" id="YDY5~1aA-=^]//;i6MJ+"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Wasserverbrauch_alt</field> </block> </value> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="NUZlH-[?T]-}p@iCL{Au"> <field name="NUM">1000</field> </shadow> </value> </block> </value> <next> <block type="control" id="oBT%X]5xBNnY,5AICE3X"> <mutation delay_input="false"></mutation> <field name="OID">hm-rega.0.8566</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="[nv%@@BX,N#hLq#S-k`+"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="CL~9xg^p8_Kzc5n_ImjG"> <field name="NUM">1</field> </shadow> <block type="math_rndfixed" id=",P%Ylnd^*u1LkcG9X]:W"> <field name="n">4</field> <value name="x"> <shadow type="math_number" id="a?I?-VQtRV1uduc!*;@I"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="|(*+rA~Ej?$2*?ityV)U"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="TlPoMg6n6S:en?y89?T4"> <field name="NUM">1</field> </shadow> <block type="get_value" id="]ziDJBvg89Wq:.R;J:!,"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Wasserverbrauch_aktualisiert</field> </block> </value> <value name="B"> <shadow type="math_number" id="%8A!l4mo_0a=h,ezfnVP"> <field name="NUM">1</field> </shadow> <block type="get_value" id="nd_9af.ZMA1/K1,S#U@Q"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Anfangszaehlerstand_Woche</field> </block> </value> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="s#NIPHF{^u=-UljnNO$r"> <field name="NUM">1000</field> </shadow> </value> </block> </value> <next> <block type="control" id="#z,-nejW?jGgjF|6|.H}"> <mutation delay_input="false"></mutation> <field name="OID">hm-rega.0.8648</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="y39]M!U/%X9b%6jp*4#}"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="CL~9xg^p8_Kzc5n_ImjG"> <field name="NUM">1</field> </shadow> <block type="math_rndfixed" id="2#^Z6@xqJOMGnvvjT6%?"> <field name="n">4</field> <value name="x"> <shadow type="math_number" id="a?I?-VQtRV1uduc!*;@I"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="UN.1V5+(r@))%J,=@gqY"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="TlPoMg6n6S:en?y89?T4"> <field name="NUM">1</field> </shadow> <block type="get_value" id="$mrk)426X5fx_+e!J_gK"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Wasserverbrauch_aktualisiert</field> </block> </value> <value name="B"> <shadow type="math_number" id="%8A!l4mo_0a=h,ezfnVP"> <field name="NUM">1</field> </shadow> <block type="get_value" id="/Z@4#mZokQ,L-w^bH.Tg"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Anfangszaehlerstand_Monat</field> </block> </value> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="Ha=O,ekrr9a?z]eu4Xs+"> <field name="NUM">1000</field> </shadow> </value> </block> </value> <next> <block type="control" id="=E[:Y4;({rV9PgxM??W#"> <mutation delay_input="false"></mutation> <field name="OID">hm-rega.0.8567</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_rndfixed" id="N~pEF;p}RibZHL@Jj%]8"> <field name="n">4</field> <value name="x"> <shadow type="math_number" id="a?I?-VQtRV1uduc!*;@I"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="(ypJq^YjyV_r2Tja[JzG"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="TlPoMg6n6S:en?y89?T4"> <field name="NUM">1</field> </shadow> <block type="get_value" id="-MMgXsvKFd?[}m13v}9o"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Wasserverbrauch_aktualisiert</field> </block> </value> <value name="B"> <shadow type="math_number" id="%8A!l4mo_0a=h,ezfnVP"> <field name="NUM">1</field> </shadow> <block type="get_value" id="iD:Yn+mvm5eH]y:k88K+"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Anfangszaehlerstand_Jahr</field> </block> </value> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </statement> </block> <block type="comment" id="ox+@jzn`KXVwX.fOTB$," x="-937" y="888"> <field name="COMMENT">Wasserverbrauch letzte 5 min zurücksetzen</field> <next> <block type="on_ext" id="j=c,w9.$Xq;DsB5^}pBB"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="}z+=RenMSy8(B@XhK@0K"> <field name="oid">hm-rega.0.8568</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="%|yEAWaJ*FP|KJ!T/+Y$"> <value name="IF0"> <block type="logic_compare" id="_EAAa*G$MT%4=Rg?[~bP"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="tZQSY0`YcA7JL[M$Ws@g"> <field name="ATTR">val</field> <field name="OID">hm-rega.0.8568</field> </block> </value> <value name="B"> <block type="math_number" id="Pd*)$#q#9Ay-w#:cv1+7"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="lU:dL+CfL4WMPIg8M38w"> <mutation delay_input="true"></mutation> <field name="OID">hm-rega.0.8568</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">5</field> <field name="UNIT">min</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="math_number" id="sH;+ugos5JXLrj_4BfDg"> <field name="NUM">0</field> </block> </value> </block> </statement> </block> </statement> </block> </next> </block> <block type="comment" id="qSxx=;Q,jlnWfNVxu*TC" x="-1688" y="1062"> <field name="COMMENT">reset heute</field> <next> <block type="schedule" id="v;%?AXWh:txx%4R+2:U,"> <field name="SCHEDULE">59 23 * * *</field> <statement name="STATEMENT"> <block type="control" id="o03K_LgrizESb@J0r`gL"> <mutation delay_input="false"></mutation> <field name="OID">hm-rega.0.8533</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="+|Dv5/%]/%.QIWBB+**C"> <field name="NUM">0</field> </block> </value> <next> <block type="control" id="8DJ|hXs^UV[]]q|j@$/@"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Wasserverbrauch1.Anfangszaehlerstand_heute</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id="q#8NRrtE|p##-plw;KZ9"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Wasserverbrauch_aktualisiert</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> <block type="comment" id="f}lW@jf:=d$f0yptTr$b" x="-1687" y="1262"> <field name="COMMENT">reset Woche</field> <next> <block type="schedule" id="CS=RSPfa:iN5AMzgx~+$"> <field name="SCHEDULE">59 23 * * 0</field> <statement name="STATEMENT"> <block type="control" id=".l7{U_lCbkh?eh[J76.L"> <mutation delay_input="false"></mutation> <field name="OID">hm-rega.0.8566</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="NQ{Xt.0IXvoF}I^AtomT"> <field name="NUM">0</field> </block> </value> <next> <block type="control" id="lf}%4*+o^Q{FU:7fxp|;"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Wasserverbrauch1.Anfangszaehlerstand_Woche</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id="nh{y8TyWjpjiIEhFd/tl"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Wasserverbrauch_aktualisiert</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> <block type="comment" id="K/RigU5g)ITrS$Z5%z%$" x="-1687" y="1462"> <field name="COMMENT">reset Monat</field> <next> <block type="schedule" id="I+d[tdGa*#NplJWq)l:D"> <field name="SCHEDULE">2 0 1 * *</field> <statement name="STATEMENT"> <block type="control" id="Xs0Vn%@[Z3LhUgSZi.{E"> <mutation delay_input="false"></mutation> <field name="OID">hm-rega.0.8648</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="!8%xuHUE*S.4byz]?#eV"> <field name="NUM">0</field> </block> </value> <next> <block type="control" id="$izuc,5%%3Gb_Y!X,+vb"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Wasserverbrauch1.Anfangszaehlerstand_Monat</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id="~}P$;7JTwiREk|;4H:.i"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Wasserverbrauch_aktualisiert</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> <block type="comment" id="oHR,JG*z8K2lOHmdJgUI" x="-1687" y="1662"> <field name="COMMENT">reset Jahr</field> <next> <block type="schedule" id="#CJ#r$^ohJ=^7
Und dann habe ich SV auf meiner CCU gefühlt hier kannst du aber auch DB im Iobroker füllen.
Gruß Julian
Wie ich schon angemerkt hatte, werden bei mir die "Digitalen" Zahlem (m³) nicht immer richtig erkannt. Das führte bei mir zu Verbrauchswerten, die nicht besonders aussagekräftig waren.
Dagegen habe ich beobachtet, das die Erkennung der Zeiger (analog) sehr zuverlässig funktioniert.
Ich habe mir erlaubt, dass Script von @mcchickents so umzubauen, dass nur noch diese Analogen Werte verwendet werden. die Digitalen (m³) werden nur noch im Script hochgezählt.
Ausgangspunkt sind die Parser Werte mit den Einstellungen von @mcchickents

mit Intervall von 300000 (5min)Ich habe des Script so umgebaut, das mit Anfangszählerständen gearbeitet wird (Tag; Woche; Monat; Jahr) Die dazugehörigen Objekte müssen (wo immer Ihr sie hin haben wollt) angelegt werden.
WICHTIG: Die Plausibilitätsprüfung muss ausgeschaltet sein, so das immer der gerade erkannte Wert im Parser mitgegeben wird.
Bei mir funktioniert das seit 1er Woche ohne Auffälligkeiten.
Ich würde mich über Tester freuen. Auch Verbesserungsvorschläge sind sehr willkommen.
Ich bin wahrlich kein Profi, was das Scripten betrifft.Hier das Blockly Script:
<xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="" id="+{wu7EACDqh[jz.w|UJ_">Digital</variable> <variable type="" id="CrQs0Fj4!jTiB_=7Z{H#">Analog alt</variable> <variable type="undefined" id="timeout2">timeout2</variable> <variable type="undefined" id="timeout">timeout</variable> <variable type="" id="Y%2waVBVJfgC:UsZNg9^">Analog</variable> <variable type="" id="jD*[#Zlic1jmyurL%.%b">Wasser</variable> <variable type="" id="S~g:}fW6Tm:Aw?GxUkaZ">Wasser gerechnet</variable> <variable type="undefined" id="timeout3">timeout3</variable> </variables> <block type="variables_set" id="GE[E%kt%s0mH*y[T,]`|" x="-1813" y="-637"> <field name="VAR" id="+{wu7EACDqh[jz.w|UJ_" variabletype="">Digital</field> <value name="VALUE"> <block type="get_value" id="f#L%AXrk=Ex$lR)!ag{6"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Digital</field> </block> </value> </block> <block type="on_ext" id="hW,coeg6nL[_/oRIW8`_" x="-1288" y="-612"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="#1+|n}n82E%YcW~~(OAJ"> <field name="oid">javascript.0.Wasserverbrauch1.Anfangszaehlerstand</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="[3s08X/c2]b+g09k=MS2"> <field name="VAR" id="+{wu7EACDqh[jz.w|UJ_" variabletype="">Digital</field> <value name="VALUE"> <block type="get_value" id="~ZWWb=S%vhPDv}PO8g-~"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Anfangszaehlerstand</field> </block> </value> </block> </statement> </block> <block type="comment" id="{)~[qYJwM%HmTqZC[Dme" x="-1787" y="-537"> <field name="COMMENT">Werte von Url Ausgabe aufbereiten und als Zahl in neuen DB</field> <next> <block type="on_ext" id="O@t;)N+2$SFNG$?Gf{h2"> <mutation items="1"></mutation> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="9K|x1o#+%6GQb*;p%3O#"> <field name="oid">parser.0.Wasserzähler</field> </shadow> </value> <statement name="STATEMENT"> <block type="timeouts_settimeout" id="W]bzQri^_8bvqpKQOrEV"> <field name="NAME">timeout</field> <field name="DELAY">200</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="variables_set" id="5w0B^2Jki=M**PAtqc+u"> <field name="VAR" id="jD*[#Zlic1jmyurL%.%b" variabletype="">Wasser</field> <value name="VALUE"> <block type="get_value" id=";?U(`UWCL4fsnK8#0#*["> <field name="ATTR">val</field> <field name="OID">parser.0.Wasserzähler</field> </block> </value> <next> <block type="variables_set" id="ixFd@J8)L1oE}OCVbtYq"> <field name="VAR" id="Y%2waVBVJfgC:UsZNg9^" variabletype="">Analog</field> <value name="VALUE"> <block type="text_join" id="/fqyB}E;PHmjBsJJ`0Fh"> <mutation items="6"></mutation> <value name="ADD0"> <block type="math_number" id="SMJBX;~T(pjV^d0~+S)y"> <field name="NUM">0</field> </block> </value> <value name="ADD1"> <block type="text" id="u[@%#8#fi4C^yX.r%d!I"> <field name="TEXT">.</field> </block> </value> <value name="ADD2"> <block type="text_charAt" id="kJ_eC,oa_KKeEhwykd:J"> <mutation at="true"></mutation> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="variables_get" id="-y({kI6sfR,nQAjVkA]A"> <field name="VAR" id="jD*[#Zlic1jmyurL%.%b" variabletype="">Wasser</field> </block> </value> <value name="AT"> <block type="math_number" id="hr%jA*b+T]5*Ca|K9m+4"> <field name="NUM">7</field> </block> </value> </block> </value> <value name="ADD3"> <block type="text_charAt" id="5.{HXUkih?pbuhQ3mL)E"> <mutation at="true"></mutation> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="variables_get" id="H=fwgeU*yM2BO1So/@rJ"> <field name="VAR" id="jD*[#Zlic1jmyurL%.%b" variabletype="">Wasser</field> </block> </value> <value name="AT"> <block type="math_number" id="Up65|^q^LW$4[4{Q2Kvh"> <field name="NUM">8</field> </block> </value> </block> </value> <value name="ADD4"> <block type="text_charAt" id="ds.0fi_$#ZlQ+?RhAo,4"> <mutation at="true"></mutation> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="variables_get" id="O|qHH_xUhqy?KE+,cKX2"> <field name="VAR" id="jD*[#Zlic1jmyurL%.%b" variabletype="">Wasser</field> </block> </value> <value name="AT"> <block type="math_number" id="bLvs%(U/*rs$Ld9Al1[+"> <field name="NUM">9</field> </block> </value> </block> </value> <value name="ADD5"> <block type="text_charAt" id="6OR:#lbqI-PRhCHNec9^"> <mutation at="true"></mutation> <field name="WHERE">FROM_START</field> <value name="VALUE"> <block type="variables_get" id=":H4e}P$k[XW1ul.ATEA5"> <field name="VAR" id="jD*[#Zlic1jmyurL%.%b" variabletype="">Wasser</field> </block> </value> <value name="AT"> <block type="math_number" id="X4xw.sN^lzaqf}IPF.jh"> <field name="NUM">10</field> </block> </value> </block> </value> </block> </value> <next> <block type="timeouts_settimeout" id=".SMM.AW-`BYfdQ}ya?b1"> <field name="NAME">timeout3</field> <field name="DELAY">200</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="controls_if" id="ju/a2i7Frg:jTfpH!r}c"> <value name="IF0"> <block type="logic_compare" id="iF^jZ2ra(+[,1@C9!+=|"> <field name="OP">GT</field> <value name="A"> <block type="math_arithmetic" id="_GG[w[-[]ELfHI1|/,TP"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="Olf6S3dwBydhTC59hi/:"> <field name="NUM">1</field> </shadow> <block type="convert_tonumber" id="BL,kMdDU#u3!rMwPJmR*"> <value name="VALUE"> <block type="variables_get" id="PhuKa|3GsTTN8QxR{%AZ"> <field name="VAR" id="CrQs0Fj4!jTiB_=7Z{H#" variabletype="">Analog alt</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="u!#Qj:zrQsUXSN8{%.g1"> <field name="NUM">1</field> </shadow> <block type="convert_tonumber" id="OEPXck6@PFIlEp.OYnhd"> <value name="VALUE"> <block type="variables_get" id="7,s5XP+o{Z?X[7ll.+0Q"> <field name="VAR" id="Y%2waVBVJfgC:UsZNg9^" variabletype="">Analog</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="math_number" id="%At]Iu`?WR5ZfT:VCL#z"> <field name="NUM">0.5</field> </block> </value> </block> </value> <statement name="DO0"> <block type="math_change" id="DAIA1CzWMpcy853_!RS!"> <field name="VAR" id="+{wu7EACDqh[jz.w|UJ_" variabletype="">Digital</field> <value name="DELTA"> <shadow type="math_number" id="~^qVXIp-f$qYSGT|k(p*"> <field name="NUM">1</field> </shadow> </value> </block> </statement> <next> <block type="control" id="9n0als[H])_JXK;wZ;Rj"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Wasserverbrauch1.Digital</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="convert_tonumber" id="(V-dzVo;qF_Ad-#3qQ{U"> <value name="VALUE"> <block type="variables_get" id="YRQ;vYYHy!{m@:dXStQf"> <field name="VAR" id="+{wu7EACDqh[jz.w|UJ_" variabletype="">Digital</field> </block> </value> </block> </value> <next> <block type="control" id="y/fZ]IDy`tMrbrJLSaCC"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Wasserverbrauch1.Analog</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="convert_tonumber" id="duI29L)?T~xuD,TORa9@"> <value name="VALUE"> <block type="variables_get" id="+Y@Az*Mey}}NRlITw$Xi"> <field name="VAR" id="Y%2waVBVJfgC:UsZNg9^" variabletype="">Analog</field> </block> </value> </block> </value> <next> <block type="control" id="K2vn9_SQgwL|)u!!gl1|"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Wasserverbrauch1.Wasserverbrauch_aktualisiert</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="MM+jsw4UfO(.Hx.u/s:`"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="7Oaw?3HKyclxaVy@qE~p"> <field name="NUM">1</field> </shadow> <block type="convert_tonumber" id="XJ=s_p6$TZ)-avlBa((;"> <value name="VALUE"> <block type="variables_get" id="W0w=_,X/ejFNyHT1XV{R"> <field name="VAR" id="+{wu7EACDqh[jz.w|UJ_" variabletype="">Digital</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="|=f,]Pr,T6HC8laX|R;o"> <field name="NUM">1</field> </shadow> <block type="convert_tonumber" id="552=i|r`DG0,-Fa.z5km"> <value name="VALUE"> <block type="variables_get" id="9`[$K-.pLdS/93Sr7u]M"> <field name="VAR" id="Y%2waVBVJfgC:UsZNg9^" variabletype="">Analog</field> </block> </value> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> <block type="on_ext" id="@zG4;]iYO[gk6PE9A8Bd" x="-1788" y="137"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="bo2gx?dIMh?:HL#A@*J["> <field name="oid">parser.0.Wasserzähler</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="$^5i[4.V)UQ$0,R53n%|"> <field name="VAR" id="CrQs0Fj4!jTiB_=7Z{H#" variabletype="">Analog alt</field> <value name="VALUE"> <block type="variables_get" id="auf4Vpl?.5xl,2EQDC}x"> <field name="VAR" id="Y%2waVBVJfgC:UsZNg9^" variabletype="">Analog</field> </block> </value> <next> <block type="control" id="6DzKEv?-~d]3U=;Btcop"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Wasserverbrauch1.Wasserverbrauch_alt</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id="o5`@Rv8Ul:#hrNuvl,2|"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Wasserverbrauch_aktualisiert</field> </block> </value> </block> </next> </block> </statement> </block> <block type="on_ext" id="g0!@tN:hJ5,@IC03]C(R" x="-1787" y="337"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="i*|8`Z*]C1Z-aKXfx4qF"> <field name="oid">javascript.0.Wasserverbrauch1.Wasserverbrauch_aktualisiert</field> </shadow> </value> <statement name="STATEMENT"> <block type="timeouts_settimeout" id="9)silgejCBBBlJ^K5*h."> <field name="NAME">timeout2</field> <field name="DELAY">1000</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="controls_if" id="$_^*U)oNg;J39mNWX7iv"> <value name="IF0"> <block type="logic_compare" id="R+]z+~$9PRX.!`-n2j$_"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="1Q.u,.7hmJgpxgTS!yJJ"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Wasserverbrauch_aktualisiert</field> </block> </value> <value name="B"> <block type="get_value" id="*^w0O6:fgj}}S|y_?89S"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Wasserverbrauch_alt</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="z)/Gd*s9,-W6[D752=D?"> <field name="VAR" id="S~g:}fW6Tm:Aw?GxUkaZ" variabletype="">Wasser gerechnet</field> <value name="VALUE"> <block type="math_arithmetic" id="xt-H^j-:43Irbg7Fhml("> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="X_rWlPD~o/J^KhVZi%6o"> <field name="NUM">1</field> </shadow> <block type="get_value" id="A4Sx?OtCp2T?h#I(031U"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Wasserverbrauch_aktualisiert</field> </block> </value> <value name="B"> <shadow type="math_number" id="+qND:7;^kTj.azwuZHHi"> <field name="NUM">1</field> </shadow> <block type="get_value" id="@R6Vro4Waf_mK|.+!]^0"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Wasserverbrauch_alt</field> </block> </value> </block> </value> <next> <block type="control" id="0(_/h8O2,M[gEb`Ic4=2"> <mutation delay_input="false"></mutation> <field name="OID">hm-rega.0.8533</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="s)PN7Vw`prv!A?hv2mLf"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="E#zB^cvPPx!3cYPr+Pu{"> <field name="NUM">1</field> </shadow> <block type="math_rndfixed" id="A_V2Dl3Tco*!@[~Lr1n~"> <field name="n">4</field> <value name="x"> <shadow type="math_number" id="a?I?-VQtRV1uduc!*;@I"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="XY5vn6~5Da?Zt0namcfQ"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="TlPoMg6n6S:en?y89?T4"> <field name="NUM">1</field> </shadow> <block type="get_value" id="Il/T*4`06v:{m@*OFmkc"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Wasserverbrauch_aktualisiert</field> </block> </value> <value name="B"> <shadow type="math_number" id="%8A!l4mo_0a=h,ezfnVP"> <field name="NUM">1</field> </shadow> <block type="get_value" id="=TjWO/63[rWCTbDj7JUs"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Anfangszaehlerstand_heute</field> </block> </value> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="tn*R.05(D.%K3Cq(}nvg"> <field name="NUM">1000</field> </shadow> </value> </block> </value> <next> <block type="control" id="5fng!*j2(M,$$,YwlLHx"> <mutation delay_input="false"></mutation> <field name="OID">hm-rega.0.8568</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="j!|XN6hin]+7`7e88l18"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="!%YGCtSmGv.!]KU$#6Nw"> <field name="NUM">1</field> </shadow> <block type="math_rndfixed" id="-3@,nGkZ]@$FU1Ry}%PA"> <field name="n">4</field> <value name="x"> <shadow type="math_number" id="a?I?-VQtRV1uduc!*;@I"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="(E?id-LI#NfEL|Jt:.vZ"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="TlPoMg6n6S:en?y89?T4"> <field name="NUM">1</field> </shadow> <block type="get_value" id="0E2;EjD-PBt:GCDwPU~H"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Wasserverbrauch_aktualisiert</field> </block> </value> <value name="B"> <shadow type="math_number" id="%8A!l4mo_0a=h,ezfnVP"> <field name="NUM">1</field> </shadow> <block type="get_value" id="YDY5~1aA-=^]//;i6MJ+"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Wasserverbrauch_alt</field> </block> </value> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="NUZlH-[?T]-}p@iCL{Au"> <field name="NUM">1000</field> </shadow> </value> </block> </value> <next> <block type="control" id="oBT%X]5xBNnY,5AICE3X"> <mutation delay_input="false"></mutation> <field name="OID">hm-rega.0.8566</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="[nv%@@BX,N#hLq#S-k`+"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="CL~9xg^p8_Kzc5n_ImjG"> <field name="NUM">1</field> </shadow> <block type="math_rndfixed" id=",P%Ylnd^*u1LkcG9X]:W"> <field name="n">4</field> <value name="x"> <shadow type="math_number" id="a?I?-VQtRV1uduc!*;@I"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="|(*+rA~Ej?$2*?ityV)U"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="TlPoMg6n6S:en?y89?T4"> <field name="NUM">1</field> </shadow> <block type="get_value" id="]ziDJBvg89Wq:.R;J:!,"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Wasserverbrauch_aktualisiert</field> </block> </value> <value name="B"> <shadow type="math_number" id="%8A!l4mo_0a=h,ezfnVP"> <field name="NUM">1</field> </shadow> <block type="get_value" id="nd_9af.ZMA1/K1,S#U@Q"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Anfangszaehlerstand_Woche</field> </block> </value> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="s#NIPHF{^u=-UljnNO$r"> <field name="NUM">1000</field> </shadow> </value> </block> </value> <next> <block type="control" id="#z,-nejW?jGgjF|6|.H}"> <mutation delay_input="false"></mutation> <field name="OID">hm-rega.0.8648</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="y39]M!U/%X9b%6jp*4#}"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="CL~9xg^p8_Kzc5n_ImjG"> <field name="NUM">1</field> </shadow> <block type="math_rndfixed" id="2#^Z6@xqJOMGnvvjT6%?"> <field name="n">4</field> <value name="x"> <shadow type="math_number" id="a?I?-VQtRV1uduc!*;@I"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="UN.1V5+(r@))%J,=@gqY"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="TlPoMg6n6S:en?y89?T4"> <field name="NUM">1</field> </shadow> <block type="get_value" id="$mrk)426X5fx_+e!J_gK"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Wasserverbrauch_aktualisiert</field> </block> </value> <value name="B"> <shadow type="math_number" id="%8A!l4mo_0a=h,ezfnVP"> <field name="NUM">1</field> </shadow> <block type="get_value" id="/Z@4#mZokQ,L-w^bH.Tg"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Anfangszaehlerstand_Monat</field> </block> </value> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="Ha=O,ekrr9a?z]eu4Xs+"> <field name="NUM">1000</field> </shadow> </value> </block> </value> <next> <block type="control" id="=E[:Y4;({rV9PgxM??W#"> <mutation delay_input="false"></mutation> <field name="OID">hm-rega.0.8567</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_rndfixed" id="N~pEF;p}RibZHL@Jj%]8"> <field name="n">4</field> <value name="x"> <shadow type="math_number" id="a?I?-VQtRV1uduc!*;@I"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="(ypJq^YjyV_r2Tja[JzG"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="TlPoMg6n6S:en?y89?T4"> <field name="NUM">1</field> </shadow> <block type="get_value" id="-MMgXsvKFd?[}m13v}9o"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Wasserverbrauch_aktualisiert</field> </block> </value> <value name="B"> <shadow type="math_number" id="%8A!l4mo_0a=h,ezfnVP"> <field name="NUM">1</field> </shadow> <block type="get_value" id="iD:Yn+mvm5eH]y:k88K+"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Anfangszaehlerstand_Jahr</field> </block> </value> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </statement> </block> <block type="comment" id="ox+@jzn`KXVwX.fOTB$," x="-937" y="888"> <field name="COMMENT">Wasserverbrauch letzte 5 min zurücksetzen</field> <next> <block type="on_ext" id="j=c,w9.$Xq;DsB5^}pBB"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="}z+=RenMSy8(B@XhK@0K"> <field name="oid">hm-rega.0.8568</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="%|yEAWaJ*FP|KJ!T/+Y$"> <value name="IF0"> <block type="logic_compare" id="_EAAa*G$MT%4=Rg?[~bP"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="tZQSY0`YcA7JL[M$Ws@g"> <field name="ATTR">val</field> <field name="OID">hm-rega.0.8568</field> </block> </value> <value name="B"> <block type="math_number" id="Pd*)$#q#9Ay-w#:cv1+7"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="lU:dL+CfL4WMPIg8M38w"> <mutation delay_input="true"></mutation> <field name="OID">hm-rega.0.8568</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">5</field> <field name="UNIT">min</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="math_number" id="sH;+ugos5JXLrj_4BfDg"> <field name="NUM">0</field> </block> </value> </block> </statement> </block> </statement> </block> </next> </block> <block type="comment" id="qSxx=;Q,jlnWfNVxu*TC" x="-1688" y="1062"> <field name="COMMENT">reset heute</field> <next> <block type="schedule" id="v;%?AXWh:txx%4R+2:U,"> <field name="SCHEDULE">59 23 * * *</field> <statement name="STATEMENT"> <block type="control" id="o03K_LgrizESb@J0r`gL"> <mutation delay_input="false"></mutation> <field name="OID">hm-rega.0.8533</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="+|Dv5/%]/%.QIWBB+**C"> <field name="NUM">0</field> </block> </value> <next> <block type="control" id="8DJ|hXs^UV[]]q|j@$/@"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Wasserverbrauch1.Anfangszaehlerstand_heute</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id="q#8NRrtE|p##-plw;KZ9"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Wasserverbrauch_aktualisiert</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> <block type="comment" id="f}lW@jf:=d$f0yptTr$b" x="-1687" y="1262"> <field name="COMMENT">reset Woche</field> <next> <block type="schedule" id="CS=RSPfa:iN5AMzgx~+$"> <field name="SCHEDULE">59 23 * * 0</field> <statement name="STATEMENT"> <block type="control" id=".l7{U_lCbkh?eh[J76.L"> <mutation delay_input="false"></mutation> <field name="OID">hm-rega.0.8566</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="NQ{Xt.0IXvoF}I^AtomT"> <field name="NUM">0</field> </block> </value> <next> <block type="control" id="lf}%4*+o^Q{FU:7fxp|;"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Wasserverbrauch1.Anfangszaehlerstand_Woche</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id="nh{y8TyWjpjiIEhFd/tl"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Wasserverbrauch_aktualisiert</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> <block type="comment" id="K/RigU5g)ITrS$Z5%z%$" x="-1687" y="1462"> <field name="COMMENT">reset Monat</field> <next> <block type="schedule" id="I+d[tdGa*#NplJWq)l:D"> <field name="SCHEDULE">2 0 1 * *</field> <statement name="STATEMENT"> <block type="control" id="Xs0Vn%@[Z3LhUgSZi.{E"> <mutation delay_input="false"></mutation> <field name="OID">hm-rega.0.8648</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="!8%xuHUE*S.4byz]?#eV"> <field name="NUM">0</field> </block> </value> <next> <block type="control" id="$izuc,5%%3Gb_Y!X,+vb"> <mutation delay_input="false"></mutation> <field name="OID">javascript.0.Wasserverbrauch1.Anfangszaehlerstand_Monat</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="get_value" id="~}P$;7JTwiREk|;4H:.i"> <field name="ATTR">val</field> <field name="OID">javascript.0.Wasserverbrauch1.Wasserverbrauch_aktualisiert</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> <block type="comment" id="oHR,JG*z8K2lOHmdJgUI" x="-1687" y="1662"> <field name="COMMENT">reset Jahr</field> <next> <block type="schedule" id="#CJ#r$^ohJ=^7
