Neues Modul ECOTOUCH für Wärmepumpen Typ Waterkotte ECOTOUCH mit WWPR2-Regler

Begonnen von LR66, 18 Januar 2016, 20:31:44

Vorheriges Thema - Nächstes Thema

LR66

Hallo,
habe ein noch ausbaufähiges Modul für Wärmepumpen Typ Waterkotte ECOTOUCH erstellt. Da ich nur eine Ai1 Air (Powerinverter) mit 1 Aussenkompressor habe, sind Funktionen für andere Module noch anzupassen & zu prüfen. Zunächst ist nur Lesen der Zustände und anlegen Readings implementiert. Im Define wird das Device und Logfile angelegt und mit dem Standard-User/Passwort eingeloggt. Über Pollinterval werden die wichtigsten sog. Tags z.B. alle 60s ausgelesen. Dabei wird der Status und wichtige Temperaturen festgestellt: Prüfung alarm,poweroff(EVU-Abschaltung) und Aktivität Umwälzpumpe. Wenn die aktiv ist werden weitere Stati zu den Wärmequellen Geo oder Kompressoren geholt und geprüft ob Heizen, Kühlen, Wasserbereitung läuft... Nach definierter Zahl von Status-Pollings werden nicht so wichtige Einstellungen geholt - das reduziert die Netzwerklast für die Pumpe und - da noch kein Non-Blocking implementiert - für FHEM.
Bisher bekannte auslesbare Tags hab ich aus Unterlagen von Waterkotte und aus der Android-App ermittelt. Leider fehlt z.B. noch Betriebsstundenzähler Heizstab und Heizung/Wasser ... hier ist jede Hilfe willkommen (siehe Anfangsteil im Code).
Vielleicht kann jmd. das Modul nutzen. Hab es 89_ECOTOUCH.pm genannt, damit wirds dann nur bei define geladen. Hilfe ist in englisch über Webinterface wie bei den Modulen üblich zu finden.
Nach Test in leerem fhem läuft's nun in meinem Haussystem.
Der Code ist sicher nicht optimal - musste mich erstmal an Perl herantasten und im nächsten Schritt mit den fhem-Specials beschäftigen...
Viele Grüße, Lutz

Phili

Hi Lutz,

super das du die Initiative ergreifst :). Hatte bisher alles über httpmod direkt ausgelesen. Über ein eigenes Modul ist das natürlich sehr viel eleganter.
Ich werde das mal am Wochenende parallel laufen lassen und durchtesten.

Vielen Dank
Philipp

LR66

Hi Philipp,
was hast Du denn für eine Anlage? Ich musste zb feststellen, dass bei meinem Powerinverter im Statusword zb nicht bei Aktivität Kompressor das vorhandene Bit für Compressor1 gesetzt wird. Habe um sowas herauszubekommen auch ein Perl-Skript, was pur auf Kommandozeile (vorzugsweise unter Linux?) Tags minütlich ausliest und Änderungen markiert. Da könntest Du zunächst schauen, was so abläuft ... müsstest halt das Skript anpassen um IP und die Module und oder Tags die interessieren. Im Skript wird noch jedes Tag einzeln geholt, im Modul sammle ich für Abruf wg. Last - zum Test aber nie Problem mit der Pumpe.
Was im Modul noch nicht so klappt: alte nicht mehr genutzte Readings werden nicht beim Delete des Device gelöscht - tauchen ggf wieder auf. Wenn man zu oft zu schnell zum Testen startet, kommt ggf eine Fehlermeldung 'too many users' oä, da kein logout erfolgt - ggf mal 2.. Minuten warten mit Skriptneustart oder im Modul temporär disablen.
Grüße, Lutz

Phili

Hi Lutz,

ich hab eine Luft-Wasser-Wärmepumpe EcoTouch Ai1 Air (Zubadan) http://www.waterkotte.de/waermepumpen/product/ecotouch-ai1-air-zubadan-luft-waermepumpe/.

Meinst du mit Powerinverter den Verdichter? Bei mir läuft auch nur der Verdichter 2 (I51.5 -> Bit 4). Ich lese momentan nur die Außentemperaturren, die Rücklauftemperatur Ist und Soll, und die Warmwassertemperatur. Hab mal ein paar screens angefügt. Wie man den Heizstab auslesen kann weiß ich auch noch nicht. Habe auch noch kein Attribut dafür gefunden.

Eine hilfreiche Liste gibt es hier: https://github.com/openhab/openhab/blob/master/bundles/binding/org.openhab.binding.ecotouch/src/main/java/org/openhab/binding/ecotouch/EcoTouchTags.java

