Alpha 2 Fussbodenheizungssteuerung im Fhem

Begonnen von BKSolo, 10 Oktober 2015, 16:00:52

Vorheriges Thema - Nächstes Thema

Garbsen

Moin
Zunächst Danke für die schnelle Antwort und auch einmal Danke überhaupt an die Profis, die hier solche interessante Lösungen entwickeln.
Ja, sicherlich nicht das einfachste für einen Anfänger, aber man wächst ja an seinen Aufgaben.
Ja, alles läuft soweit zufriedenstellend, die Alpha2 zu installieren war ja relativ einfach, FHEM läuft auch soweit stabil mit einigen Somfy Rollläden und anderen Dingen, wobei da natürlich für Anfänger auch immer noch Task offen bleiben.
SQlite habe ich scheinbar auch hinbekommen, jedenfalls kann ich die log.db öffnen und das stehen auch Einträge.
Die Interface Description habe ich gefunden, muss ich mal in Ruhe studieren, der Hinweis die Statusdaten über einen Browser auszulesen ist gut, bisher nutze ich immer die Weboberfläche von Möhlenhoff aber das ist dann ja schon 'Konvertiert'.
Ich werde mich mal am auslesen versuchen und wieder melden. Kann evtl. dauern, da ich leider nur dann und wann Zeit finde hier zu basteln.
Hilfreich wäre für mich noch ein Tipp welche der Variablen/Parameter in dem Script tendenziell mit meinen spezifischen Bezeichnungen angepasst werden müssen.
Ich bin leider (noch) reiner Anwender mit ziemlich wenig Programmierkenntnissen, die sind noch rudimentär bei Basic hängen geblieben. ;-)
Aber ich mache so etwas gerne mit learning bei doing.
FHEM und Homebridge auf Intel NUC, CUL 868 v 1.66, CUL466 V 1.66, SOMFY RTS Rolläden, HM-LC-Bl1PBU-FM, HM-LC-BL1-FM, HM-SEC-SC-2, HM-SEC-RHS, HM-WDS10-TH-O, HM-SEC-WDS-2, HM-Sen-LI-O, HM-CC-RT-DN, HM-LC-Sw1-Pl-DN-R1, HM-SCI-3-FM, HM-Sec-Sir-WM, HM-PB-2-WM55-2, HM-RC-8, HM-LC-SW1-PL2, Alpha2

Garbsen

Zitat von: BKSolo am 19 Juli 2016, 08:25:10
Guten Morgen,
aus deinen Angaben interpretiere ich, dass deine Alpha2 in Betrieb sind. Das Du die Alpha2 mit dem Internet verbunden hast und ansprechbar ist/sind. Fhem läuft auch und eine Verbindung zu den Alpha2 ist vorhanden.

Ich empfehle dir es Schrittweise anzugehen da Du hier nicht gerade die einfachste Aufgabe für einen "Fhem-Anfänger" vorgenommen hast.

In Fhem zuerst mal die Fussbodenheizung definieren - das ist in in meinem Code mit Fussbodenheizung definieren beschrieben. Da das Kommunikationsprotokoll mit dem Alpha2 über XML läuft, wird das HTTPMOD entsprechend verwendet.
Dazu solltest Du mal die Statusdaten dynamic.xml von deinem Alpha2 über einen Browser anfordern. Es gibt dazu eine XML Interface Description von Möhlenhoff das sehr hilfreich ist was verfügbar ist. Von den erhaltenen Daten siehst Du dann auch alle deine relevanten Parameter und wie diese benannt sind. Diese übernimmst Du dann in den Code meines Beispiels und erweiterst es auf die 8 Heizkreise.

Wenn das dann läuft, geht es weiter mit dem FilelLog oder DBLog und ist das erfolgreich dann an die Plots.

Viel Erfolg - Bruno

Moin

ich habe einmal die dynamics.xml ausgelesen, finde da aber nicht wirklich z.B. die Bezeichnung

0 2016-07-19T20:43:26 2 2 0 0 0 0 1 8.0 0 14.0 0 2016-00-00 12:00:00 2016-00-00 12:00:00 Online 0 0 0 0 0 0 24.1 24.1 19.0 19.0 0 0 2 0 0 0 0 0 0 0 0 0 0 24.3 24.3 19.0 19.0 0 0 1 0 0 0 0 0 0 0 0 0 0 24.5 24.5 19.0 19.0 0 0 2 0 0 0 0 0 0 0 0 0 0 23.8 23.8 19.0 19.0 0 0 2 0 0 0 0 0 0 0 0 0 0 24.5 24.5 15.4 15.4 0 0 2 0 0 0 0 0 0 0 0 0 0 23.4 23.4 10.9 10.9 0 0 2 0 0 0 0 0 0 0 0 0 2 2 0 0 1 2 2 0 0 1 2 2 0 0 1 2 2 0 0 1 2 2 0 0 1 2 2 0 0 1

die Static.xml liefert mehr, aber für mich eher zu viel

