Hauptmenü

HTTPMOD - JUDO isoft Plus

Begonnen von ch.eick, 15 Juni 2020, 19:50:38

Vorheriges Thema - Nächstes Thema

ch.eick

Zitat
Was soll ich da machen? Steht die Winterzeit nicht auf Automatik?
Die i-Soft-plus ist bei mir mit einer FB verbunden, von der Sie die Zeit bezieht.
Warum diese Zeit anders ist als von meinem fhem-lapi, der auch die Zeit bezieht, kann ich Dir leider nicht beantworten.
(Vermutlich haben die Programmierer eine andere Zeitzone eingestellt)
Da ich mich mit HTTPMOD und regex nicht auskenne, dachte ich Dir könnte dazu etwas einfallen.

Das JUDO_iSoft Device fragt nur das Gerät ab und erstellt eventuell nicht vorhandene readings.

Kann man die Zeit korrekt setzen, damit es wieder stimmt?
Wenn Du etwas mehr API Analyse lieferst kann ich es mir anschauen. Momentan ist das für mich nicht fassbar, da ich keine APP verwende und nicht in den keller laufen möchte :-)
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Sunny

#31
Moin Christian,

Zitat von: ch.eick am 10 Oktober 2020, 17:30:51
Da habe ich noch garnicht mit experimentiert und kenne die Bedeutung nicht. Das könntest Du mal bitte erklären, dann nehme ich es auf.
In der App ist es unter Leckageschutz/"Max. Entnahmedauer". Im starteformat hatte ich es "Leckage Zeit" genannt. Es ist die Zeit, wie lange maximal das H²O "laufen" darf, bevor der Leckageschutz schließt.
Zitat von: ch.eick am 10 Oktober 2020, 17:30:51
Ich schreibe im ersten Post immer oben die letzten Neuerungen mit Datum rein. Nur heute ging es mal schlag auf schlag, wenn schonmal jemand testet :-)
Was hälst Du von attr xyz comment Datum Uhrzeit
Das mit DBLog passt schon. ;) Wer die Daten übergibt ist doch Jacke wie Hose. ;D
Zitat von: ch.eick am 10 Oktober 2020, 17:47:41
Kann man die Zeit korrekt setzen, damit es wieder stimmt?
Nicht das ich wüsste, habe nur eine Feste Ip-Adr. und den NTP zugewiesen. Kann aber gerade nicht im Display nachsehen...

Zitat von: ch.eick am 10 Oktober 2020, 17:48:50
Ich habe einen direkten Mail Kontakt
Lass mich raten, Herr Herr.. 

Schönes WE
sunny

PS: Ich hoffe Dein Keller ist nicht 100 Etagen entfernt.

Gerade noch einmal im Pdf nach geschaut es sind ca. 25l pro Regeneration. Hatte ich mir wohl verkehrt beim Telefonat notiert.
Hier noch der Link zur "App"  https://www.myjudo.eu/ oder https://www.ju-control.app und zum PDF https://judo.eu/app/downloads/files/de/8203035/manuals/1702902_202007.pdf

Vielleich hilft Dir "get xyz 53_regeneration" settings_Regeneration 192, lso, lsu das es bei mir sind das gerade  "7"  sind.

Auch sollte evt. erwähnt werden das
Zitat von: ch.eick am 15 Juni 2020, 19:50:38

#### Diese readings sollten gesetzt werden, da sie von einigen Abfragen beim http get verwendet werden.
setstate JUDO_iSoft_test 2020-06-11 22:41:12 _DAY 1
setstate JUDO_iSoft_test 2020-06-11 18:10:39 _MONTH 06
setstate JUDO_iSoft_test 2020-06-11 22:58:40 _OFFSET -1
setstate JUDO_iSoft_test 2020-06-11 18:10:54 _YEAR 2020

es keine Redings von "consumption_WaterWeeklyByDay-xyz" gibt, wenn die Anlage nach dem 01.06.2020 installiert wurde.

Die Doif's, habe ich nocht nicht getestet. Auf dem Test fhem läuft kein DBLog.
FHEM 6.0 (RPi's 1b-4,CeleronM,Odroid C1+)
1-Wire (DS18B20,DS2406) |miniCUL|miniCUL868WLAN|HM|IT(-1500,LR-3500) |FB6591,FB7490,FB7580|DECT200|Powerline546E|520E|openwrt
Anfänger: Linux,FHEM+Perl

ch.eick

Hallo Sunny,

jetzt habe ich auch mal Fragen :-)

- Mit welchem Wert kann ich die nachgefüllte Salzmenge angeben? Ist das 46_salt_quantity ?
- Was beeinflusst den die 59_abstraction_time ?

Wenn noch etwas fehlt brauche ich eine aktuelle Liste. Ich habe da etwas den Überblick verloren ;-)
Für die Zeiteinstellung habe ich in der API nichts gefunden.
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Sunny

Moinsen Christian;

Zitat von: ch.eick am 11 Oktober 2020, 10:31:45
- Mit welchem Wert kann ich die nachgefüllte Salzmenge angeben? Ist das 46_salt_quantity ?
Jupp in kg.

Zitat von: ch.eick am 11 Oktober 2020, 10:31:45?
- Was beeinflusst den die 59_abstraction_time ?
Zitat von: Sunny am 10 Oktober 2020, 18:19:32
In der App ist es unter Leckageschutz/"Max. Entnahmedauer". Im starteformat hatte ich es "Leckage Zeit" genannt. Es ist die Zeit, wie lange maximal das H²O "laufen" darf, bevor der Leckageschutz schließt. Was hälst Du von attr xyz comment Datum Uhrzeit
Unter "Einstellungen" => " Leckageschutz " => "Max. Entnahmedauer"  ;)
Habe gerade versucht den Slider mit "00:10,00:10,10:00" einzustellen. Leider nur "NaN".