(http://fs5.directupload.net/images/160119/txp749ms.jpg)

Gruß
Philipp

LR66

Hi Philipp,
das ist interessant und feine Plots - da kämpfe ich noch mit SVG. Bei mir wird bei Kompressorbetrieb I51 Bit4 nicht gesetzt - ich finde meinen über I1458 (Du sicher auch, da schaut die APP drauf).
Die bekannten Tags (I51...) habe ich im Skript und im Modul alle gelistet und mit engl.Name und dt. Kommentar am Anfang definiert- da findest Du sicher auch noch interessantes für Dich. Das OpenHab-Modul kenne ich - im wesentlichen hat er dort aber eine Geothermieanlage abgebildet und die anderen Tags interessierten ihn nicht so (hatte mal versucht Kontakt aufzunehmen). Ich habe viele der Tags mit ihrer offiz. Deutung aus einer Doku von Waterkotte zur früheren ModBus-RS485-Anbindung und dann weitere an meiner Anlage über die APP/Webinterface ermittelt. Im Skript/Modul habe ich auch die offizielle Bit-Bedeutung des state_words I51 hinterlegt - Bit 4 (bei 0 beginnend) ist übrigends auch offiziell Kompressor1 und Bit6 heisst 'Status externer Wärmeerzeuger' -> das ist zumindest bei mir der Heizstab! Deine Zubadan hat doch 2 Kompressoren im Außenteil: laufen die immer gleichzeitig mit gleicher Leistung? Für einen Kompressor 2 gibts eigentlich das Bit5, ich vermute aber, dass auch das Zubadan-Außenteil wie eine einzige Einheit betrachtet wird.   
Hast Du noch Specials wie Solarkollektor, externen Wasserspeicher, Pool oder Raumfühler? Kannst Du auch Umkehrkühlung schalten und ist das der gleiche Kreislauf wie Heizung (also Fußboden - oder Deckenverteiler)?
Grüße, Lutz

Phili

Hi Lutz,

ich bin noch kein Experte. Wir sind erst im Oktober letzten Jahres in unser neues EFH eingezogen und verleben nun den ersten Winter mit der Heizung. Bisher ging es mir primär darum die Heizung optimal einzustellen. Ich habe in jedem Raum LaCrosse Temperatur Sensoren und kann so die Temperaturverläufe beobachten. Wir können im Sommer auch runterkühlen über die FBH. Pool, Raumfühler und Solar haben wir nicht.

Habe gerade nochmal im Handbuch nachgelesen. Es stimmt, der externe Wärmeerzeuger scheint der Heizstab zu sein. Das verwundert mich nur, da unser Heizungsmonteur die Sicherung vom Heizstab extra rausgenommen hat. Also kann doch der Heizstab eigentlich gar nicht laufen... Das muss ich nochmal nachfragen.

Zurück zum Thema: I1458 kann ich nicht auslesen, da kommt bei mir unknown tag. Betriebsstunden möchte ich auch noch auslesen können. Wobei man das auch zur noch berechnen könnte über die logs. Also wie lange sind die einzelnen bits auf "1" gesetzt sind.
Was ich auch noch machen will ist die Auslastung der Rotoren außen auszulesen. So wie auf dem Display der Waterkotte.

(http://uploads.tapatalk-cdn.com/20160119/c2349cee23a099cd326c55291a31f989.jpg)

Wie kann ich das script starten?

Gruß
Philipp

LR66

Hi Philipp,
wg. Test:
1. Variante Skript
Hast Du einen Linux-Rechner für fhem oder ein Rechner mit perl drauf? Mit Editor Datei wtk5.pl anpassen! Hab gerade nachgesehen: Zeile 192 auf Deine IP, Zeile 200 auf Pfad für Cookie und Zeile 304 auf Pfad für logfile korrigieren und auf Konsole mit Befehl: perl wtk5.pl starten.

BESSER
2. FHEM: installier Dir ggf zum Testen ein leeres FHEM (macht ja nix bei anderer IP oder bei geä. ports), lad das ECOTOUCH-Modul, dann
     "define myheatpump ECOTOUCH 192.168.xx.yy 30 5 Default:water,heating,cooling,comp1,comp2"
Dann schaun wir mal was im Reading steht  :)

Ggf vorher im Device global verbose auf 5 setzen, dann wird mehr ins globale Log geschrieben...

Grüße, Lutz

Phili

So bin heute mal dazu gekommewn das Modul zu testen. Läuft soweit. Temps werden so angezeigt wie auch über meine HTTPMOD Methode. Das einzige was nicht läuft sind die I51 stati. Meine bits sind anders als bei dir. Ext. Wärmeerzeuger ist bei mir auf 6 und Verdichter auf 5. Analog zu der Liste hier: https://github.com/openhab/openhab/blob/master/bundles/binding/org.openhab.binding.ecotouch/src/main/java/org/openhab/binding/ecotouch/EcoTouchTags.java
Ich lass es mal über Nacht parallel laufen und loggen.

Phili

Die Betriebsstunden werte ich übrigens über HourCounter aus. Ich lasse mir dazu die stati "1" aus I51 zählen und lasse sie mir dann grafisch ausgeben (pro Tag/pro Monat)

LR66

Das I51-Wort wird bei mir eigentlich identisch ausgewertet wie bei openhab (beachte Bit 0...11):
my @default_state_word =(
#[bitval,name_bit   ,modul      ,usage], #description_de
[1,'state_sourcepump'   ,'geo'      ,1], #'Status Quellenpumpe'
[2,'state_heatpump'   ,'main'      ,1], #'Status Heizungsumwälzpumpe'
[4,'state_evd'      ,'geo'      ,1], #'Status Freigabe Regelung EVD/Magnetventil'
[8,'state_comp1'   ,'comp1'   ,1], #'Status Verdichter 1'
[16,'state_comp2'   ,'comp2'   ,1], #'Status Verdichter 2'
[32,'state_extheater'   ,'main'      ,1], #'Status externer Wärmeerzeuger'
[64,'state_alarm'   ,'main'      ,1], #'Status Alarmausgang'
[128,'state_cooling'   ,'main'      ,1], #'Status Motorventil Kühlbetrieb'
[256,'state_water'   ,'water'   ,1], #'Status Motorventil Warmwasser'
[512,'state_pool'   ,'pool'      ,1], #'Status Motorventil Pool'
[1024,'state_solar'   ,'solar'   ,1], #'Status Solarbetrieb'
[2048,'state_cooling4way','cooling'   ,1], #'Status 4-Wegeventil im Kältekreis'
);


Wenn Du schreibst, dass Dein 'Verdichter auf 5' liegt, entspricht das sicher Bit4 (mit Bitwert 16 s.o.) und damit comp2 (wenn man bei 0 beginnt). Könnest Du mal ein Screenshot Definition und Readings schicken?


LR66

Zu Deiner Variante mit HTTPMOD auszulesen: sowas wie Außentemp, Wassertemperatur über Tag liefert immer korrekte Werte. Heizungs- oder Kühlungsflow/returnwerte sind nur bei laufender Umwälzpumpe und jeweiligem Modus Heizung/Kühlung  korrekt.

Phili

Hi Lutz,

hier mal mein Reading ohne das Geo Modul:

(http://www2.pic-upload.de/thumb/29591842/Unbenannt.jpg)

Ich bin verwirrt in deinem Modul wird Verdichter 1 als aktiv angezeigt, über HTTPMOD Verdichter 2.

Hier mal meine code über HTTPMOD:
define HeizungHTTP HTTPMOD http://192.168.0.9/cgi/readTags 600
attr HeizungHTTP userattr disable enableControlSet event-on-change-reading reAuthRegex reading1Expr reading1Name reading1Regex reading2Expr reading2Name reading2Regex reading3Expr reading3Name reading3Regex reading4Expr reading4Name reading4Regex reading5Expr reading5Name reading5Regex reading6Expr reading6Name reading6Regex reading7Expr reading7Name reading7Regex reading8Expr reading8Name reading8Regex reading[1-4]+Expr reading[1-4]Expr readingsExpr.* readingsRegex requestData requestHeader requestHeader.* requestHeader1 requestHeader2 requestHeader3 requestHeader4 sid0URL sid1Data sid1IDRegex sidURL stateFormat verbose
attr HeizungHTTP alias Waterkotte
attr HeizungHTTP disable 0
attr HeizungHTTP enableControlSet 1
attr HeizungHTTP group Temperatur
attr HeizungHTTP reAuthRegex .*E_NEED_LOGIN.*
attr HeizungHTTP reading1Expr $val/10
attr HeizungHTTP reading1Name AußenTemperatur
attr HeizungHTTP reading1Regex #A1\s+S_OK\n\d+\s(-{0,1}\d+)
attr HeizungHTTP reading2Expr $val/10
attr HeizungHTTP reading2Name Außentemperatur_1h
attr HeizungHTTP reading2Regex #A2\s+S_OK\n\d+\s(-{0,1}\d+)
attr HeizungHTTP reading3Expr $val/10
attr HeizungHTTP reading3Name Außentemperatur_24h
attr HeizungHTTP reading3Regex #A3\s+S_OK\n\d+\s(-{0,1}\d+)
attr HeizungHTTP reading4Expr $val/10
attr HeizungHTTP reading4Name Temperatur_Rücklauf_Soll
attr HeizungHTTP reading4Regex #A31\s+S_OK\n\d+\s(-{0,1}\d+)
attr HeizungHTTP reading5Expr $val/10
attr HeizungHTTP reading5Name Temperatur_Rücklauf
attr HeizungHTTP reading5Regex #A30\s+S_OK\n\d+\s(-{0,1}\d+)
attr HeizungHTTP reading6Expr $val/10
attr HeizungHTTP reading6Name Temperatur_Warmwasser_Soll
attr HeizungHTTP reading6Regex #A37\s+S_OK\n\d+\s(-{0,1}\d+)
attr HeizungHTTP reading7Expr $val/10
attr HeizungHTTP reading7Name Temperatur_Warmwasser
attr HeizungHTTP reading7Regex #A19\s+S_OK\n\d+\s(-{0,1}\d+)
attr HeizungHTTP reading8Expr $val/10
attr HeizungHTTP reading8Name VisuStatus
attr HeizungHTTP reading8Regex #I51\s+S_OK\n\d+\s(-{0,1}\d+)
attr HeizungHTTP requestData n=8&t1=A1&t2=A2&t3=A3&t4=A31&t5=A30&t6=A37&t7=A19&t8=I51
attr HeizungHTTP requestHeader1 User-Agent: curl/7.45.0
attr HeizungHTTP requestHeader2 Accept: */*
attr HeizungHTTP requestHeader3 Cookie: IDALToken=$sid
attr HeizungHTTP sid1Data username=admin&password=wtkadmin
attr HeizungHTTP sid1IDRegex .*IDALToken=([0-9a-z]*).*
attr HeizungHTTP sidURL http://192.168.0.9/cgi/login
attr HeizungHTTP stateFormat {sprintf("AußenTemperatur %.1f °C, Rücklauf %.1f °C", ReadingsVal($name,"AußenTemperatur",0), ReadingsVal($name,"Temperatur_Rücklauf",0))}
#attr HeizungHTTP event-on-change-reading Temperatur
#attr HeizungHTTP sidURL http://192.168.0.9/cgi/login?username=admin&password=wtkadmin
define SVG_Waterkotte SVG logdb:SVG_Waterkotte:HISTORY
attr SVG_Waterkotte fixedrange 2days
attr SVG_Waterkotte group Waterkotte
attr SVG_Waterkotte room Hausanschlussraum,Plots
define SVG_Waterkotte_WW SVG logdb:SVG_Waterkotte_WW:HISTORY
attr SVG_Waterkotte_WW fixedrange 2days
attr SVG_Waterkotte_WW group Waterkotte
attr SVG_Waterkotte_WW room Hausanschlussraum,Plots
define SVG_Waterkotte_Aussen SVG logdb:SVG_Waterkotte_Aussen:HISTORY
attr SVG_Waterkotte_Aussen fixedrange 2days
attr SVG_Waterkotte_Aussen group Waterkotte
attr SVG_Waterkotte_Aussen room Hausanschlussraum,Plots
define SVG_Waterkotte_State SVG logdb:SVG_Waterkotte_State:HISTORY
attr SVG_Waterkotte_State group Waterkotte
attr SVG_Waterkotte_State room Hausanschlussraum
define SVG_Waterkotte_State2 SVG logdb:SVG_Waterkotte_State2:HISTORY
attr SVG_Waterkotte_State2 group Waterkotte
attr SVG_Waterkotte_State2 room Hausanschlussraum,Plots



define Heizung.Verdichter dummy
attr Heizung.Verdichter alias Verdichter
attr Heizung.Verdichter devStateIcon 0:sani_pump@grey 1:sani_pump@green
attr Heizung.Verdichter group Heizung.Status
attr Heizung.Verdichter room Hausanschlussraum
define Heizung.Verdichter2 dummy
attr Heizung.Verdichter2 alias Verdichter2
attr Heizung.Verdichter2 devStateIcon 0:sani_pump@grey 1:sani_pump@green
attr Heizung.Verdichter2 group Heizung.Status
attr Heizung.Verdichter2 room Hausanschlussraum
define Heizung.Heizumwaelzpumpe dummy
attr Heizung.Heizumwaelzpumpe alias Heizungsumwälzpumpe
attr Heizung.Heizumwaelzpumpe devStateIcon 0:sani_garden_pump@grey 1:sani_garden_pump@green
attr Heizung.Heizumwaelzpumpe group Heizung.Status
attr Heizung.Heizumwaelzpumpe room Hausanschlussraum
define Heizung.Quellpumpe dummy
attr Heizung.Quellpumpe alias Quellpumpe
attr Heizung.Quellpumpe devStateIcon 0:sani_garden_pump@grey 1:sani_garden_pump@green
attr Heizung.Quellpumpe group Heizung.Status
attr Heizung.Quellpumpe room Hausanschlussraum
define Heizung.extWaermeerzeuger dummy
attr Heizung.extWaermeerzeuger alias Ext. Wärmeerzeuger
attr Heizung.extWaermeerzeuger devStateIcon 0:sani_garden_pump@grey 1:sani_garden_pump@green
attr Heizung.extWaermeerzeuger group Heizung.Status
attr Heizung.extWaermeerzeuger room Hausanschlussraum

define HeizungVisuNotify notify HeizungHTTP:VisuStatus:.* {\
\
my $nVisuStatus=ReadingsVal($NAME,"VisuStatus",0);;\
\
my $thisStatus = ($nVisuStatus & 1)>0?1:0;;\
fhem "setreading Heizung.Quellpumpe state $thisStatus";;\
\
$thisStatus = ($nVisuStatus & 2)>0?1:0;;\
fhem "setreading Heizung.Heizumwaelzpumpe state $thisStatus";;\
\
$thisStatus = ($nVisuStatus & 4)>0?1:0;;\
fhem "setreading Heizung.Verdichter state $thisStatus";;\
\
$thisStatus = ($nVisuStatus & 5)>0?1:0;;\
fhem "setreading Heizung.Verdichter2 state $thisStatus";;\
\
$thisStatus = ($nVisuStatus & 6)>0?1:0;;\
fhem "setreading Heizung.extWaermeerzeuger state $thisStatus";;\
\
if ($nVisuStatus & 7 > 0 ) {\
  fhem "define HeizungHTTPRead at +00:02:00 set HeizungHTTP reread";;\
}\
}


Gruß
Philipp

LR66

Hi, aber das sieht doch ganz gut aus mit den Daten über mein Modul.
Mit Deinem HttpMod wird der Status bei Dir über das I51 ermittelt, da ist der Code nicht ganz korrekt: auch wenn ich den ? Operator nicht so kenne, das mit ($nVisuStatus & 5)>0?1 kann nicht passen, da müsste jeweils der Bitwert stehen - das einzige wo es passt scheint Umwälzpumpe zu sein (...& 2). Gib in den Zeilen mal den Bitwert aus meinem Code s.o. an.
Über mein Modul ist schon deutlich zu sehen, dass bei Dir zum einen das State-Bit im I51 bei Aktivität Kompressor1 angeht und auch die relevanten weiteren Tags zu Comp1 (Ophrs und Leistung). Bei mir wird Aktivität des einen Kompressors nur über Tag comp1_state gezeigt, bei Dir bleibt das auf 0 - sind halt Typunterschiede. Interessant ist auch der Wert in comp1_state_? - mir ist die Bedeutung nicht klar (daher das Fragezeichen). Bei mir steht da seit längerem nur 20 drin. Findest Du den Wert bei Dir am Pumpendisplay?
Man könnte übrigens auch noch die Ventilstellungen Richtung Kompressor (wie am Schaubild), aber bringt m.E. nix. Vielleicht könnten wir mal telefonieren- schick mir ggf. mal PN.
Grüße, Lutz

Phili

Hi Lutz,

können wir gerne machen (schick dir Daten per PN).

Ich hab mein HTTPMOD jetzt mal komplett auskommentiert und nur noch alles über dein Modul laufen lassen. Ich hab im log relativ oft die message "ECOTOUCH_Login: message: #E_TOO_MANY_USERS". Habe mal mit dem Akualisierungswert rumgespielt aber die Meldung kommt trotzdem ab und an. Ich glaub dadurch werden manchmal nictht alle Werte geloggt und dadurch bekomme ich Abrisse in den plots (siehe Bild).
(http://www2.pic-upload.de/thumb/29606306/Unbenannt.jpg)

Noch eine Frage: Kann es sein das durch das Modul automatisch eine log Datei angelegt wird? Da ich über logdb logge wäre es gut, wenn man das durch den user selbst in der FHEM.cfg definieren könnte.
comp1_state_? steht bei mir immer auf 1891. Ich hab auch schon in der Waterkotte gesucht aber nichts gefunden.
Ich muss noch unterdrücken, dass die Dummywerte -999 in mein log geschrieben werden. Das zerhaut nämlich sämtliche plots :D.

Gruß
Philipp

Phili

Und das kommt immer beim speichern der fhem.cfg:
PERL WARNING: Use of uninitialized value in string eq at ./FHEM/89_ECOTOUCH.pm line 552, <$fh> line 325.

dero

GEIL!

Wenn Du jetzt noch die Fehlermeldungen einbaust, bete ich dich an! D8 ist z.B. F121.


D1 -> F100: Motorschutzschalter 1
D2 -> F101: Motorschutzschalter 2
D3 -> F102: Phasenfehler
D4 -> F103: Störungsmeldung Quellenseite
D633 -> F104: Störungsmeldung Heizungsseite
D5 -> F110: HD-Pressostat
D6 -> F111: Verflüssigungstemperatur zu niedrig
D7 -> F120: ND-Pressostat
D8 -> F121: Drucküberwachung Verdampfer
D9 -> F122: Temperaturüberwachung Verdampfer
D10 -> F123: Nasslauf
D11 -> F130: Ausfall 4-Wege Ventil
D12 -> F200: Steuergerät Kommunikationsüberwachung Ausfall
D13 -> F201: Das Gerät pCOe oder EVD ist nicht vorhanden, funktioniert nicht richtig
D14 -> F301: Ventilmotorfehler
D15 -> F600: Störung Ausseneinheit
D671 -> Es liegen keine weiteren Meldungen vor!


Meine Pumpe zeigt schon wieder F121 an und mein Installateur ist insolvent...

dero

LR66

Hi,
freut mich. Hast Du eine Geo-Anlage? Ich hatte das Glück noch keine Fehler zu haben. Das es einen Alarm gab, wurde Dir aber hoffentlich übers Icon und Reading main_state_alarm = 1 (das ist D671) gezeigt? Sollte man für das Fehlerlisting ggf. einen Get-Befehl mit temporärem Listing auf dem Bildschirm anlegen? Noch mehr readings finde ich nicht unbedingt sinnvoll... Hast Du die App auf Handy laufen und zeigt die Dir die einzelnen Fehler? Hat Deine Pumpe ein über Browser aufrufbares Interface ähnlich der App?
Grüße, Lutz

dero

Ja, Ai1 Geo. Montagsgerät,  nur Ärger. Gestern abend wieder Ausfall mit F121. Habe gleich ne Mail an Waterkotte geschrieben. Vielleicht kriegen die es ja diesmal hin. Ich hatte vor 1 Jahr das gleiche Problem. Mehrfacher Ausfall mit F121 und der Heizstab hat schön Euronoten verballert. Sie haben dann ein Ventil getauscht und meinten das wäre es gewesen. Jetzt der gleich Mißt...

Zu Deiner Frage: Die app ist nur ein html5 frontend im WebView. Ich habe de Files aus dem apk gezogen und auf meinen Webserver gepackt...

Dero

LR66

Hi Dero,
das ist ja ärgerlich. Meine Air läuft seit Feb 13 so vor sich hin und Heizstab war noch kein Thema. Ich hatte - wenn ich direkt auf die IP meiner Pumpe gegangen bin - früher nur ein Interface des Controllerlieferanten Carel. Hab dann über Support ein Webinterface nachinstalliert - gleiche Optik wie die App aber paar weniger anzeigen (also kann mit Browser auch direkt auf die WP IP um das Interface zu sehen). Die Apk hatte ich  mir auch angesehen, hätte nie vermutet dass man das auch auf'nen Webserver ziehen kann, nicht schlecht...
zum Modul:
Ich schau mal, ob ich noch ein Zusatzmodul 'error' anlege, was man sich mit einbinden kann und Deine Tags in readings holt bzw. wenn ich das hinbekomme, auch eine get-Funktion. Hast Du gefunden, wie Du im Modul-Code für Dich uninteressante Tags ausblenden kannst ? Nutzt Du es - ich könnte dann ja mal eine passende Konfiguration für Ai1Geo anlegen.
Funktioniert es bei Dir, dass nur bei entsprechender Aktivität (z.B. Geopumpe) die passenden readings aktualisiert werden? Es ist ja nicht zielführend z.B. Vorlauf zu messen, wenn nicht die entsprechende Pumpe läuft, da die Werte sonst nicht passen - ist entsprechen schwieriger im SVG darzustellen, da man im Log ja logischerweise Zeitlücken für Temperaturen/Aktivitäten hat (nicht vermeidbar).
Lutz

dero

Firma Waterkotte checkt es gerade durch, scheint evtl. ein Softwarefehler zu sein...

Mein Installateur: Habe jetzt herausgefunden, dass es an der gleichen Adresse unter dem gleichen Internetauftritt nun wieder eine Firma gibt. Meine Gewährleistung ist allerdings an die alte Frima gebunden...

Alte Firma: https://www.moneyhouse.de/athermoglobe-GmbH-Berlin

Zitat04.12.2015 / Veränderung

HRB 72583 B: a.thermoglobe GmbH, Berlin, Berliner Straße 28 A, 13127 Berlin.
Rechtsverhaeltnis: Die Gesellschaft ist auf Grund der Eröffnung des Insolvenzverfahrens gemäß § 60 Abs. 1 Nr. 4 GmbHG aufgelöst.

Neue Firma: https://www.moneyhouse.de/Thermoglobe-Hausbau-und-Energietechnik-GmbH-Berlin

Zitat
06.03.2015 /Neueintragung

HRB 165411 B: Thermoglobe-Hausbau und Energietechnik GmbH, Berlin, Berliner Straße 28 a, 13127 Berlin.
Firma: Thermoglobe-Hausbau und Energietechnik GmbH;
Sitz / Zweigniederlassung: Berlin;
Geschäftsanschrift: Berliner Straße 28 a, 13127 Berlin;
...

dero

dero

So, Waterkotte hat gestern meinte Pumpe durchflasht. Ich habe jetzt die neuste Version drauf. User/Passwort ist nun waterkotte/waterkotte und easy-con web ist jetzt direkt per LAN erreichbar...

Ich habe außerdem an Deinem Modul ein paar kleine Ändernungen vorgenommen:

- Fehler beim allerersten Login führten dazu, dass das Moduls den Timer nicht gestartet hat und also nix mehr kam
- Statt sporadisch -999 in die Readings zu setzen, wird dies nun einfach ignoriert und das Reading auf dem letzten Stand gelassen
- für geo_pressure_* und geo_COP habe ich Faktor 0.1

dero

Phili

Danke Dero für das update, gleich mal testen.  :)

Edit: Wäre es möglich username/password als variable im define mitgeben zu können? Ich kann kein perl programmieren sonst hätte ich es selbst versucht ;). Hab es für mich jetzt wieder direkt im code abgeändert.

Gruß
Philipp

dero

Jetzt wäre es noch toll, wenn jemand eine Idee hätte, wie man die Heizkurve optimieren könnte.

Angenommen, wir loggen die ganzen Daten und ich hätte eine zeitlich gleiche Fehlermessreihe der Raumtemperatur, könnten man per Regression die Werte für die Heizkurve optimieren.

lordblobo

Zitat von: dero am 11 Februar 2016, 08:44:42
Ja, Ai1 Geo. Montagsgerät,  nur Ärger. Gestern abend wieder Ausfall mit F121. H

Ja, der F121. Scheint wohl weiter verbreitet zu sein.
Ich benutze zwar nicht FHEM sondern ein selbst geschriebenes Plugin für smarthome.py, kann aber ggf. etwas hier beitragen:

Auch meine Anlage hat von Anfang an dieses Problem, nur bei tieferen Quellentemperaturen (<2°C) und WW-Bereitung, also entsprechend Spreizung - im Heizbetrieb tritt das Problem nie auf. Es handelt sich um eine DS5027 (DS5010.5).
Mein Heizungsbauer ist zum Glück nicht insolvent und sehr bemüht, bekam das Problem aber selbst und mit Waterkotte vor Ort bisher nicht in den Griff.
Nach Tausch eines Drucksensors und FW-Update ging die Häufigkeit zurück, weiterhin wurde jetzt noch die Kühlmittelmenge reduziert, um das Expansionsventil in einen anderen Arbeitsbereich zu bringen.
Problem besteht aber nach wie vor sporadisch und nervt.

Kleiner Tipp, ich konnte herausfinden dass sich durch Schreiben einer 1 auf I101 die Fehlermeldungen auch remote quittieren lassen, d.h. ich habe mir über ein Skript einen Workaround gebaut:
F121 wird erkannt, eMail an mich verschickt, Fehler automatisch quittiert. Anlage läuft wieder. Ist natürlich trotzdem nur ein Workaround, funktionierte aber mit der alten FW reibungslos.

Bei der neuen FW wird das Update der Variablen über Netzwerk deaktiviert, solange das Display an der WP lokal benutzt wird, um die Interface-Geschwindigkeit zu optimieren. Aktualisierung der Variablen findet erst wieder statt, sobald der "Bildschirmschoner" (Waterkotte-Logo) aktiv ist.
Das führt dummerweise dazu, dass der Fehler auftritt, Meldung wird auf Display ausgegeben. Damit ist erst mal 10 Minuten lang die Remote-Anbindung gekappt (Zugriff geht noch, aber Werte werden halt nicht aktualisiert). Erst nach 10 Minuten wird dann der F121 durch mein Skript detektiert und bestätigt. Damit ist wieder das Display aktiv (Fehlermeldung geht weg), die Netzwerkverbindung wiederum 10 Minuten "gekappt" und ich verpasse Daten und Ereignisse in diesem Zeitraum. Danach läuft alles wieder.

Alleine bei meinem Heizungsbauer sind im Moment drei Anlagen von Waterkotte von F121 betroffen.
Ich werde berichten wenn ich neue Erkenntnisse habe.

dero

Seit auf meiner Pumpe nun die letzte Version geflasht wurde habe ich ein neues Problem:

Alle 1-2 Wochen stellt sich plötzlich die Uhrzeit um 8 Stunden zurück. Datum und Minuten bleiben richtig. Bringt natürlich die Zeitplanung durcheinander...

Ich konnte den Zeitsprung im FhemLog sehen, aber den Grund erkenne ich nicht.

Hat jemand eine Idee??? Oder weiß jemand, in welches Register ich die Stunden zum Fixen schreiben könnte?

Dero

Phili

Wir kriegt man denn über haupt die neueste fw auf de WP? Welche Version ist die neueste?

lordblobo

Zitat von: Phili am 31 März 2016, 19:13:52
Wir kriegt man denn über haupt die neueste fw auf de WP? Welche Version ist die neueste?

Selber gar nicht, nur über den Heizungsbauer/Waterkotte.
Steuerung und Touch-Display werden getrennt programmiert und brauchen wohl zusammenpassende Firmwarestände.

ak323

Hallo Lutz, Kollegen,
ich arbeitet gerade an einem Modbus Modul für die Waterkotte WP mit dem WWPR - altes Modell.
Die Register des WWPR2 scheinen mit denen des WWPR übereinzustimmen ...

Ich bin aktuell noch auf der Suche nach Informationen über weitere Register.
Mit fehlen z.B. Infos zu den Registern für alle Verbrauchsdaten, die Pumpendrehzahlen/leistung usw. ... diese liegen doch bestimmt auch vor ...

Falls jemand eine weiterführende Liste der Register des WWPR/WWPR2 hat wäre ich an entsprechender Info interessiert .. !

Danke und Grüße eines "Waterkotte-Leidensgenossen"   :(
ak323
RaspberryPi 2 im 19" Rack mit 16x2 i2c LCD, FHEM, diverse HomeMatic, 1-Wire (8x DS18B20, 3x DS2408, 2x DS2413, 5x DS2401, DS2423 ATTiny) über DS9490R#, Waterkotte Ai1QE (WWPR) Wärmepumpe über Modbus, WH1080 über Signalduino, 433MHz Funksteckdosen, WiFi RGBWW via Tasmota, ...

ak323

RaspberryPi 2 im 19" Rack mit 16x2 i2c LCD, FHEM, diverse HomeMatic, 1-Wire (8x DS18B20, 3x DS2408, 2x DS2413, 5x DS2401, DS2423 ATTiny) über DS9490R#, Waterkotte Ai1QE (WWPR) Wärmepumpe über Modbus, WH1080 über Signalduino, 433MHz Funksteckdosen, WiFi RGBWW via Tasmota, ...

dero


oetti77

Hallo in die Runde,

besteht die Möglichkeit den Fehlercode direkt in einem Reading auszugeben?
Also "0" wenn alles ok ist, oder bspw. F102 beim Phasenausfall.

Gruß
Chris
FHEM 5.8 (CentOS 7 auf ESXi 6.5), HM-CC-RT-DN, HM-Sec-Sc, HM-WDS40-TO, HM-LC-SW1-FM, HM-LC-Bl1PBU-FM, Sonos, Alexa, Nest Protect 2, Tradfri

Module: HUE, Lightify, ECOTOUCH, TelegramBot, Sonos, Alexa, Pushover, Enigma2

ak323

Hi zusammen.
Hat jemand ne Ahnung wo dieser "Phasenausfall" F102 eigentlich herkommt ?
Wieso fällt ne Phase denn mal so aus ? Wackelkontakt ?
Ich hatte das auch schon mal mit meiner Ai1QE ...

VG ak323
RaspberryPi 2 im 19" Rack mit 16x2 i2c LCD, FHEM, diverse HomeMatic, 1-Wire (8x DS18B20, 3x DS2408, 2x DS2413, 5x DS2401, DS2423 ATTiny) über DS9490R#, Waterkotte Ai1QE (WWPR) Wärmepumpe über Modbus, WH1080 über Signalduino, 433MHz Funksteckdosen, WiFi RGBWW via Tasmota, ...

oetti77

Bei mir ist es 'ne defekte Sicherung gewesen. Seit dem Austausch läuft's wieder rund. Allerdings ist mir dabei aufgefallen, dass der Fehler nirgendswo geloggt/angezeigt wurde. Das Reading "main_state_alarm" blieb auch beim Ausfall auf 0.

Welches Reading kann denn genutzt werden, um auf Fehlermeldungen reagieren zu können? Ich würde mir gern eine Pushover/Whatsapp oder sonstige Nachricht schicken lassen, sobald ein Thema existiert.

Gruß
Chris
FHEM 5.8 (CentOS 7 auf ESXi 6.5), HM-CC-RT-DN, HM-Sec-Sc, HM-WDS40-TO, HM-LC-SW1-FM, HM-LC-Bl1PBU-FM, Sonos, Alexa, Nest Protect 2, Tradfri

Module: HUE, Lightify, ECOTOUCH, TelegramBot, Sonos, Alexa, Pushover, Enigma2

Spielkind

Ist dieses Modul noch aktiv in der Entwicklung? Oder ist es ggf. besser/einfacher eine Ai1 Geo über das Modbus Modul abzufragen?
Ich habe auch immer wieder Probleme mit "too many users", ggf. sollte man ein expliziten logout einbauen?

Phili

Ich glaube nicht. Aber mE ist auch alles an Daten verfügbar welche man überhaupt Abfragen kann. Was vermisst du noch?

Die "too many users" Meldung habe ich auch ab und an.

Gruß
Philipp


Gesendet von iPhone mit Tapatalk

dero

Was mir fehlt, ist eine Möglichkeit, Daten in der Pumpe zu setzen, z.B. Heiztemperatur.

Ansonsten läuft es gut. Habe mit den geloggten Daten kürzlich meine Heizkurve per linearer Regression optimiert!

Spielkind

Zitat von: dero am 15 Januar 2017, 20:39:51
Was mir fehlt, ist eine Möglichkeit, Daten in der Pumpe zu setzen, z.B. Heiztemperatur.

Ansonsten läuft es gut. Habe mit den geloggten Daten kürzlich meine Heizkurve per linearer Regression optimiert!

Was bringt das? Bin sowohl bei fhem als auch bei waterkotte Frischling.
Gibt es da eine Anleitung? Habt ihr ggf. eure relevanten Config Parts?


Spielkind

Für jede Art von Einsteiger-Doku bin ich dankbar, bei FHEM würden mich besonders "sinnvolle gplots" interessieren, z.Z. hab ich nur einen für die Wasserspeichertemperatur und einen mit Aussen/Raumtemperatur.

Mein Heizungsinstallateur ist da leider nicht mit mir auf einer Wellenlänge bzw. ich versteh ihn nicht, oder ich bin mir nicht sicher ob er genau weiss was er erzaehlt.

Phili

Zitat von: dero am 15 Januar 2017, 20:39:51
Was mir fehlt, ist eine Möglichkeit, Daten in der Pumpe zu setzen, z.B. Heiztemperatur.

Ansonsten läuft es gut. Habe mit den geloggten Daten kürzlich meine Heizkurve per linearer Regression optimiert!

Kannst du kurz erklären, nach welchem Model du die lineare Regression gemacht hast? Dazu müsstest du doch die Innentemperatur mit messen oder? Und die ist ja von so vielen anderen Faktoren beinflussbar (Luftfeuchte, eingestellte Durchflussgeschwindikeit etc.).
Ich überlege auch schon die ganze Zeit, ob und wie man da was optimieren könnte.

Gruß
Philipp

Barun

Hallo Zusammen,

leider bekomme ich das Modul nicht installiert.

Habe es über ein Define versucht:
define myheatpump ECOTOUCH 10.3.2.23 30 5 Default:water,heating,cooling,comp1,comp2

Dann "Shutdown restart" --> Fehlermeldung: "configfile: Unknown module ECOTOUCH"

In der Command-Ref habe ich das Modul nicht gefunden. https://fhem.de/commandref.html
Auch im SVN ist nichts zu finden: https://fhem.svn.sourceforge.net/svnroot/fhem/trunk/fhem/FHEM/

Any hints?

Barun

oetti77

Hast du das Modul aus dem ersten Beitrag heruntergeladen und in den FHEM-Ordner gepackt?

Gruß
Chris
FHEM 5.8 (CentOS 7 auf ESXi 6.5), HM-CC-RT-DN, HM-Sec-Sc, HM-WDS40-TO, HM-LC-SW1-FM, HM-LC-Bl1PBU-FM, Sonos, Alexa, Nest Protect 2, Tradfri

Module: HUE, Lightify, ECOTOUCH, TelegramBot, Sonos, Alexa, Pushover, Enigma2

LR66

@Barun
Morgen Barun,
wie Chris schrieb: die Version aus erstem Beitrag oder zwischendrin von Dero downloaden und vorher am Besten editieren (!!!) der user und password Deiner Pumpe müssen angepasst werden und ggf. jetzt oder später einige nicht interessante Tags der Pumpe (die ausgelesen und zu Readings werden) auskommentiert werden.
Dann in den Ordner mit den anderen Modulen kopieren und ggf. Rechte anpassen.
Sorry... das Modul ist nicht optimal programmiert - läuft bei mir im täglichen Einsatz seit damals, aber auf Raspberry Pi1 und mit blockender Netzwerkabfrage scheint es ganzschön Last zu erzeugen.
Hast Du eine Luft-Wärmepumpe mit 2 Kompressoren? Dann müssen wir ggf erstmal schauen, wie deren Aktivität sichtbar wird. Probier mal damit zu starten und ggf. Logfile anschauen. Ich werde das Modul nochmal überarbeiten, aber ob das für alle Anlagensorten so klappt... mal sehen.
In dem Zustand und bei der schlechten Pflege hat es im SVN noch nix zu suchen.
Schönen Sonntag,
Lutz

Barun

 ::) ::) ::)

Einloggen, download, kopieren, definieren, password editieren und fertig.
Hab die ganze Zeit den Thread gelesen ohne eingeloggt zu sein.

Vielen Dank!

@LR66: Habe eine Ecotouch Air AI1 mit einer Außeneinheit.

Barun

Hallo Zusammen,

die ersten "Gehversuche" mi dem Modul waren problemlos. Jetzt die nächsten Fragen  :)

  • Gibt es eine Möglichkeit auch Werte (z.B. den PV-Ertrag) zu schreiben?
  • Wie macht Ihr das Update der Software auf der Anlage? Bei mir ist die Firmware 01.04.11-219 BIOS 6.08 installiert. Steht bei Euch auch Pre-Alpha beim Software Release?
  • Seht Ihr auch manchmal unplausible Werte, wie z.B. 50°C Vorlauf bei temp_return_set=23°C (Bug in der Anlage?) oder outside_temp_1h=-999 (Bug im Modul?) ?
Grüße
Barun

LR66

Hallo Barun,
zu Deinen Fragen:
- PV-Ertrag:
Die zugehörigen Tags und ob die auslesbar sind, kenne ich nicht. Da ich kein PV habe, ist das schwierig zu ermitteln - könnte man vielleicht im Quellcode der App (Java) erforschen, falls die das anzeigt. Oder mal nachsehen, ob die jmd. bei openHab mit drin hat

- bei mir ist Firmware 01.04.01 208 / Firmware Display V 01.01.07 / BIOS 06.08 von 01:08:12 / Hardware 11 / Release Alpha
  Für das Display hatte ich mal ein Update von Waterkotte erhalten, dass mir den LAN-Zugriff ähnlich wie App überhaupt erst ermöglichte. Zur Wartung im letzten Jahr hatte der Spezi mir von einem Update durch ihn abgeraten (er hatte bei anderen Anlagen Fehler)- selber machen ist m.E. nicht möglich und auch nicht erhältlich

- unplausible Werte:
Also wenn die Anlage Warmwasser macht, ist für diese Zeit z.B. main_temp_return entsprechend hoch und bei Kühlung etc. anders, am Besten mit heating_temp_return / cooling_temp_return / water_temp vergleichen (bzw. diese zur Auswertung nehmen)... kommt drauf an was die Anlage macht. Der set-Wert beim main-modul richtet sich auch nach dem, was die Anlage gerade macht -> ich denke der Wert wird aus dem set des jeweiligen Moduls geholt und als Vorgabe für weiteres genommen. Das kann nach Warmwasserbereitung und folgendem Heizen auch 1-3 Sekunden unstimmig sein - kein Bug in der Anlage (da steht halt noch kurz heisses Wasser von der Bereitung und dann beginnt der Heizkreislauf erst zu zirkulieren...). Ein Wert für outside_temp_1h = -999 müsste meinem Programm-Default entsprechen, wenn beim Auslesen was schief ging ... müsste im Code zu finden sein. Unplausible Werte oder -999 hatte ich noch nicht.
Probier mal mit interval >= 60 laufen zu lassen ?!
Grüße, Lutz

nt86

Hallo zusammen,

wir haben eine Eco Touch Ai1 Geo und ich hätte zum Thema ebenso zwei Fragen:

a) die Meldung "too many users" scheint bei mir nun dauerhaft zu sein, Neustart wurde durchgeführt. Kann ich die Sessions irgendwo sehen und terminieren?

b) konnte jemand die Energiewerte ermitteln? (elektrische Leistung Verdichter); hierzu ist u.a. der Wert A452 notwendig, welcher aber nicht im Klartext den kWh Wert ausgibt sondern über ein parser für das Highchart aufbereitet wird. Hier (vermutlich) die betreffende Zeile aus dem Parser-Script:

idx    = 452; i32 = ((parseInt(analogs[idx]*10,10) <<16)>>>0) | ((parseInt(analogs[idx+1]*10,10)>>>0) & 65535); rval = IEEE754_Hex32ToDez(i32.toString(16), 1); console.log("rval", rval); (rval > 0) ? data5.push(['Warmwasser', Number(Number(rval)), Number(analogs[442])]) : console.log('Warmwasser no push');


VG


LR66

Hallo,
a) die Meldung kommt, wenn Du zu oft in kurzer Zeit mit dem einzig möglichen user auf die Pumpe zugreifst, d.h. über mehrere laufende Apps oder mehrere Fhem oder einfach zu oft hintereinander das Fhem-Modul neu startest (letzteres wird es sein). Ich schätze, dass nach 2...5...10 Minuten wieder Ruhe ist. Also mal warten und interval auf 60s setzen ... damit geht es bei mir. Ist das Interval zu groß, wird ein Login mit jedem Zugriff neu nötig... auch nicht gut. Müsste im Logfile zu sehen sein, ggf verbose Attribut höher setzen.
b) fein, dass Du das erforscht hast... habe keine geo - kannst Du aber selber versuchen: mit Editor die Datei 89_ECOTOUCH.pm öffnen, Du findest da z.b. eine Zeile
['A452','tag_A452'      ,'unknown'   ,1,3],    #'A452 wk_parse.js Z.532ff = 15277' diese und oder weitere ändern:  'unknown' auf geo setzen, tag_... mit Deinem Wunschreadingname versehen, die 3 auf 1 (lesen mit jedem interval) oder auf 2 setzen (lesen alle n Intervalle). Die 1 davor ist ein Wertmultiplikator - bei Analogwerten (Start mit A) ist das eigentlich dann 0.1. Vermute Du musst mehrere weitere Tags auf die Art aktivieren und ermitteln, was den Wert ergibt ... kenn mich da mit Java aus der App nicht so aus.
Grüße, Lutz

KiK

Hallo zusammen,

erst einmal: Vielen Dank für für das Modul "ECOTOUCH". Ich konnte damit (als Neuling) meine Heizung ins FHEM gut einbinden! Tolle Sache so was - Respekt!

Ich habe noch 3 userReadings hinzugefügt, damit das Modul für mich im Endeffekt bessere Anzeigen bringt. Falls jemand das braucht, hier der Code bzw. die Erklärung:

attr wtk userReadings heating_temp_return_mod:main_state:.* { if ((ReadingsVal("wtk","state",0) ne "measure") && (ReadingsVal("wtk","state_before",0) eq "measure")) {ReadingsVal("wtk","main_temp_return","X1")} else {ReadingsVal("wtk","heating_temp_return_mod","X2")}},  state_before:main_state:.* { ReadingsVal("wtk","state","???") },  heating_temp_return_mod:heating_temp_return:.* {ReadingsVal("wtk","heating_temp_return","X3")},  main_state_measure:main_state:.* { if (ReadingsVal("wtk","state",0) eq "measure") {"1"} else {"0"}}

Motivation: Alle 20 min (durch Installateur eingestellt) geht die Wärmepumpe in den "measure" mode, pumpt hier mit der Umwälzpumpe den Heizkreis für 2 min herum und misst so die aktuelle Temperatur. Das Reading "heating_remp_return" erhält diesen Messwert nicht, lediglich im Heizbetrieb ("heating") wird der Wert aktualisiert. Das ist bei der Darstellung als Plot nicht so "schön" - ich hätte gerne gesehen, wie die Temperatur langsam fällt, bis die Heizung wieder anspringt.

Idee: Nach einem Messzyklus ("measure" mode springt auf einen anderen mode, z.B. "ready"), wird der aktuelle Wert "main_temp_return" mit verarbeitet, da dieser in diesem Moment die aktuelle Temperatur des Heizkreis' darstellt:

state_before: hier speichere ich den vorherigen state, um mitzukriegen, wann der measure-state beendet ist.

heating_temp_return_mod: der interessante Wert: beim Übergang von "measure" in einen anderen state wird der Wert = "main_temp_return" gesetzt, im state "heating" wird der Wert = "heating_temp_return" gesetzt. Hiermit stellt "heating_temp_return_mod" ziemlich gut den Temperaturverlauf im Heizkreis dar.

main_state_measure: ich stelle in einem Plot die verschiedenen 0/1 Zustände (Heizbetrieb, Kühlung, Alarm, Wasser etc.) gleichzeitig dar (jeweils mit offset).  Da der Messbetrieb auch interessant wäre, es davon aber keine 0/1 Zustandsvariable gab, habe ich diese als userReadings erstellt.

....nur falls das jemanden interessiert und vor den gleichen Problemen steht....

Gruß
KiK

Phili

Super Idee. Ich fand das auch immer blöd das die Plots immer nur Werte anzeigen wenn geheizt wird.

Kannst du deinen letzten Absatz näher erklären bzgl. der Zustände. Das interessiert mich auch.

Danke!

Philipp


Gesendet von iPhone mit Tapatalk

KiK

Hallo,
meinst du den Plot mit den Zuständen? Den hänge ich an, dann dürfte es klarer sein.
Gruß

Phili

Besten Dank! Gute Idee für die Umsetzung in einem Chart!


Gesendet von iPhone mit Tapatalk

Phili

Wie hast du die 0/1 Zustände übereinander bekommen? Hast du manuell was drauf addiert?


Gesendet von iPhone mit Tapatalk


Phili

Perfekt Danke. Mache es mit dblog da geht es mit
:::$val=($val*0,8+5)
Für eine Addition mit 5.

Danke für den Denkanstoß!


Gesendet von iPhone mit Tapatalk

LR66

Hi,
freut mich ja, dass das rudimentäre Modul eine Eigendynamik entwickelt. Hatte zw. Weihn. und Neujahr eigentlich weiter dran ar beiten wollen, aber bisher nur Umstellung auf Hashes für die Module einer Anlage und Nonblocking Nutzung angefangen. Das Abfragen der jew. Readings und Parsing je nach Modul und Aktivität hängt noch in der Warteschleife... werde mir Eure Themen ansehen bzw. könnt auch gern beitragen. Momentan werde ich für jedes Teil der Anlage ein Sub-Device anlegen, damit man das im Floorplan etc. besser anzeigen kann. Das zwischen den Messungszyklen (bei mir auch ~20min) keine (brauchbaren) Werte vorliegen, ist dem Prinzip geschuldet: es wird zwar ein Temp-Wert gemessen, aber da kein Wasserfluss taugt der Wert nix. Mal sehen, ob ich mal Zeit finde... es wird aber m.E. sinnvoll sein, weiterhin nur Werte für Heizung, Kühlung ... zu holen, wenn das jeweilige aktiv ist. Der Vor- und Rücklauf der Quelle (Luft oder Geo...) ist dann auch nur für den jew. Modus gültig.
Vg Lutz

Phili

Hi Lutz,

Wenn die Messung läuft, dann läuft doch auch die Umwälzpumpe und "schaufelt" Wasser durch die FuBo um zu messen wir warm das Wasser im Kreislauf ist. Deshalb finde ich es schon interessant zu sehen, wie sich die Temperatur langsam absenkt bis die Heizung wieder einsetzt.

Ich habe auf dem Gebiet aber auch nur gefährliches Halbwissen. [emoji6]

Vg,
Philipp

LR66

Hi Philipp,
hast Du ganz korrekt geschrieben - nur wenn Umwälzpumpe läuft, sind die Vor- oder Rücklaufwerte bzgl. Heizung oder Kühlung korrekt ... sonst liefert der Wert nur die Temp. des stehenden Wassers da wo der Sensorstandort ist - demnach nicht entsprechend dem, wie es sich in den Rohren der Räume entwickelt hat.
Ich lasse im Plot einfach vom letzten Hochheizzeitpunkt eine Linie runter zum neuen Startpunkt (bei heizen = niedrigerem) ziehen - da sieht man dieses Verhalten ganz gut: s. Anlage

Beim Warmwasserspeicher, Außentemp. (und viell. auch Pool, ext. Speicher, Raumsensor) stehen ständig aktuelle Werte an.

Vg Lutz

bioklima

Zitat von: KiK am 28 Januar 2018, 22:39:04
Hallo zusammen,

erst einmal: Vielen Dank für für das Modul "ECOTOUCH". Ich konnte damit (als Neuling) meine Heizung ins FHEM gut einbinden! Tolle Sache so was - Respekt!

Ich habe noch 3 userReadings hinzugefügt, damit das Modul für mich im Endeffekt bessere Anzeigen bringt. Falls jemand das braucht, hier der Code bzw. die Erklärung:

attr wtk userReadings heating_temp_return_mod:main_state:.* { if ((ReadingsVal("wtk","state",0) ne "measure") && (ReadingsVal("wtk","state_before",0) eq "measure")) {ReadingsVal("wtk","main_temp_return","X1")} else {ReadingsVal("wtk","heating_temp_return_mod","X2")}},  state_before:main_state:.* { ReadingsVal("wtk","state","???") },  heating_temp_return_mod:heating_temp_return:.* {ReadingsVal("wtk","heating_temp_return","X3")},  main_state_measure:main_state:.* { if (ReadingsVal("wtk","state",0) eq "measure") {"1"} else {"0"}}

...
state_before: hier speichere ich den vorherigen state, um mitzukriegen, wann der measure-state beendet ist.
...
Gruß
KiK

Hallo KiK,
Danke für die Umsetzung der userreadings, bei mir wird jedoch immer exakt der gleiche Wert in state_before eingetragen wie in state.  Ist das bei Dir auch so?
Gruß
Andreas
Raspi2B mit FHEM Razberry-ZWave/CUL-FS20 (noch Reste)/Homebridge/Landroid-S, Airupnp(Airplay für Sonos),HueBridge2,...

KiK

Hallo Andreas,
jetzt war ich länger nicht mehr ihm Forum - sorry.
Ich habe wohl diese userReadings in den letzten Jahren verändert. Aktuell sind die userReadings bei mir
state_before:measure\b
  {
  # Save state before measure
  # state = measure
  return(OldValue("wtk"));
  },
heating_temp_return_mod:main_temp_return:.*
  {
  # During heating: copy value main_temp_return 
  if (ReadingsVal("wtk","state",0) eq "heating")
   {
   ReadingsNum("wtk","main_temp_return",-999)
   }
  else
   {
   ReadingsNum("wtk","heating_temp_return_mod",-998)
   }
  },
heating_temp_return_mod:ready\b
  {
  # After measurement cycle: copy value main_temp_return (if the measurement was not directly after state "water")
  # state = ready
  if ((OldValue("wtk") eq "measure") && (ReadingsVal("wtk","state_before",0) ne "water"))
   {
   ReadingsNum("wtk","main_temp_return",-997)
   }
  else
   {
   ReadingsNum("wtk","heating_temp_return_mod",-996)
   }
  },
cooling_temp_return_mod:main_temp_return:.*
  {
  # During cooling: copy value main_temp_return 
  if (ReadingsVal("wtk","state",0) eq "cooling")
   {
   ReadingsNum("wtk","main_temp_return",-995)
   }
  else
  {
  ReadingsNum("wtk","cooling_temp_return_mod",-994)
  }
},
cooling_temp_return_mod:ready\b
  {
  # After measurement cycle: copy value main_temp_return (if the measurement was not directly after state "water")
  # state = ready
  if ((OldValue("wtk") eq "measure") && (ReadingsVal("wtk","state_before",0) ne "water"))
   {
   ReadingsNum("wtk","main_temp_return",-993)
   }   
  else
   {
   ReadingsNum("wtk","cooling_temp_return_mod",-992)
   }
  }

Vielleicht bringt dich das weiter. Ich verwende also für die Anzeige im SVG die Readings

  • cooling_temp_return_mod (im Sommer interessant)
  • heating_temp_return_mod (im Winter interessant)
...das Ergebnis passt bei mir.
Gruß

bioklima

Raspi2B mit FHEM Razberry-ZWave/CUL-FS20 (noch Reste)/Homebridge/Landroid-S, Airupnp(Airplay für Sonos),HueBridge2,...

PSI69

Hallo @KiK

Über Dein Modul bin ich von ein paar Tagen gestolpert, auf der Suche, wie ich meine neue Waterkotte in FHEM integrieren kann. Klappt gut, super!

Kannst Du hier die akteulle def von Deinem SVG posten? Aus dem Screenshot gehen die letzten Anpassungen von Dir mit den userReadings nicht hervor...

Du hast hier irgendwann erwähnt, Du bist dabei alles auf non-blocking umzustellen - gibt es hier vielleicht eine Version zum testen?

Danke & Gruß
Peter
FHEM auf RPi 5 unter Bookworm mit inzwischen einem ganzen Zoo von Geräten...