EZR013397 EZRCTRL1 EZR013397 EZR013397 0 2016-07-19T20:46:56 2 2 1 02.02 02.02 01 0 1 0 0 MASTERID 0 0 1 0 1 8.0 10 1 4.0 0 0 14.0 0 2016-00-00 12:00:00 2016-00-00 12:00:00 38:DE:60:01:33:97 1 0 192.168.177.33 192.168.100.100 255.255.255.0 255.255.255.0 192.168.177.1 192.168.177.1 455A52BC8711345E2A635341130D4A5DC9 455A525FEB57B91B0BE0A47552004105D60B05 55555 50919 50919 55014 www.ezr-cloud1.de 1 Online 0 0 0 --- 7777 0 0 455A528FD83052B9 06:45 21:15 14:45 22:45 06:30 10:00 18:00 22:30 07:30 20:15 0 1 2 2 0 30 20 0 0 0 0 0 180 15 25 0 14 5 3 5 Gästezimmer HK1 0 24.1 24.1 19.0 19.0 0 0 2 0 0 0 0 5.0 24.0 0 0.0 21.0 19.0 21.0 20.0 3.0 0 0 0 455A5236F88202DD 0 15 0 1 WZ HK 2a/b 0 24.3 24.3 19.0 19.0 0 0 1 0 0 0 0 5.0 24.0 0 0.0 21.0 19.0 21.0 20.0 3.0 0 0 0 455A521A9B3425CF 0 15 0 1 Küche HK 3 0 24.5 24.5 19.0 19.0 0 0 2 0 0 0 0 5.0 24.0 0 0.0 21.0 19.0 21.0 20.0 3.0 0 0 0 455A5265E1088EC5 0 15 0 1 Flur 0 23.8 23.8 19.0 19.0 0 0 2 0 0 0 0 5.0 24.0 0 0.0 21.0 19.0 21.0 20.0 3.0 0 0 0 455A521D011C5595 0 15 0 1 HWR HK 6 0 24.5 24.5 15.4 15.4 0 0 2 0 0 0 0 0.0 0.0 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 455A52AC94DBDDF3 0 0 0 1 Gästebad HK 8 0 23.4 23.4 10.9 10.9 0 0 2 0 0 0 0 0.0 0.0 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 455A5258DBDDF38A 0 0 0 1 1 1 0 0 0 1 2 0 0 0 1 3 0 0 0 1 4 0 0 0 1 4 0 0 0 1 6 0 0 0 0 0 0 0 0 1 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 01.71 8 2 2 0 0 1 0 2 1 02.02 3 2 2 0 0 1 0 3 1 02.02 2 2 2 0 0 1 1 5 1 01.71 6 2 2 0 0 1 0 6 1 02.02 1 2 2 0 0 1 0 7 1 02.02 4 2 2 0 0 1

kann mir jemand für einen HK die Codes basteln? den Rest sollte ich dann ja eigentlich selber hinbekommen
Danke
FHEM und Homebridge auf Intel NUC, CUL 868 v 1.66, CUL466 V 1.66, SOMFY RTS Rolläden, HM-LC-Bl1PBU-FM, HM-LC-BL1-FM, HM-SEC-SC-2, HM-SEC-RHS, HM-WDS10-TH-O, HM-SEC-WDS-2, HM-Sen-LI-O, HM-CC-RT-DN, HM-LC-Sw1-Pl-DN-R1, HM-SCI-3-FM, HM-Sec-Sir-WM, HM-PB-2-WM55-2, HM-RC-8, HM-LC-SW1-PL2, Alpha2

Garbsen

ok, eigentlich gar nicht so schwierig (bei den guten Anleitungen hier ;.) )
Ich bin jetzt strikt nach BKSolos Anleitungen im ersten Beitrag vorgegangen, dazu ein Blick in die static.xml und jetzt habe ich die Daten in FHEM Incl. Graph.
Allerdings nur für 4 HK, immer wenn ich versuche einen 5 HK hinzuzufügen, copy-paste der Angaben zu anderen HK und ändern der Nummerierungen bekomme ich Syntaxfehlermeldungen.

Vielleicht sehe ich ja den Wald vor lauter Bäumen nicht, aber ich denke eigentlich, dass ich alles 1:1 erweitert habe. Wo muss ich zusätzlich etwas anpassen?