Mit dankenden Grüßen
sunny
FHEM 6.0 (RPi's 1b-4,CeleronM,Odroid C1+)
1-Wire (DS18B20,DS2406) |miniCUL|miniCUL868WLAN|HM|IT(-1500,LR-3500) |FB6591,FB7490,FB7580|DECT200|Powerline546E|520E|openwrt
Anfänger: Linux,FHEM+Perl

Sunny

#34
Moin Christian,

Deine letzte Versin läuft jetzt auf meinen Lapi.
Jetzt werde ich noch einiges anpassen auf z.Z. "consumption_WaterMonthlyByDay-xyz".

Zitat von: ch.eick am 11 Oktober 2020, 10:31:45
Wenn noch etwas fehlt brauche ich eine aktuelle Liste. Ich habe da etwas den Überblick verloren ;-)
1. Was ich persönlich schön finden würde, entwerder die Nomenklatur der App oder die kurze aus dem Wiki übernehmen.

2.
Zitat von: Sunny am 10 Oktober 2020, 18:19:32
Was hälst Du von attr xyz comment Datum Uhrzeit

3.
Zitat von: Sunny am 10 Oktober 2020, 18:19:32
Auch sollte evt. erwähnt werden das es keine Redings von "consumption_WaterWeeklyByDay-xyz" gibt, wenn die Anlage nach dem 01.06.2020 installiert wurde.
4.
Zitat von: Sunny am 10 Oktober 2020, 18:19:32
Vielleich hilft Dir "get xyz 53_regeneration" settings_Regeneration 192, lso, lsu das es bei mir sind das gerade  "7"  sind.
5. Zur H²O-Härte könnte "Mensch" noch erwähnen, das bei einer alten Kupferrohr-Installation unter 6°dH es evt. zu "Rohrbrüchen" kommen kann.
6. Die "Slider" an passen. Meine angepassten:
attr JUDO_iSoft_test set48Hint slider,6,1,10
attr JUDO_iSoft_test set61Hint slider,0,500,5000
attr JUDO_iSoft_test set63Hint slider,100,100,3000

7. Ein aktuelles Monats-Reading wäre schön. z.B. "consumption_water_monthly"

Mehr fällt mir z.Z. nicht ein.

Folgedes DOIF nutze ich z.Z.
defmod H2O_hole_werte_test_di DOIF ## cmd_1 \
([+00:01])\
\
(get JUDO_iSoft_test 35_water_current) \
(get JUDO_iSoft_test 41_water_of_days) \
(get JUDO_iSoft_test 50_natural_hardness) \
(get JUDO_iSoft_test 58_valve_waterstop) \
\
\
## cmd_2 \
DOELSEIF\
(\
[+[1]:29]\
and\
[+[1]:59]\
) \
\
(get JUDO_iSoft_test 40_water_total)\
(get JUDO_iSoft_test 42_water_average) \
(get JUDO_iSoft_test 43_actual_abstraction_time) \
(get JUDO_iSoft_test 44_actual_quantity) \
(get JUDO_iSoft_test 45_salt_quantity) \
(get JUDO_iSoft_test 47_salt_range) \
(get JUDO_iSoft_test 49_residual_hardness) \
(get JUDO_iSoft_test 60_abstraction_time) \
(get JUDO_iSoft_test 62_flow_rate) \
(get JUDO_iSoft_test 64_quantity) \
\
## cmd_3 hole Wert  um 23:59 Uhr \
DOELSEIF\
([23:59]) \
(get JUDO_iSoft_test 38_water_monthly) \
(get JUDO_iSoft_test 39_water_yearly) \
(get JUDO_iSoft_test 40_water_total) \
(get JUDO_iSoft_test 45_salt_quantity) \
(get JUDO_iSoft_test 47_salt_range) \
(get JUDO_iSoft_test 49_residual_hardness) \
(get JUDO_iSoft_test 50_natural_hardness)
attr H2O_hole_werte_test_di DbLogExclude .*
attr H2O_hole_werte_test_di disable 0
attr H2O_hole_werte_test_di do always
attr H2O_hole_werte_test_di event-on-change-reading state,.*
attr H2O_hole_werte_test_di group H2O_werte
attr H2O_hole_werte_test_di room H2O,Software
attr H2O_hole_werte_test_di wait 0,3,3,3,3:0,3,3,3,3,3,3,3,3,3:0,3,3,3,3,3
attr H2O_hole_werte_test_di webCmd cmd_1:cmd_2:cmd_3


Beste Grüße
sunny
FHEM 6.0 (RPi's 1b-4,CeleronM,Odroid C1+)
1-Wire (DS18B20,DS2406) |miniCUL|miniCUL868WLAN|HM|IT(-1500,LR-3500) |FB6591,FB7490,FB7580|DECT200|Powerline546E|520E|openwrt
Anfänger: Linux,FHEM+Perl

ch.eick

ZitatJetzt werde ich noch einiges anpassen auf z.Z. "consumption_WaterMonthlyByDay-xyz"
Meinst Du dreistellige Nummern, oder was ist hier nicht richtig?

Was ich persönlich schön finden würde, entweder die Nomenklatur der App oder die kurze aus dem Wiki übernehmen.
Ich hatte mich an die API gehalten, kannst Du bitte die attr Definitionen mit den anderen Namen liefern, dann könnte man drei Varianten anbieten.
Hier aber bitte nur die setXXName oder getXXName :-)

Versionsnummern wurde auch bei einem anderen Projekt schon angefragt, dass mache ich sobald ich etwas neu anfasse.

ZitatWas ich persönlich schön finden würde, entwerder die Nomenklatur der App oder die kurze aus dem Wiki übernehmen.
Wir haben doch die selbe Firmware??? Ist das in der neueren nicht mehr drin?

Zitatsettings_Regeneration 192, lso, lsu
Okay, meine Anlage läuft schon einige Jahre.
Was bedeutet da Iso und Isu ?

ZitatZur H²O-Härte könnte "Mensch" noch erwähnen, das bei einer alten Kupferrohr-Installation unter 6°dH es evt. zu "Rohrbrüchen" kommen kann.
Schreibe ich ins Wiki, ich habe Kunststoff mit Alu Kern

ZitatDie "Slider" an passen. Meine angepassten:
Habe ich bei mir übernommen und kommt mit dem nächsten Update in den ersten Post.

ZitatFolgedes DOIF nutze ich z.Z.
Das nehme ich dann auch mit in den ersten Post auf.
Da sieht man auch den Tageswechsel um 1:00 Uhr.
Kannst Du das noch etwas mit einem text versehen, damit eine erklärung dabei ist?
[+[1]:29] and [+[1]:59]
Warum zwei mal?

ZitatHabe gerade versucht den Slider mit "00:10,00:10,10:00" einzustellen. Leider nur "NaN".
Das kann der Slider nicht :-)
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Sunny

Moin Chritian,

leider ist mir Heute aufgefallen, das seit Deiner letzten "Version", mir Heute von 0 Uhr bis 1 Uhr einige Daten fehlen.
Hängt wohl mit "getxyzMaxAge 86400" zusammen.

Zitat von: ch.eick am 11 Oktober 2020, 17:26:19
Meinst Du dreistellige Nummern, oder was ist hier nicht richtig?
Nein, nicht dreistellig. Hatte nur für meinen Dummy andere Namen verwendet.
Zitat von: ch.eick am 11 Oktober 2020, 17:26:19
Wir haben doch die selbe Firmware??? Ist das in der neueren nicht mehr drin?
Verstehe leider nicht was Du damit meinst.

Zitat von: ch.eick am 11 Oktober 2020, 17:26:19
Was bedeutet da Iso und Isu ?
Das weiss ich leider auch nicht.

Zitat von: ch.eick am 11 Oktober 2020, 17:26:19
Das nehme ich dann auch mit in den ersten Post auf.
Ist durch "getxyzMaxAge 86400" so leider nicht wirklich zugebrauchen.

<OT an>
Zitat
Mir geht es in erster Linie darum "Live-Daten" und den "Live-Zustand" zu erhalten und dieses in eine DB zu schreiben.
Daher werte ich z.Z. für den H²O-Verbrauch nur folgende Readings aus:"consumption_WaterCurrentRaw"
"consumption_WaterCurrentSoft"
"consumption_WaterTotalRaw"
"consumption_WaterTotalSoft"


Ich hatte versucht die Wiki-Version https://wiki.fhem.de/wiki/JUDO_iSoft_Plus um Deine neuen "Readings" und "Set's" zu erweitern.
Dieses schein aber nicht so trival zu sein...
Vielleicht ist es der Grund, warum Du soviel verändert hast und nicht die Vorarbeit weiter geführt hast.
Da Du das Wiki anpassen möchtest, ist es dann eh nicht mehr zielführend.

Ich vermutte, das meine DOIF's und der Dummy eher OT sind.
Ich möchte Deinen Thread nicht kapern, schreibe mir doch bitte, was ich alles löschen soll.
<OT aus>

Grüße
sunny
FHEM 6.0 (RPi's 1b-4,CeleronM,Odroid C1+)
1-Wire (DS18B20,DS2406) |miniCUL|miniCUL868WLAN|HM|IT(-1500,LR-3500) |FB6591,FB7490,FB7580|DECT200|Powerline546E|520E|openwrt
Anfänger: Linux,FHEM+Perl

ch.eick

#37
Zitat
leider ist mir Heute aufgefallen, das seit Deiner letzten "Version", mir Heute von 0 Uhr bis 1 Uhr einige Daten fehlen.
Hängt wohl mit "getxyzMaxAge 86400" zusammen.
Da es sich um reine Statistiken des iSoft handelt hatte ich das MaxAge gesetzt. Die Werte lohnen sich nicht wirklich für die Datenbank und bedürfen, wie bei Dir noch eine Nachbearbeitung über ein Dummy.
Das kannst du ja bei Dir raus nehmen, wenn Du den Dummy behalten möchtest.

Zitat
Auch sollte evt. erwähnt werden das es keine Readings von "consumption_WaterWeeklyByDay-xyz" gibt, wenn die Anlage nach dem 01.06.2020 installiert wurde.
Das mit der Firmware bezog sich hierauf.  Was hat sich am 01.06.2020 geändert?

Die Wiki Seite des iSoft  Plus ist nicht von mir und ich hatte so starke Veränderungen, dass ich den bisherigen Benutzern nicht Ihre Dokumentation verändern wollte.
Wer das Device vom Wiki nimmt überschreiben sich die readings immer wieder, je nach dem welchen Aufruf man getätigt hat.
Meine Änderungen ermöglichen eine eindeutige Abfrage ohne Werte von vorherigen Abfragen zu überschreiben.

Ich habe heute Morgen das Logging mal mit eingebaut und das würde dann in der DB so aussehen (noch ohne Dein Timing, das sieht man dann erst morgen)

MySQL [fhem]> select TIMESTAMP,DEVICE,READING,VALUE FROM history WHERE DEVICE like 'JUDO_iSoft' and TIMESTAMP > '2020-10-12' ;
+---------------------+------------+-----------------------------------+-------+
| TIMESTAMP           | DEVICE     | READING                           | VALUE |
+---------------------+------------+-----------------------------------+-------+
| 2020-10-12 11:43:14 | JUDO_iSoft | consumption_SaltQuantityInPercent | 24    |
| 2020-10-12 11:43:17 | JUDO_iSoft | consumption_SaltRangeInWeeks      | 25    |
| 2020-10-12 11:14:18 | JUDO_iSoft | consumption_WaterCurrentRaw       | 16    |
| 2020-10-12 11:14:18 | JUDO_iSoft | consumption_WaterCurrentSoft      | 10    |
| 2020-10-12 11:42:21 | JUDO_iSoft | consumption_WaterDailySumme       | 116   |
| 2020-10-12 11:43:03 | JUDO_iSoft | consumption_WaterTotalRaw         | 25566 |
| 2020-10-12 11:43:03 | JUDO_iSoft | consumption_WaterTotalSoft        | 18674 |
+---------------------+------------+-----------------------------------+-------+

Es sollten jetzt alle Deine Werte hier auftauchen.
consumption_WaterDailySumme steigt dann im laufe des Tages, wie ein normaler Zähler immer weiter an. Der Maximalwert würde dann der Tagesverbrauch sein und
    das Abfragen der Statistiken im Normalbetrieb erübrigen.

consumption_WaterTotalRaw würde dann hoffentlich synchron zur Wasseruhr laufen.

Salz Vorrat und andere Werte, die man im Auge behalten sollte möchte ich dann auch in der DB haben

Bei Deinem Verfahren muss man in den Abfragen für weekly, monthly und yearly immer darauf achten, dass vorher die readings mit "_" richtig gesetzt werden!
Dies würde ich dann in einem weekly, monthly, yearly lauf implementieren um damit die entsprechenden Summen auszulesen. Das spart separate Zähler oder DB Summierungen.
- Hierbei kommt aus weekly, mit einer Summe, die ich noch einbaue, der Wochen Verbrauch.
- Die monthly Statistik liefert dann die Monatssumme
- Und die yearly Statistik dann die Jahressumme

Der Vorteil wäre, dass die Werte dann mit dem richtigen TIMESTAMP in der Datenbank stehen und direkt geplottet werden können.

Ich werde heute nochmals Updates mit Versionen :-) in den ersten Post stellen.