define Alpha2 HTTPMOD http://192.168.177.33/data/dynamic.xml 600
attr Alpha2 userattr comment enableXPath-Strict reading01Name reading01Regex reading02Name reading02Regex reading03Name reading03Regex reading04Name reading04Regex reading05Name reading05Regex reading06Name reading06Regex reading07Name reading07Regex reading08Name reading08Regex reading09Name reading09Regex reading10Name reading10Regex stateFormat
attr Alpha2 comment Fussbodenheizung
attr Alpha2 enableXPath-Strict 1
attr Alpha2 group Fussbodenheizung
attr Alpha2 reading01Name Ist-Temperatur1
attr Alpha2 reading01Regex xpath-strict://devices/Device/HEATAREA [@nr="1"]/T_ACTUAL/text()
attr Alpha2 reading02Name Soll-Temperatur1
attr Alpha2 reading02Regex xpath-strict://devices/Device/HEATAREA [@nr="1"]/T_TARGET/text()
attr Alpha2 reading03Name Ist-Temperatur2
attr Alpha2 reading03Regex xpath-strict://devices/Device/HEATAREA [@nr="2"]/T_ACTUAL/text()
attr Alpha2 reading04Name Soll-Temperatur2
attr Alpha2 reading04Regex xpath-strict://devices/Device/HEATAREA [@nr="2"]/T_TARGET/text()
attr Alpha2 reading05Name Ist-Temperatur3
attr Alpha2 reading05Regex xpath-strict://devices/Device/HEATAREA [@nr="3"]/T_ACTUAL/text()
attr Alpha2 reading06Name Soll-Temperatur3
attr Alpha2 reading06Regex xpath-strict://devices/Device/HEATAREA [@nr="3"]/T_TARGET/text()
attr Alpha2 reading07Name Ist-Temperatur4
attr Alpha2 reading07Regex xpath-strict://devices/Device/HEATAREA [@nr="4"]/T_ACTUAL/text()
attr Alpha2 reading08Name Soll-Temperatur4
attr Alpha2 reading08Regex xpath-strict://devices/Device/HEATAREA [@nr=,,4"]/T_TARGET/text()
attr Alpha2 reading09Name Ist-Temperatur5
attr Alpha2 reading09Regex xpath-strict://devices/Device/HEATAREA [@nr="5"]/T_ACTUAL/text() attr Alpha2 reading10Name Soll-Temperatur5
attr Alpha2 reading10Regex xpath-strict://devices/Device/HEATAREA [@nr="5"]/T_TARGET/text() attr Alpha2 room Fussbodenheizung
attr Alpha2 stateFormat {sprintf("Gast-Ist: %.1f, Gast-Soll: %.1f , WZ-Ist: %.1f , WZ-Soll: %.1f , Küche-Ist: %.1f , Küche-Soll: %.1f  , Flur-Ist: %.1f , Flur-Soll: %.1f , HWR-Ist: %.1f , HWR-Soll: %.1f ",  ReadingsNum($name,"Ist-Temperatur1",0), ReadingsNum($name,"Soll-Temperatur1",0), ReadingsNum($name,"Ist-Temperatur2",0), ReadingsNum($name,"Soll-Temperatur2",0),ReadingsNum($name,"Ist-Temperatur3",0), ReadingsNum($name,"Soll-Temperatur3",0), ReadingsNum($name,"Ist-Temperatur4",0), ReadingsNum($name,"Soll-Temperatur4",0),ReadingsNum($name,"Ist-Temperatur5",0), ReadingsNum($name,"Soll-Temperatur5",0))}
FHEM und Homebridge auf Intel NUC, CUL 868 v 1.66, CUL466 V 1.66, SOMFY RTS Rolläden, HM-LC-Bl1PBU-FM, HM-LC-BL1-FM, HM-SEC-SC-2, HM-SEC-RHS, HM-WDS10-TH-O, HM-SEC-WDS-2, HM-Sen-LI-O, HM-CC-RT-DN, HM-LC-Sw1-Pl-DN-R1, HM-SCI-3-FM, HM-Sec-Sir-WM, HM-PB-2-WM55-2, HM-RC-8, HM-LC-SW1-PL2, Alpha2

BKSolo

dein Code für den HK 5 ist nicht gleich formatiert.
attr Alpha2 reading09Regex xpath-strict://Devices/Device/HEATAREA [@nr="5"]/T_ACTUAL/text() attr Alpha2 reading10Name Soll-Temperatur5
attr Alpha2 reading10Regex xpath-strict://Devices/Device/HEATAREA [@nr="5"]/T_TARGET/text() attr Alpha2 room Fussbodenheizung

sollte wie HK 4 aussehen mit angepassten Parametern
attr Alpha2 reading07Name Ist-Temperatur4
attr Alpha2 reading07Regex xpath-strict://Devices/Device/HEATAREA [@nr="4"]/T_ACTUAL/text()
attr Alpha2 reading08Name Soll-Temperatur4
attr Alpha2 reading08Regex xpath-strict://Devices/Device/HEATAREA [@nr=,,4"]/T_TARGET/text()

wenn ich das für HK 5 mache ist es
attr Alpha2 reading09Name Ist-Temperatur5
attr Alpha2 reading09Regex xpath-strict://Devices/Device/HEATAREA [@nr="5"]/T_ACTUAL/text()
attr Alpha2 reading10Name Soll-Temperatur5
attr Alpha2 reading10Regex xpath-strict://Devices/Device/HEATAREA [@nr=,,5"]/T_TARGET/text()

Hoffe das hilft
Raspberry PI 2/3 - CUL-433(V3) - CUL-868 (V3) - Jeelink 868 - 433 S/E Eigenbau
TX29DTH-IT - FHT80B - FHT80TF - FS20KSE
FHEMobile 3.7r803 - Fhem2Fhem - Alpha2 - OZW672 - TelegramBot