Wenn Du mir noch die Namensänderungen liefern könntest, wäre das dann auch schon mit dabei.
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Sunny

Moinsen Christian,

Zitat von: ch.eick am 12 Oktober 2020, 12:45:52
Das mit der Firmware bezog sich hierauf.  Was hat sich am 01.06.2020 geändert?
Nicht die Firmware hat sich geändert, sondern durch:
Zitat von: ch.eick am 15 Juni 2020, 19:50:38

#### Diese readings sollten gesetzt werden, da sie von einigen Abfragen beim http get verwendet werden.
setstate JUDO_iSoft_test 2020-06-11 22:41:12 _DAY 1
setstate JUDO_iSoft_test 2020-06-11 18:10:39 _MONTH 06
setstate JUDO_iSoft_test 2020-06-11 22:58:40 _OFFSET -1
setstate JUDO_iSoft_test 2020-06-11 18:10:54 _YEAR 2020

wird es verhindert...

Zitat von: ch.eick am 12 Oktober 2020, 12:45:52
Der Vorteil wäre, dass die Werte dann mit dem richtigen TIMESTAMP in der Datenbank stehen und direkt geplottet werden können.
Was nützt ein richtiger Timestamp, wenn die Werte von der i-soft z.Z. zwischen 0 Uhr und 1 Uhr nicht der Realität entsprechen?

Zitat von: ch.eick am 12 Oktober 2020, 12:45:52
Wenn Du mir noch die Namensänderungen liefern könntest, wäre das dann auch schon mit dabei.
Welche Datein möchtest Du genau?

Mit fragenden Grüßen
sunny
FHEM 6.0 (RPi's 1b-4,CeleronM,Odroid C1+)
1-Wire (DS18B20,DS2406) |miniCUL|miniCUL868WLAN|HM|IT(-1500,LR-3500) |FB6591,FB7490,FB7580|DECT200|Powerline546E|520E|openwrt
Anfänger: Linux,FHEM+Perl

ch.eick

#39
Zitat
Das mit der Firmware bezog sich hierauf.  Was hat sich am 01.06.2020 geändert?
Nicht die Firmware hat sich geändert, sondern durch:wird es verhindert...
#### Diese readings sollten gesetzt werden, da sie von einigen Abfragen beim http get verwendet werden.
setstate JUDO_iSoft_test 2020-06-11 22:41:12 _DAY 1
setstate JUDO_iSoft_test 2020-06-11 18:10:39 _MONTH 06
setstate JUDO_iSoft_test 2020-06-11 22:58:40 _OFFSET -1
setstate JUDO_iSoft_test 2020-06-11 18:10:54 _YEAR 2020

Okay, das sind nur Beispielwerte.
Das mit den Statistiken ist etwas tricky, wenn Du Dir die API Aufrufen mal genauer anschaust.
Vor dem get * Aufruf müssen diese readings passend gesetzt werden, wobei der _OFFSET besondere spaßig ist.
Wenn Du über die Statistiken Dein Dummy befüllen möchtest, musst Du vorher dafür sorgen, dass Du über die "_*" readings auch den richtigen Zeitraum triffst.

Das war der Grund, warum ich Dir davon abgeraten hatte.

Zitat
Der Vorteil wäre, dass die Werte dann mit dem richtigen TIMESTAMP in der Datenbank stehen und direkt geplottet werden können.
Was nützt ein richtiger Timestamp, wenn die Werte von der i-soft z.Z. zwischen 0 Uhr und 1 Uhr nicht der Realität entsprechen?
Dieses Phonemen sollten wir nochmal separat betrachten und dann auch noch bei iSoft einen Servicerequest aufmachen.
Das scheint ja ein Fehler mit der Sommer/Winter Zeit zu sein.


Ich aktualisiere später mal den ersten Post
- es werden jetzt daily, weekly, monthly, yearly Summen gebildet und das Problem mit der -1 ist auch behoben.
- Die Daily Summe wird mit "get <Device> 36_water_daily" gebildet und landet im DbLog
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Sunny

Moin Christian,

Zitat von: ch.eick am 12 Oktober 2020, 15:45:50
Okay, das sind nur Beispielwerte.
Das mit den Statistiken ist etwas tricky, wenn Du Dir die API Aufrufen mal genauer anschaust.
Ist es dann sinnvoll diese in Deiner Standard Version mit ein zutragen?

Zitat von: ch.eick am 12 Oktober 2020, 15:45:50
Dieses Phonemen sollten wir nochmal separat betrachten und dann auch noch bei iSoft einen Servicerequest aufmachen.
Das scheint ja ein Fehler mit der Sommer/Winter Zeit zu sein.
Habe dieses für mich gelöst, in dem ich den Verbrauch nur noch über water-current-xyz
water-total-xyz
in die DB schreibe. (z.Z. noch mit 1 Dummy und 4 DOIF's]
Dafür habe ich die Wiki-Variante mit einigen aus der Deiner Version angepasst.

Daraus sind die SVG's aus dem Anhang entstanden.

Mit juten Grüßen
sunny
FHEM 6.0 (RPi's 1b-4,CeleronM,Odroid C1+)
1-Wire (DS18B20,DS2406) |miniCUL|miniCUL868WLAN|HM|IT(-1500,LR-3500) |FB6591,FB7490,FB7580|DECT200|Powerline546E|520E|openwrt
Anfänger: Linux,FHEM+Perl

ch.eick

Hallo Sunny,
leider bist Du sehr schnell, aber hast mich zu Höchstleistungen getrieben :-)

1.) Die _* readings sind nur noch für den get Abruf mit Report im Namen.
     Zum Glück hat die API noch einiges mehr geliefert.
2.) Die get **_water_*  ohne _report liefern nun den jeweils aktuellen Zeitraum inklusive der aktuellen Summe
3.) Das MaxAge ist nun nurnoch bei den _report readings
4.) Auch die Jahres Statistik lässt sich für das laufende und für altere Jahre abfragen
5.) Mit 36_water_daily kannst Du die Tagessumme am Ende des Tages abfragen
Zitat
water-current-xyz
water-total-xyz
6.) Eventuell ist dann das 01:00 Uhr Problem auch nicht mehr relevant, das könntest Du eventuell mal testen. Bei mir wird eh nachts kein Wasser verbraucht;-)
ZitatWas nützt ein richtiger Timestamp, wenn die Werte von der i-soft z.Z. zwischen 0 Uhr und 1 Uhr nicht der Realität entsprechen?
ZitatDafür habe ich die Wiki-Variante mit einigen aus der Deiner Version angepasst.
Ist das Wiki von Dir gewesen? Ich würde da nichts reinschreiben, weil ich ja nicht weiß, wer es bisher verwendet.
Mein Gedanke war, meinen Ansatz komplett hinten dran zu packen, oder halt eine zweite Wiki Seite zu verlinken, da ja noch viel erklärt werden muss.

7.)
ZitatWelche Daten möchtest Du genau?
Diese Namen habe ich von der API <IP-Adresse>:8000 abgeleitet und Du hattest aus der Doku und der APP eventuell bessere Vorschläge.
Es können natürlich auch zwei Setts werden, je nach dem wie Du es magst.

attr JUDO_iSoft get22Name 22_software_version
attr JUDO_iSoft get23Name 23_hardware_version
attr JUDO_iSoft get28Name 28_serial_number
attr JUDO_iSoft get32Name 32_init_date
attr JUDO_iSoft get33Name 33_service_number
attr JUDO_iSoft get34Name 34_service_date
attr JUDO_iSoft get35Name 35_water_current
attr JUDO_iSoft get361Name 36_water_daily_report
attr JUDO_iSoft get36Name 36_water_daily
attr JUDO_iSoft get371Name 37_water_weekly_report
attr JUDO_iSoft get37Name 37_water_weekly
attr JUDO_iSoft get381Name 38_water_monthly_report
attr JUDO_iSoft get38Name 38_water_monthly
attr JUDO_iSoft get391Name 39_water_yearly_report
attr JUDO_iSoft get39Name 39_water_yearly
attr JUDO_iSoft get40Name 40_water_total
attr JUDO_iSoft get41Name 41_water_of_days_report
attr JUDO_iSoft get42Name 42_water_average
attr JUDO_iSoft get43Name 43_actual_abstraction_time
attr JUDO_iSoft get44Name 44_actual_quantity
attr JUDO_iSoft get45Name 45_salt_quantity
attr JUDO_iSoft get47Name 47_salt_range
attr JUDO_iSoft get49Name 49_residual_hardness
attr JUDO_iSoft get50Name 50_natural_hardness
attr JUDO_iSoft get53Name 53_info_regeneration
attr JUDO_iSoft get55Name 55_waterstop_standby
attr JUDO_iSoft get58Name 58_waterstop_valve
attr JUDO_iSoft get60Name 60_abstraction_time
attr JUDO_iSoft get62Name 62_waterstop_flow_rate
attr JUDO_iSoft get64Name 64_waterstop_quantity
attr JUDO_iSoft get66Name 66_waterstop_vacation

attr JUDO_iSoft set46Name 46_salt_quantity
attr JUDO_iSoft set48Name 48_residual_hardness
attr JUDO_iSoft set51Name 51_regeneration
attr JUDO_iSoft set54Name 54_waterstop_standby
attr JUDO_iSoft set56Name 56_waterstop_valve
attr JUDO_iSoft set59Name 59_abstraction_time
attr JUDO_iSoft set61Name 61_waterstop_flow_rate
attr JUDO_iSoft set63Name 63_waterstop_quantity
attr JUDO_iSoft set65Name 65_waterstop_vacation


Gruß
   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Sunny

#42
Moin Christian,