Garbsen

Danke, wirklich tricky die Programmierung, kleine Änderung bei Format große Auswirkung.
Muss lernen hier noch genauer hinzuschauen, habe auch schon mitbekommen, dass Leerzeichen oft große Auswirkungen haben.
Computer sind halt doch dümmer als Menschen, aber dafür viel genauer ;-)
Probiere es baldmöglichst aus und berichte
Und dann geht es an die Soll-Werteinstellungen, da wird es dann ja richtig interessant das in FHEM einzubinden
FHEM und Homebridge auf Intel NUC, CUL 868 v 1.66, CUL466 V 1.66, SOMFY RTS Rolläden, HM-LC-Bl1PBU-FM, HM-LC-BL1-FM, HM-SEC-SC-2, HM-SEC-RHS, HM-WDS10-TH-O, HM-SEC-WDS-2, HM-Sen-LI-O, HM-CC-RT-DN, HM-LC-Sw1-Pl-DN-R1, HM-SCI-3-FM, HM-Sec-Sir-WM, HM-PB-2-WM55-2, HM-RC-8, HM-LC-SW1-PL2, Alpha2

Garbsen

Nochmals Danke für die Hilfe (und natürlich für das grundlegende Ausarbeiten)
habe jetzt beide Alpha2 mit jeweils 6 HK in FHEM integriert. Zunächst erstmal Anzeige Incl. Plots.
Soll-Setzen versuche ich die nächsten Tage mal.
Das Problem war übrigens, dass ich zum editieren blöderweise nicht notepad bzw. ein ähnliches Textprogramm genutzt hatte, sondern Pages und da hatten sich anscheinend Steuerzeichen eingeschlichen. Wie gesagt, eigene Blödheit, aber gleich eine gute Lehre

FHEM und Homebridge auf Intel NUC, CUL 868 v 1.66, CUL466 V 1.66, SOMFY RTS Rolläden, HM-LC-Bl1PBU-FM, HM-LC-BL1-FM, HM-SEC-SC-2, HM-SEC-RHS, HM-WDS10-TH-O, HM-SEC-WDS-2, HM-Sen-LI-O, HM-CC-RT-DN, HM-LC-Sw1-Pl-DN-R1, HM-SCI-3-FM, HM-Sec-Sir-WM, HM-PB-2-WM55-2, HM-RC-8, HM-LC-SW1-PL2, Alpha2

Garbsen

Moin
Habe mich mal wieder an die Alpha2 Integration gemacht.
Mittlerweile auch erfolgreich das Set umgesetzt, zunächst für 1 HK Soll-Temperatur.
Habe auch erfolgreich aus der Static.xml weitere Infos ausgelesen, u.a. den Status der Urlaubseinstellung, möchte nach Möglichkeit auch die Urlaubsdaten von FHEM aus steuern.
Dazu habe ich erstmal ein Datum (Urlaubsende) ausgelesen, das Reading gibt auch das gesamte Datum (z.B. 2016-10-31) ich bekomme das aber im State nicht formatiert (das maximale was ich schaffe ist 2016). Ich könnte auch nirgends eine gute Liste mit den Formatangaben für stateFormat finden.
Kann mir da jemand auf die Sprünge helfen?
FHEM und Homebridge auf Intel NUC, CUL 868 v 1.66, CUL466 V 1.66, SOMFY RTS Rolläden, HM-LC-Bl1PBU-FM, HM-LC-BL1-FM, HM-SEC-SC-2, HM-SEC-RHS, HM-WDS10-TH-O, HM-SEC-WDS-2, HM-Sen-LI-O, HM-CC-RT-DN, HM-LC-Sw1-Pl-DN-R1, HM-SCI-3-FM, HM-Sec-Sir-WM, HM-PB-2-WM55-2, HM-RC-8, HM-LC-SW1-PL2, Alpha2

Garbsen

Moin

Ich benötige ein wenig Hilfe.
Ich möchte gerne über FHEM die Einträge für Urlaub in der Alpha2 steuern.
Ich habe hierfür eine Abfrage der Daten und die notwendigen Set-Attribute eingepflegt.
Das klappt auch ganz gut (bei dem StateFormat für die Datumsabfrage bin ich nicht weiter gekommen, aber da der Eintrag im Reading passt, greife ich halt darauf zu)

attr Alpha2 set24Data <?xml version="1.0" encoding="UTF-8"?><Devices><Device><ID>EZR013397</ID><VACATION><END_DATE>$val</END_DATE></VACATION></Device></Devices> ##DEFINIERT EINGABEFELD FÜR URLAUBSENDE IN ATTRIBUTEN
attr Alpha2 set24Name EndeUrlaub
attr Alpha2 set24TextArg 1
attr Alpha2 set24URL http://192.168.177.33/data/changes.xml

Wenn ich set Alpha2:EndeUrlaub 2016-10-03 eingebe kommt das auch gut in der Alpha2 an und wird als Ende Urlaub eingestellt.
Jetzt habe ich zusätzlich mit dem DateTimePicker Widget (https://forum.fhem.de/index.php/topic,35736.0.html) ein Eingabefeld für das Datum eingerichtet.
attr Urlaubsende group Einstellungen,Fussbodenheizung
attr Urlaubsende room Dummies,Fussbodenheizung
attr Urlaubsende setList state:datetime,inline:true,timepicker:false
attr Urlaubsende webCmd state
attr Urlaubsende widgetOverride setList:textField-long

Hierauf möchte ich per notify zugreifen und das Datum in das Set Feld einpflegen. Hierzu habe ich das Widget so angepasst, dass als Ergebnis immer das Format Y-m-d rauskommt, da das dem Format der Alpha2 entspricht.

define UrlaubsendeSetzen notify Urlaubsende:.* {fhem ("set Alpha2:EndeUrlaub " .ReadingsVal("Urlaubsende","state",0))}

Das klappt aber nicht.
In Alpha2 kommt immer 2017-00-00 an (z.B. bei einem Datum 2016-10-03 )
Das steht dann auch in FHEM im Eingabefeld für das Attribut zu setData24, ich vermute, dass es irgendwas mit dem Aufbau dieses Attributs zu tun hat, den Code hierfür habe ich hier aus dem Forum übernommen und eventuell noch nicht richtig verstanden. Was mich nur wundert ist, dass wenn ich in das Eingabefled manuell das gleiche eingebe, was aus der notify-Abfrage kommt (2016-10-03) dann akzeptiert FHEM und Alpha2 das ja.

Und wenn ich das Datumeingabefeld des Widgets testweise in einen Dummy abfrage:


define UrlaubsendeSetzen2 notify Urlaubsende:.* {fhem ("set test1 " .ReadingsVal("Urlaubsende","state",0))}

kommt bei exakt der gleichen Eingabe im Eingabewidget das Datum genauso im Dummy an (2016-10-03), das sieht zumindest exakt so aus, wie meine manuelle Eingabe in das Alpha2 Attribut-Eingabefeld.

Kann mir jemand meine Gedankenfehler erklären?
Würde mich sehr voran bringen.






FHEM und Homebridge auf Intel NUC, CUL 868 v 1.66, CUL466 V 1.66, SOMFY RTS Rolläden, HM-LC-Bl1PBU-FM, HM-LC-BL1-FM, HM-SEC-SC-2, HM-SEC-RHS, HM-WDS10-TH-O, HM-SEC-WDS-2, HM-Sen-LI-O, HM-CC-RT-DN, HM-LC-Sw1-Pl-DN-R1, HM-SCI-3-FM, HM-Sec-Sir-WM, HM-PB-2-WM55-2, HM-RC-8, HM-LC-SW1-PL2, Alpha2

Garbsen

Selbst gelöst!
Sorry, manchmal sind es wirklich die kleinen Dinge und wenn man drüber spricht fällt es auf:
Vorab: im Posting oben war ein copy Paste Fehler
Statt

define UrlaubsendeSetzen notify Urlaubsende:.* {fhem ("set Alpha2:EndeUrlaub " .ReadingsVal("Urlaubsende","state",0))}

Muss es natürlich

define UrlaubsendeSetzen notify Urlaubsende:.* {fhem ("set Alpha2 EndeUrlaub " .ReadingsVal("Urlaubsende","state",0))}

Heißen, der : zwischen Alpha2 und EndeUrlaub darf da nicht stehen, da hatte ich vorhin eine alte Version kopiert und eingefügt.

Der Fehler lag aber ganz wo anders. Ich hatte ja die .js des Widgets angepasst. Dabei aber an einem Punkt den alten Namen des Widgets in der neuen .js stehenlassen. Das führte offenbar bei FHEM zur Verwirrung, da es jetzt 2 .js für ein Widget gab. Blöder Fehler.
Das habe ich jetzt gefunden und korrigiert und jetzt funktioniert das Datum setzen, so wie oben geschrieben.
Jetzt muss ich das Ganze noch für das Startdatum kopieren.

Neue Frage: die HTTPMOD Abfrage für die Alpha2 wird ja immer komplexer. Wäre es möglich, die Set Kommandos in ein separates Device auszugliedern? Oder muss das in dem Device erfolgen, in dem auch die Abfrage definiert ist?
Wenn keiner eine Idee hat würde ich es einfach mal ausprobieren
FHEM und Homebridge auf Intel NUC, CUL 868 v 1.66, CUL466 V 1.66, SOMFY RTS Rolläden, HM-LC-Bl1PBU-FM, HM-LC-BL1-FM, HM-SEC-SC-2, HM-SEC-RHS, HM-WDS10-TH-O, HM-SEC-WDS-2, HM-Sen-LI-O, HM-CC-RT-DN, HM-LC-Sw1-Pl-DN-R1, HM-SCI-3-FM, HM-Sec-Sir-WM, HM-PB-2-WM55-2, HM-RC-8, HM-LC-SW1-PL2, Alpha2

Garbsen

So, nach langem Basteln und Probieren habe ich jetzt manches geschafft und würde gerne aufbauend auf die super Grundlagenarbeit (ohne die ich das nie geschafft hätte) meine Erkenntnisse und Beispiele beisteuern:

Die Abfrage ist ja schon oben gut erklärt, ich konzentriere mich jetzt mal auf Eingabe / Steuerung, dabei ergibt sich auch vielleicht noch für Abfrage einiges an Erkenntnis für andere Anfänger.

Zunächst war mein für die Abfrage angelegtes Device schon ziemlich lang und unübersichtlich geworden. Zum einen, weil ich nicht die Dynamic.xml sondern die static.xml abfrage. Zumindest zur Zeit hilft mir das, weil da wirklich alle Werte drin sind. Umso mehr Werte man dann in readings Einlesen will, umso länger wird das Ganze natürlich. Als ich anfing auch noch die Set-Attribute einzulesen, wurde es unübersichtlich.

Also habe ich ein 2. Device angelegt, nur um die Alpha2 zu steuern:
define Alpha2Set HTTPMOD http://192.168.177.33/data/Dynamic.xml 0
   attr Alpha2Set room Fussbodenheizung
   attr Alpha2Set userattr set02Data set02Hint set02Max set02Min set02Name
set02URL set20Data set20Hint set20Max set20Min set20Name set20URL set21Data set21Name set21URL set24Data set24Hint set24Name set24TextArg:0,1 set24URL set26Data set26Hint set26Name set26TextArg:0,1 set26URL


Die Logik ist wie beim Auslesen, allerdings habe ich am Ende der Zeile für das Ausleseintervall 0 angegeben, damit wird hier gar nicht ausgelesen.
Neben der Zuordnung zu einem room, ist dann zunächst nur die Angabe der userattr notwendig, damit man dann die jeweiligen Eingabefelder hat. Hier ist die Namensgebung bzw. Nummerierung offenbar egal, muss also nicht der Logik folgen, die im Reading-Device festgelegt war. Eine Einheitlichkeit erleichtert aber später eventuell das Verstehen.


Mit
attr Alpha2Set widgetOverride userattr:textField-long set20Data:textField-long

Kann man sich die Eingabefelder vergrößern, ist insbesondere für das userattr Feld wichtig, wenn man zusätzliche Felder definiert. Wichtig hierbei: im userattr Feld darf man offenbar keine Zeilenumbrüche machen. Da eine lange Zeile sehr unübersichtlich ist, habe ich mir immer so geholfen, dass ich Zeilenumbrüche eingefügt habe, editiert habe und die Umbrüche dann wieder rausgenommen habe.

Anschließend legt man für jedes Eingabefeld die notwendigen Werte fest

attr Alpha2Set set02Data <?xml version="1.0" encoding="UTF-8"?><Devices><Device><ID>EZR013397</ID><HEATAREA nr="2"><T_TARGET>$val</T_TARGET></HEATAREA></Device></Devices> ##DEFINIERT EINGABEFELD FÜR SOLLTEMPERATUR IN ATTRIBUTEN
   attr Alpha2Set set02Max 30
   attr Alpha2Set set02Min 10
   attr Alpha2Set set02Name WZ-Soll
   attr Alpha2Set set02URL http://192.168.177.33/data/changes.xml



Set..URL ist dabei immer identisch, ich habe noch nicht rausgefunden, ob man das nicht 'zentraler' als Attribut hinterlegen kann.

Min/Max sind nicht zwingend notwendig und werden von FHEM kontrolliert, bzw. zur Eingabekontrolle verwendet. Der Name ist frei wählbar und definiert das Attribut. Das ist wichtig, wenn man dies Attribut später durch ein at oder notify oder DOIF belegen lassen will.


Wichtig ist das setXXData Feld, dort wird der String definiert, der an die Alpha beim Schreiben übergeben wird. Der erste Teil bis </ID> und der Teil ab </Device> ist stets identisch. Dazwischen liegt die Musik.
Man muss in der xml nach dem Teil suchen, den man steuern will, hier die Solltemperatur (<T_Target> für die Heatarea Nr. 2. Entscheidend ist in der Mitte $val das ist das eigentliche Eingabefeld. Man muss dann umgebend suchen, in welche Felder es eingebettet ist. Es kann sein, dass es nur 1 Feld davor und danach ist oder auch mehrere. Es fängt jedenfalls immer (mehr oder weniger) gleich an, wie es endet.
Zwischen <HEATAREA nr="x"> und <HEATAREA> liegen mehrere Felder, u.a. Eben für T_TARGET


Nachfolgend weitere Beispiele, zum Befüllen der Werte schreibe ich einen zweiten Post


attr Alpha2Set set21Data <?xml version="1.0" encoding="UTF-8"?><Devices><Device><ID>EZR013397</ID><VACATION><VACATION_STATE>$val</VACATION_STATE></VACATION></Device></Devices> ##DEFINIERT EINGABEFELD FÜR URLAUB IN ATTRIBUTEN
attr Alpha2Set set21Name Urlaub
attr Alpha2Set set21URL http://192.168.177.33/data/changes.xml


attr Alpha2Set set24Data <?xml version="1.0" encoding="UTF-8"?><Devices><Device><ID>EZR013397</ID><VACATION><END_DATE>$val</END_DATE></VACATION></Device></Devices> ##DEFINIERT EINGABEFELD FÜR URLAUBSENDE IN ATTRIBUTEN
attr Alpha2Set set24Name EndeUrlaub
attr Alpha2Set set24TextArg 1
attr Alpha2Set set24URL http://192.168.177.33/data/changes.xml


attr Alpha2Set set26Data <?xml version="1.0" encoding="UTF-8"?><Devices><Device><ID>EZR013397</ID><VACATION><START_DATE>$val</START_DATE></VACATION></Device></Devices> ##DEFINIERT EINGABEFELD FÜR URLAUBSANFANG IN ATTRIBUTEN
attr Alpha2Set set26Name AnfangUrlaub
attr Alpha2Set set26TextArg 1attr Alpha2Set set26URL http://192.168.177.33/data/changes.xml


[/size]
[/size]

FHEM und Homebridge auf Intel NUC, CUL 868 v 1.66, CUL466 V 1.66, SOMFY RTS Rolläden, HM-LC-Bl1PBU-FM, HM-LC-BL1-FM, HM-SEC-SC-2, HM-SEC-RHS, HM-WDS10-TH-O, HM-SEC-WDS-2, HM-Sen-LI-O, HM-CC-RT-DN, HM-LC-Sw1-Pl-DN-R1, HM-SCI-3-FM, HM-Sec-Sir-WM, HM-PB-2-WM55-2, HM-RC-8, HM-LC-SW1-PL2, Alpha2

Garbsen

Wie versprochen noch einen zweiten Beitrag, hier komme ich jetzt zum Befüllen der Werte, denn es ist ja weniger schön, wenn man immer in das Device gehen muss, um dort Set Befehle abzusetzen.

Alpha2 hat ja einen Eintrag, der festlegt, auf welche Temperatur während des Urlaubs abgesenkt wird, den Wert setze ich jetzt aus FHEM heraus

define UrlaubsTemp dummy
attr UrlaubsTemp alias Welche Raumtemperatur soll bei Urlaub gesetzt werden?
attr UrlaubsTemp group Einstellungen,Fussbodenheizung
attr UrlaubsTemp room Dummies,Fussbodenheizung
attr UrlaubsTemp setList state:5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20
attr UrlaubsTemp webCmd state
define UrlaubstemperaturSetzen notify UrlaubsTemp:.* {fhem ("set Alpha2Set TemperaturUrlaubsabsenkung " .ReadingsVal("UrlaubsTemp","state",0))}
attr UrlaubstemperaturSetzen room Dummies,Fussbodenheizung


Für die Festlegung von Anfang und Ende des Urlaubs nutze ich das DateTimePicker Widget
https://forum.fhem.de/index.php/topic,35736.0.html
Hierbei habe ich mir die .js des Widgets angepasst, so dass ich wirklich nur das Datum erhalte und das auch gleich im richtigen Format (z.B. 2016-10-03)
Wichtig: ich habe oben vergessen besonders auf das attr Alpha2Set set24TextArg 1 hinzuweisen. Ohne diese Attribut Setzung bei den Datumsfeldern klappt es nicht!

define Urlaubsanfang dummy
attr Urlaubsanfang group Einstellungen,Fussbodenheizung
attr Urlaubsanfang room Dummies,Fussbodenheizung
attr Urlaubsanfang setList state:datePick,inline:true,timepicker:false
attr Urlaubsanfang webCmd state
define UrlaubsanfangSetzen notify Urlaubsanfang:.* {fhem ("set Alpha2Set AnfangUrlaub " .ReadingsVal("Urlaubsanfang","state",0))}
attr UrlaubsanfangSetzen room Dummies,Fussbodenheizung


Für Urlaubsende habe ich das analog definiert. Wichtig hierbei: wenn man beim Urlaubsende ein Datum wählt, das bereits verstrichen ist, (z.B. Am 5.9.2016 den 4.9.2016) erkennt Alpha2 das als 1 Jahr später = 4.9.2017

mit diesen Einstellungen kann ich nun die Urlaubssetzung für die FBH von FHEM aus durchführen. Da die Alpha2 jetzt anhand der Daten nicht nur die Urlaubsabsenkung steuert, sondern auch den Urlaubsstatus setzt (0=kein Urlaub geplant, 1=Urlaubsabsenkung aktiv, 2=Urlaub geplant) kann ich durch das Auslesen des Urlaubsstatus auch andere Steuerungen bei Urlaub durchführen. Ich brauche also die Urlaubsdaten nur einmal erfassen und habe durch die Alpha2 ein zuverlässiges Reading zur Auswertung.

Würde mich freuen, wenn ich anderen Nutzern hiermit helfen konnte und ein wenig an die Gemeinschaft zurückgebe, genutzt habe ich den gemeinsamen Erfahrungsschatz ja schon viel
FHEM und Homebridge auf Intel NUC, CUL 868 v 1.66, CUL466 V 1.66, SOMFY RTS Rolläden, HM-LC-Bl1PBU-FM, HM-LC-BL1-FM, HM-SEC-SC-2, HM-SEC-RHS, HM-WDS10-TH-O, HM-SEC-WDS-2, HM-Sen-LI-O, HM-CC-RT-DN, HM-LC-Sw1-Pl-DN-R1, HM-SCI-3-FM, HM-Sec-Sir-WM, HM-PB-2-WM55-2, HM-RC-8, HM-LC-SW1-PL2, Alpha2

Stril

Hallo!

Ich hätte mal eine ganz grundlegende Frage an die Alpha2-Besitzer:
Wie "intelligent" steuert die Alpha2 denn?

Wisst ihr, ob da ein intelligenter Regler genutzt wird, oder ist einfach:

Ist < Soll --> Ein
Ist > Soll --> Aus (eventuell mit Hysterese)

...oder wird berücksichtigt, dass bei steigender Temperatur vorzeitig abgeschaltet und bei fallender Temperatur frühzeitig eingeschaltet werden muss, um die Trägheit zu berücksichtigen?

Danke und Grüße
Phil

Garbsen

Zitat von: Stril am 07 Oktober 2016, 08:45:08
Hallo!

Ich hätte mal eine ganz grundlegende Frage an die Alpha2-Besitzer:
Wie "intelligent" steuert die Alpha2 denn?

Wisst ihr, ob da ein intelligenter Regler genutzt wird, oder ist einfach:

Ist < Soll --> Ein
Ist > Soll --> Aus (eventuell mit Hysterese)

...oder wird berücksichtigt, dass bei steigender Temperatur vorzeitig abgeschaltet und bei fallender Temperatur frühzeitig eingeschaltet werden muss, um die Trägheit zu berücksichtigen?

Danke und Grüße
Phil

Nach allem, was ich gelesen habe, gehe ich von letzterem aus. Allerdings kann ich es Dir mangels Heizperiode noch nicht aus der Praxis bestätigen. Werde das im Winter einmal beobachten. Wenn nicht, wäre das natürlich guter Pubkt für eine Übernahme der Steuerung durch FHEM
FHEM und Homebridge auf Intel NUC, CUL 868 v 1.66, CUL466 V 1.66, SOMFY RTS Rolläden, HM-LC-Bl1PBU-FM, HM-LC-BL1-FM, HM-SEC-SC-2, HM-SEC-RHS, HM-WDS10-TH-O, HM-SEC-WDS-2, HM-Sen-LI-O, HM-CC-RT-DN, HM-LC-Sw1-Pl-DN-R1, HM-SCI-3-FM, HM-Sec-Sir-WM, HM-PB-2-WM55-2, HM-RC-8, HM-LC-SW1-PL2, Alpha2

Stril

Hallo!

Die Frage ist ja, ob die Temperatur halbwegs konstant gehalten werden kann im Raum.
WIE genau wäre dann ja eigentlich nebensächlich...

Grüße

Garbsen

Zitat von: Stril am 07 Oktober 2016, 15:48:08
Hallo!

Die Frage ist ja, ob die Temperatur halbwegs konstant gehalten werden kann im Raum.
WIE genau wäre dann ja eigentlich nebensächlich...

Grüße

Wie gesagt, ich werde genau das jetzt in der beginnenden Heizperiode prüfen und dann auch gerne hier berichten. Ich habe die Steuerung erst dieses Jahr installiert.
In der Werbung heißt es:

"Dank modernster Smart Start/Smart Stop-Technologie lernt das System automatisch, wann wo wie geheizt werden muss, um zur gewünschten Zeit die gewünschte Wohlfühltemperatur zu erreichen."

D.h. Ich gehe davon aus, dass das System Selbstlernzentrum ist und immer genauer weiß, wieviel Vor- bzw. nachlaufzeit die FBH hat. Die Trägheit von Fußbodenheizungen ist ja der bekannte Nachteil dieses Heizsystems
FHEM und Homebridge auf Intel NUC, CUL 868 v 1.66, CUL466 V 1.66, SOMFY RTS Rolläden, HM-LC-Bl1PBU-FM, HM-LC-BL1-FM, HM-SEC-SC-2, HM-SEC-RHS, HM-WDS10-TH-O, HM-SEC-WDS-2, HM-Sen-LI-O, HM-CC-RT-DN, HM-LC-Sw1-Pl-DN-R1, HM-SCI-3-FM, HM-Sec-Sir-WM, HM-PB-2-WM55-2, HM-RC-8, HM-LC-SW1-PL2, Alpha2