Zitat von: ch.eick am 12 Oktober 2020, 18:47:23
Ist das Wiki von Dir gewesen? Ich würde da nichts reinschreiben, weil ich ja nicht weiß, wer es bisher verwendet.
Leider nicht, sonst hätte ich nicht soviele Fragen...  :-[

Danke für Deine Arbeit.
Werde mir Deine neue Version mal bezeiten anschauen.

Mein Ansatz ist Daten sehr Zeitnah zu erhalten, da mir jemand einen Rohrbruch nicht gemeldet hatet und so sehr viel Trinwasser im Haus "verschwunden" ist.

Mit besten Grüßen
sunny
FHEM 6.0 (RPi's 1b-4,CeleronM,Odroid C1+)
1-Wire (DS18B20,DS2406) |miniCUL|miniCUL868WLAN|HM|IT(-1500,LR-3500) |FB6591,FB7490,FB7580|DECT200|Powerline546E|520E|openwrt
Anfänger: Linux,FHEM+Perl

ch.eick

Zitat von: Sunny am 12 Oktober 2020, 18:48:57
Mein Ansatz ist Daten sehr Zeitnah zu erhalten, da mir jemand einen Rohrbruch nicht gemeldet hatet und so sehr viel Trinwasser im Haus "verschwunden" ist.
Bei einem Haus mit mehreren Parteien würde ich auch versuchen den Wasserstop zu verwenden, wobei das recht schwierig sein kann.
Die Wahrscheinlichkeit des gleichzeitigen Wasserzapfens spielt da sicher manchmal einen Streich :-)

ZitatDafür habe ich die Wiki-Variante mit einigen aus der Deiner Version angepasst.
Ich konnte bisher nichts neues auf der Seite erkennen?
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Sunny

Moinsen,

hier mein erster Versuch.
defmod H2O_iSoft_plus HTTPMOD https://%JUDO_ipaddress%:8124/?group=waterstop&command=valve&msgnumber=4&token=%token% 0
attr H2O_iSoft_plus userattr get01CheckAllReadings:0,1 get01Name get01URL get02Name get02URL get03CheckAllReadings:0,1 get03Name get03URL get04CheckAllReadings:0,1 get04Name get04URL get05CheckAllReadings:0,1 get05Name get05URL get06CheckAllReadings:0,1 get06Name get06URL get07Name get07URL get08CheckAllReadings:0,1 get08Name get08URL get09CheckAllReadings:0,1 get09Name get09URL get10CheckAllReadings:0,1 get10Name get10URL get11CheckAllReadings:0,1 get11Name get11URL get12CheckAllReadings:0,1 get12Name get12URL get13Name get13URL get14Name get14URL get15Name get15URL get16CheckAllReadings:0,1 get16Name get16URL get17Name get17URL get18Name get18URL get19Name get19URL getHeader1 getHeader2 reading01JSON reading01Name reading01Regex reading021JSON reading021Name reading021Regex reading022JSON reading022Name reading022Regex reading02JSON reading031JSON reading031Name reading031Regex reading032JSON reading032Name reading032Regex reading03JSON reading03OExpr reading100JSON reading100Name reading101JSON reading101Name reading102JSON reading102Name reading103JSON reading103Name reading104JSON reading104Name reading105JSON reading105Name reading106JSON reading106Name reading107JSON reading107Name reading108JSON reading108Name reading109JSON reading109Name reading131JSON reading131Name reading131Regex reading132JSON reading132Name reading132Regex reading19JSON reading19Name reading19Regex replacement01Mode:reading,internal,text,expression,key replacement01Regex replacement01Value replacement02Mode:reading,internal,text,expression,key replacement02Regex replacement02Value replacement03Mode:reading,internal,text,expression,key replacement03Regex replacement03Value replacement04Mode:reading,internal,text,expression,key replacement04Regex replacement04Value replacement05Mode:reading,internal,text,expression,key replacement05Regex replacement05Value replacement06Mode:reading,internal,text,expression,key replacement06Regex replacement06Value replacement07Mode:reading,internal,text,expression,key replacement07Regex replacement07Value replacement08Mode:reading,internal,text,expression,key replacement08Regex replacement08Value replacement09Mode:reading,internal,text,expression,key replacement09Regex replacement09Value replacement10Mode:reading,internal,text,expression,key replacement10Regex replacement10Value set01Name set01URL set02Name set02URL set03Name set03URL sid01ParseResponse:0,1 sid01URL sid02URL
attr H2O_iSoft_plus DbLogExclude .*
attr H2O_iSoft_plus DbLogInclude actual-abstrations-time,flow-rate,.*-hardness,quantity,salt-.*,water-average,water-current-.*,water-total-.*
attr H2O_iSoft_plus authRetries 2
attr H2O_iSoft_plus comment IMMER\
attr H2O_iSoft_plus replacement02Value <hier eigene IP Adresse im lokalen Netz eintragen>\
attr H2O_iSoft_plus replacement03Value <hier Kennwort eintragen>\
attr H2O_iSoft_plus replacement04Value <hier Benutzername eintragen>\
attr H2O_iSoft_plus replacement05Value <hier Seriennummer eintragen>\
\
Datum 2020.10.12 \
Zeit 13:30 Uhr \
1.Versuch der Anpassung der https://wiki.fhem.de/wiki/JUDO_iSoft_Plus Defintion,\
mit den Erweiterung von https://forum.fhem.de/index.php/topic,112147.msg1064693.html#msg1064693\
\
Folgende "get's" angepasst: \
WaterCurrent\
WaterTotal\
\
Folgende Readings angepasst:\
actual-abstrations-time\
water-current-raw \
water-current-soft\
water-total-raw\
water-total-soft\
\
Hinzugefügt get:\
ActualAbstractionTime\

attr H2O_iSoft_plus disable 0
attr H2O_iSoft_plus enableControlSet 1
attr H2O_iSoft_plus event-on-change-reading actual-abstrations-time,flow-rate,.*-hardness,quantity,salt-.*,water-average,water-current-.*,water-total-.*
attr H2O_iSoft_plus event-on-update-reading actual-abstrations-time,flow-rate,.*-hardness,quantity,salt-.*,water-average,water-current-.*,water-total-.*
attr H2O_iSoft_plus extractAllJSON 1
attr H2O_iSoft_plus get01CheckAllReadings 1
attr H2O_iSoft_plus get01Name SerialNumber
attr H2O_iSoft_plus get01URL https://%JUDO_ipaddress%:8124/?group=spare%20part&command=serial%20number&msgnumber=5&token=%token%
attr H2O_iSoft_plus get02Name WaterCurrent
attr H2O_iSoft_plus get02URL https://%JUDO_ipaddress%:8124/?group=consumption&command=water%20current&msgnumber=1&token=%token%
attr H2O_iSoft_plus get03Name SaltRange
attr H2O_iSoft_plus get03URL https://%JUDO_ipaddress%:8124/?group=consumption&command=salt%20range&msgnumber=1&token=%token%
attr H2O_iSoft_plus get04Name SaltQuantity
attr H2O_iSoft_plus get04URL https://%JUDO_ipaddress%:8124/?group=consumption&command=salt%20quantity&msgnumber=1&token=%token%
attr H2O_iSoft_plus get05Name ResidualHardness
attr H2O_iSoft_plus get05URL https://%JUDO_ipaddress%:8124/?group=settings&command=residual%20hardness&msgnumber=1&token=%token%
attr H2O_iSoft_plus get06Name NaturalHardness
attr H2O_iSoft_plus get06URL https://%JUDO_ipaddress%:8124/?group=info&command=natural%20hardness&msgnumber=1&token=%token%
attr H2O_iSoft_plus get07Name WaterStop
attr H2O_iSoft_plus get07URL https://%JUDO_ipaddress%:8124/?group=waterstop&command=valve&msgnumber=1&token=%token%
attr H2O_iSoft_plus get08Name FlowRate
attr H2O_iSoft_plus get08URL https://%JUDO_ipaddress%:8124/?group=waterstop&command=flow%20rate&msgnumber=1&token=%token%
attr H2O_iSoft_plus get09Name SoftwareVersion
attr H2O_iSoft_plus get09URL https://%JUDO_ipaddress%:8124/?group=version&command=software%20version&msgnumber=1&token=%token%
attr H2O_iSoft_plus get10Name HardwareVersion
attr H2O_iSoft_plus get10URL https://%JUDO_ipaddress%:8124/?group=version&command=hardware%20version&msgnumber=1&token=%token%
attr H2O_iSoft_plus get11Name InstallationDate
attr H2O_iSoft_plus get11URL https://%JUDO_ipaddress%:8124/?group=contract&command=init%20date&msgnumber=1&token=%token%
attr H2O_iSoft_plus get12Name ServiceDate
attr H2O_iSoft_plus get12URL https://%JUDO_ipaddress%:8124/?group=contract&command=service%20date&msgnumber=1&token=%token%
attr H2O_iSoft_plus get13Name WaterTotal
attr H2O_iSoft_plus get13URL https://%JUDO_ipaddress%:8124/?group=consumption&command=water%20total&msgnumber=1&token=%token%
attr H2O_iSoft_plus get14Name WaterAverage
attr H2O_iSoft_plus get14URL https://%JUDO_ipaddress%:8124/?group=consumption&command=water%20average&msgnumber=1&token=%token%
attr H2O_iSoft_plus get15Name Vacation
attr H2O_iSoft_plus get15URL https://%JUDO_ipaddress%:8124/?group=waterstop&command=vacation&msgnumber=1&token=%token%
attr H2O_iSoft_plus get16Name Quantity
attr H2O_iSoft_plus get16URL https://%JUDO_ipaddress%:8124/?group=waterstop&command=quantity&msgnumber=1&token=%token%
attr H2O_iSoft_plus get17Name WaterDaily
attr H2O_iSoft_plus get17URL https://%JUDO_ipaddress%:8124/?group=consumption&command=water%20daily&msgnumber=1&token=%token%
attr H2O_iSoft_plus get18Name ValveState
attr H2O_iSoft_plus get18URL https://%JUDO_ipaddress%:8124/?group=waterstop&command=valve&msgnumber=4&&token=%token%
attr H2O_iSoft_plus get19Name ActualAbstractionTime
attr H2O_iSoft_plus get19URL https://%JUDO_ipaddress%:8124/?group=consumption&command=actual%20abstraction%20time&msgnumber=1&token=%token%
attr H2O_iSoft_plus getHeader1 Content-Type: application/json
attr H2O_iSoft_plus getHeader2 Accept: */*
attr H2O_iSoft_plus group H2O_werte
attr H2O_iSoft_plus reAuthRegex (no token)|(not logged in)
attr H2O_iSoft_plus reading01JSON data
attr H2O_iSoft_plus reading01Name token
attr H2O_iSoft_plus reading01Regex "token":"([^"]+)"
attr H2O_iSoft_plus reading021JSON command
attr H2O_iSoft_plus reading021Name water-current-raw
attr H2O_iSoft_plus reading021Regex "command":"water current","data":".* (.*)","group":"consumption"
attr H2O_iSoft_plus reading022JSON command
attr H2O_iSoft_plus reading022Name water-current-soft
attr H2O_iSoft_plus reading022Regex "command":"water current","data":".* (.*)","group":"consumption"
attr H2O_iSoft_plus reading02JSON group
attr H2O_iSoft_plus reading03JSON command
attr H2O_iSoft_plus reading03OExpr $val =~ s/\s/-/;;;; $val;; readingsBulkUpdate($hash,$val,ReadingsVal("H2O_iSoft_plus","data",""))
attr H2O_iSoft_plus reading131JSON command
attr H2O_iSoft_plus reading131Name water-total-raw
attr H2O_iSoft_plus reading131Regex "command":"water total","data":" (\d+) \d+","group":"consumption"
attr H2O_iSoft_plus reading132JSON command
attr H2O_iSoft_plus reading132Name water-total-soft
attr H2O_iSoft_plus reading132Regex "command":"water total","data":" \d+ (\d+)","group":"consumption"
attr H2O_iSoft_plus reading19JSON command
attr H2O_iSoft_plus reading19Name actual-abstrations-time
attr H2O_iSoft_plus reading19Regex "command":"actual abstraction time","data":"(\d+)","group":"consumption"
attr H2O_iSoft_plus replacement01Mode reading
attr H2O_iSoft_plus replacement01Regex %token%
attr H2O_iSoft_plus replacement01Value token
attr H2O_iSoft_plus replacement02Mode text
attr H2O_iSoft_plus replacement02Regex %JUDO_ipaddress%
attr H2O_iSoft_plus replacement02Value <hier eigene IP Adresse im lokalen Netz eintragen>
attr H2O_iSoft_plus replacement03Mode text
attr H2O_iSoft_plus replacement03Regex %JUDO_password%
attr H2O_iSoft_plus replacement03Value <hier Kennwort eintragen>
attr H2O_iSoft_plus replacement04Mode text
attr H2O_iSoft_plus replacement04Regex %JUDO_username%
attr H2O_iSoft_plus replacement04Value <hier Benutzername eintragen>
attr H2O_iSoft_plus replacement05Mode text
attr H2O_iSoft_plus replacement05Regex %JUDO_serial%
attr H2O_iSoft_plus replacement05Value <hier Seriennummer eintragen>
attr H2O_iSoft_plus replacement06Mode reading
attr H2O_iSoft_plus replacement06Regex %_YEAR%
attr H2O_iSoft_plus replacement06Value _YEAR
attr H2O_iSoft_plus replacement07Mode reading
attr H2O_iSoft_plus replacement07Regex %_MONTH%
attr H2O_iSoft_plus replacement07Value _MONTH
attr H2O_iSoft_plus replacement08Mode reading
attr H2O_iSoft_plus replacement08Regex %_DAY%
attr H2O_iSoft_plus replacement08Value _DAY
attr H2O_iSoft_plus replacement09Mode reading
attr H2O_iSoft_plus replacement09Regex _OFFSET%
attr H2O_iSoft_plus replacement09Value _OFFSET
attr H2O_iSoft_plus replacement10Mode reading
attr H2O_iSoft_plus replacement10Regex %_OFFSET%
attr H2O_iSoft_plus replacement10Value _OFFSET
attr H2O_iSoft_plus room H2O
attr H2O_iSoft_plus set01Name CloseValve
attr H2O_iSoft_plus set01URL https://%JUDO_ipaddress%:8124/?group=waterstop&command=valve&msgnumber=1&token=%token%&parameter=close
attr H2O_iSoft_plus set02Name OpenValve
attr H2O_iSoft_plus set02URL https://%JUDO_ipaddress%:8124/?group=waterstop&command=valve&msgnumber=1&token=%token%&parameter=open
attr H2O_iSoft_plus set03Name residual-hardness
attr H2O_iSoft_plus set03URL https://%JUDO_ipaddress%:8124/?group=settings&command=residual%20hardness&msgnumber=1&token=%token%&parameter=$val
attr H2O_iSoft_plus showError 1
attr H2O_iSoft_plus sid01ParseResponse 1
attr H2O_iSoft_plus sid01URL https://%JUDO_ipaddress%:8124/?group=register&command=login&msgnumber=1&name=login&user=%JUDO_username%&password=%JUDO_password%&role=customer
attr H2O_iSoft_plus sid02URL https://%JUDO_ipaddress%:8124/?group=register&command=connect&msgnumber=6&token=%token%&parameter=i-soft%20plus&serial%20number=%JUDO_serial%
attr H2O_iSoft_plus stateFormat Ventil: valve<br>\
Leckage Liter/Std: flow-rate<br>\
Leckage max Liter: quantity<br>\
Leckage Zeit: actual-abstrations-time min<br>\
Salz Vorrat : salt-percent %<br>\
Salz Vorrat: salt-weeks Wochen<br>\
Salz Vorrat salt-range Tage<br>\
H2O Durchschnitt: water-average l<br>\
H2O Jetzt Raw water-current-raw l<br>\
H2O Jetzt Soft water-current-soft l<br>\
H2O Gesamt Raw water-total-raw l<br> \
H2O Gesamt Soft water-total-soft l<br>\
Aussen Haerte: natural-hardness dH<br>\
Eingestellte Haerte: residual-hardness dH
attr H2O_iSoft_plus timeout 5
attr H2O_iSoft_plus userReadings salt-weeks { int( (ReadingsVal("H2O_iSoft_plus","salt-range",0)/7))} , salt-percent { int( (ReadingsVal("H2O_iSoft_plus","salt-quantity",0)/50000)*100)}


<OT an>
Ich würde es "eleganter" finden, wenn "Mensch" sich nahe an die Vorarbeit hält.
(Ist kein Vorwurf., ohne Dich hätte ich jetzt nicht "meine fast Live Daten".  ;D)

Ich befasse mich erst seit dem 08.10.20 mit der fhem "Auswertung" der i-soft-plus und bin eher durch Zufall auf Deinen Thread gestossen.
Persönlich finde ich kurze "Readings" besser. (Jupp, kann nicht 10 Finger)

Eventuell würde es für aber Andere Übersichtlicher sein, wenn die Bezeichnug aus der App verwendet wird.
<OT aus>

Wenn Du möchtest kann ich auch noch den Dummy und die DOIF's posten.

Beste Grüße
sunny
FHEM 6.0 (RPi's 1b-4,CeleronM,Odroid C1+)
1-Wire (DS18B20,DS2406) |miniCUL|miniCUL868WLAN|HM|IT(-1500,LR-3500) |FB6591,FB7490,FB7580|DECT200|Powerline546E|520E|openwrt
Anfänger: Linux,FHEM+Perl