Alpha 2 Fussbodenheizungssteuerung im Fhem

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

Vorheriges Thema - Nächstes Thema

BKSolo

Ich habe mit der neusten Version HTTPMOD (siehe http://forum.fhem.de/index.php?topic=45176.new;topicseen#new meine Alpha2 Implementierung angepasst.
Dabei verwende ich die neue Möglichkeit der mehrfachen XML-Werte.

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

BKSolo

#16
Ich habe das FileLog auf DbLog geändert, verwende dazu SQLite. Zusätzlich habe ich das Plot auf ein einzelnes GPlot File mit Parametern angepasst.

Achtung - zur Zeit muss noch das neuste HTTPMOD ins FHEM kopiert werden. Dazu siehe http://forum.fhem.de/index.php/topic,45176.0.html erster Beitrag von Stefan.

Die Installation von SQLite und das erstellen der notwendigen Tabellen ist u.a. beschrieben auf https://www.turais.de/fhem-logging-in-eine-sql-datenbank-2/. Dazu gibt es auch DB Browser für SQLite http://sqlitebrowser.org/

Erstellen der Fhem Datenbank Verbindung db.conf mit

%dbconfig= (
connection => "SQLite:dbname=/opt/fhem/fhem.db",
user => "",
password => ""
);


DbLog ist auch gut beschrieben im http://www.fhemwiki.de/wiki/DbLog

DbLog aktivieren

define logdb DbLog ./db.conf Alpha2.*:.*
attr logdb group z1_Filelog
attr logdb room Fussbodenheizung


Fussbodenheizung definieren

define Alpha2 HTTPMOD http://xxx.xxx.xxx.xxx/data/dynamic.xml 600
attr Alpha2 userattr comment enableXPath-Strict reading01Name reading01XPath-Strict reading02Name reading02XPath-Strict stateFormat
attr Alpha2 comment Fussbodenheizung
attr Alpha2 enableXPath-Strict 1
attr Alpha2 group Fussbodenheizung
attr Alpha2 reading01Name Ist-Temperatur
attr Alpha2 reading01XPath-Strict //Devices/Device/HEATAREA/T_ACTUAL/text()
attr Alpha2 reading02Name Soll-Temperatur
attr Alpha2 reading02XPath-Strict //Devices/Device/HEATAREA/T_TARGET/text()
attr Alpha2 room Fussbodenheizung
attr Alpha2 stateFormat {sprintf("Ist-Temperatur-1: %.1f, Soll-Temperatur-1: %.1f , Ist-Temperatur-2: %.1f , #Soll-Temperatur-2: %.1f , Ist-Temperatur-3: %.1f , Soll-Temperatur-3: %.1f  , Ist-Temperatur-4: %.1f , Soll-Temperatur-4: %.1f  ",  ReadingsNum($name,"Ist-Temperatur-1",0), ReadingsNum($name,"Soll-Temperatur-1",0), ReadingsNum($name,"Ist-Temperatur-2",0), ReadingsNum($name,"Soll-Temperatur-2",0),ReadingsNum($name,"Ist-Temperatur-3",0), ReadingsNum($name,"Soll-Temperatur-3",0), ReadingsNum($name,"Ist-Temperatur-4",0), ReadingsNum($name,"Soll-Temperatur-4",0))}


Plots definieren

define SVG_Alpha2_Kueche_Esszimmer SVG logdb:SVG_Alpha2:HISTORY
attr SVG_Alpha2_Kueche_Esszimmer group Fussbodenheizung_Plot
attr SVG_Alpha2_Kueche_Esszimmer label "FBH Küche/Esszimmer min.: $data{min1} °C, max: $data{max1} °C, Letzte: $data{currval1} °C"::"Ist Temperatur"::"Soll Temperatur"::"Kueche_Esszimmer Ist-Temp"::"Kueche_Esszimmer Soll-Temp"
attr SVG_Alpha2_Kueche_Esszimmer plotfunction Alpha2 Ist-Temperatur-2 Soll-Temperatur-2
attr SVG_Alpha2_Kueche_Esszimmer room Fussbodenheizung

define SVG_Alpha2_Cheminee SVG logdb:SVG_Alpha2:HISTORY
attr SVG_Alpha2_Cheminee group Fussbodenheizung_Plot
attr SVG_Alpha2_Cheminee label "FBH Cheminée min.: $data{min1} °C, max: $data{max1} °C, Letzte: $data{currval1} °C"::"Ist Temperatur"::"Soll Temperatur"::"Cheminée Ist-Temp"::"Cheminée Soll-Temp"
attr SVG_Alpha2_Cheminee plotfunction Alpha2 Ist-Temperatur-1 Soll-Temperatur-1
attr SVG_Alpha2_Cheminee room Fussbodenheizung

define SVG_Alpha2_Wohnzimmer_Fenster SVG logdb:SVG_Alpha2:HISTORY
attr SVG_Alpha2_Wohnzimmer_Fenster group Fussbodenheizung_Plot
attr SVG_Alpha2_Wohnzimmer_Fenster label "FBH Wohnzimmer Fenster min.: $data{min1} °C, max: $data{max1} °C, Letzte: $data{currval1} °C"::"Ist Temperatur"::"Soll Temperatur"::"Wohnzimmer_Fenster Ist-Temp"::"Wohnzimmer_Fenster Soll-Temp"
attr SVG_Alpha2_Wohnzimmer_Fenster plotfunction Alpha2 Ist-Temperatur-3 Soll-Temperatur-3
attr SVG_Alpha2_Wohnzimmer_Fenster room Fussbodenheizung

define SVG_Alpha2_Wohnzimmer_Cheminee SVG logdb:SVG_Alpha2:HISTORY
attr SVG_Alpha2_Wohnzimmer_Cheminee group Fussbodenheizung_Plot
attr SVG_Alpha2_Wohnzimmer_Cheminee label "FBH Wohnzimmer Cheminée min.: $data{min1} °C, max: $data{max1} °C, Letzte: $data{currval1} °C"::"Ist Temperatur"::"Soll Temperatur"::"Wohnzimmer_Cheminee Ist-Temp"::"Wohnzimmer_Cheminee Soll-Temp"
attr SVG_Alpha2_Wohnzimmer_Cheminee plotfunction Alpha2 Ist-Temperatur-4 Soll-Temperatur-4
attr SVG_Alpha2_Wohnzimmer_Cheminee room Fussbodenheizung


und dazugehörige GPlot File

# Created by FHEM/98_SVG.pm, 2015-12-16 11:06:09
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title '<L1>'
set ytics
set y2tics
set grid ytics
set ylabel "<L2>"
set y2label "<L3>"
set yrange [20:25]
set y2range [20:25]
#logdb <SPEC1>:<SPEC2>
#logdb <SPEC1>:<SPEC3>
plot "<IN>" using 1:2 axes x1y1 title '<L4>' ls l0 lw 1.5 with lines,\
     "<IN>" using 1:2 axes x1y2 title '<L5>' ls l1 lw 0.5 with steps,\


Besten Dank allen die Funktionserweiterungen in den Modulen anbieten.
Sehr hilfreich sind auch die Anwendungsbeiträge, die helfen das "trockene" Commandref mit Beispielen zu hinterlegen. Das hoffe ich mit diesem Beitrag auch zu tun.
Bruno
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

Stril

Hallo!

Ich finde die Alpha 2 und Deine Integration wirklich spannend. Hast Du dann auch mehrere Basisstationen untereinander vernetzt per Funk oder LAN?

Gruß
Phil

BKSolo

Hallo Phil, habe nur eine Station für die Fussbodenheizung mit 4 Heizkreisen.

Weitere Integration für die Radiatoren in Fhem mit Heizungsregler FHT80B, Ventilantrieb FHT8V und Tüt-/Fenster-Kontakt FHT80TF.
Gruss, Bruno
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

Stril

Hallo!

Ich schwanke einfach noch zwischen folgenden zwei Varianten für meine Fußbodenheizung:

- Alpha 2
- Homematic-Lösung aus Wandthermostat und 1-Kanal-Aktor für jeden Raum

Siehst Du in der Alpha 2 einen echten Mehrwert?

Vielen Dank und Grüße

BKSolo

Hallo, gute Frage - ich hatte mich für Alpha2 entschieden, da es eine integrierte Lösung für meine vier Heizkreise bietet. Darin liegt sicher der Mehrwert. Natürlich musste ich noch zusätzlich vier Ventile und vier Thermostaten (wollte jeden Heizkreis autonom mit einer Ist-, Soll-Raumtemperatur steuern) dazu kaufen.

Bis jetzt verwende ich Fhem nur zur Darstellung der Ist-, Soll-Temperatur und Alpha2 übernimmt die Steuerung wie Nachtabsenkung, Ferienabwesenheit etc. Die zusätzliche Pumpe wird auch durch den Alpha2 gesteuert. Alles lässt sich über ein Browser direkt auf dem Alpha gut einstellen.

Wenn ich die Zeit finde wage ich mich auch ans Senden von XML-Commands an Alpha2. Damit kann die Steuerung in Fhem realisiert werden, was u.U. der Mehrwert des Alpha2 noch reduziert. Dein alternativer Weg mit einzelnen Heizkreisen funktioniert sicher auch. Evtl. ist es eine Frage wie viel Zeit du am Anfang mit einer eigenen Lösung investieren willst.

Gruss, Bruno
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

Stril

Hallo!

Danke für Deine Antwort.

Ich glaube, meine eigene Lösung ist eher schneller - dafür aber auch nicht so elegant.
Ich muss doch recht "hässlich" die Aktoren in den Heizkreisverteiler bauen (in irgendwelche Abzweigdosen oder ähnlich), während die Alpha 2 schön kompakt ist und direkt hinein kann.

Dafür ist in FHEM alles fertig. Sensor und Aktor werden direkt gekoppelt. FHEM kann dann im Wandthermostat die Sollwerte beeinflussen. Das funktionioniert mit einer Ausnahme: Nach einem Stromausfall bleibt der Aktor auf "aus" und der Sensor sendet nur dann Befehle, wenn es eine "Änderung" geben soll --> wenn es zu kalt war vor dem Stromausfall, bleibt die Heizung auf aus.

Bei der Alpha-Lösung hätte ich nur der Problem, dass ich LAN in jeden Heizkreisverteiler bekommen müsste - per WLAN-Bridge oder PowerLAN... Dafür wäre die FHEM-Integration (noch) nicht vollständig.

Schwere Sache :-)

Gruß
Phil

voller

Moin BKSolo,
erst einmal heißen Dank für deine Arbeit, hätte sonst noch Wochen daran gesessen.  :)
Die Zeit hab ich jetzt in das setzen set investiert. 8)
Ich hab ne 8-Kreis Alpha bei der, der 8. Kreis z.Z. mit Ventil und digitalem Raumtermostat ausgestattet ist.
Nachfolgend kommt der eingedampfte Code für jenen 8. Kreis

define Alpha2 HTTPMOD http://192.168.xxx.xxx/data/dynamic.xml 600
attr Alpha2 userattr enableXPath-Strict reading01Name reading01Regex reading02Name reading02Regex set02Data set02Hint set02Max set02Min set02Name set02URL
attr Alpha2 comment Fussbodenheizung
attr Alpha2 enableXPath-Strict 1
attr Alpha2 group Fussbodenheizung
attr Alpha2 reading01Name Ist-Temperatur8
attr Alpha2 reading01Regex xpath-strict://Devices/Device/HEATAREA [@nr="8"]/T_ACTUAL/text()
attr Alpha2 reading02Name Soll-Temperatur8
attr Alpha2 reading02Regex xpath-strict://Devices/Device/HEATAREA [@nr="8"]/T_TARGET/text()
attr Alpha2 room Fussbodenheizung

##### Hier wird die changes.xml zusammengestetzt
attr Alpha2 set02Data <?xml version="1.0" encoding="UTF-8"?><Devices><Device><ID>EZRDON</ID><HEATAREA nr="8"><T_TARGET>$val</T_TARGET></HEATAREA></Device></Devices>
##### maximaler Wert für die Soll-Temp wird von FHEM überprüft
attr Alpha2 set02Max 25
##### minimaler Wert für die Soll-Temp wird von FHEM überprüft
attr Alpha2 set02Min 15
##### Das Kind sollte einen Namen haben #####
attr Alpha2 set02Name Soll-Temperatur8
##### Post URL zum setzen aller Werte die über die Weboberfläche veränderbar sind #####
attr Alpha2 set02URL http://192.168.xxx.xxx/data/changes.xml


Die Feinheit das reading02xyz und set02xyz bezüglich "02" korrespondieren (müssen) hab ich mal so angenommen. Hab keine Ahnung ob das sein muss.
Es funzt jedenfalls soweit, dass der Wert in der Alpha gesetzt wird. Errorhandling findet nicht statt. Für FHEM müsste man das "look and feel" sicherlich auch noch "schön" machen.  ::)

Und Tschüs
Voller


BKSolo

Danke Voller,
ich komme auch schneller mit Beispielen weiter, als "nur" mit den Beschreibungen der Module.
Diese lassen ja sehr viel Funktionalität zu und wenn die Erfahrung fehlt, dann braucht es öfters viel Zeit.
Interessant dein "schreibender" Teil. Den nehme ich gerne auf in mein Fhem.
Beste Grüsse, Bruno
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

BKSolo

Hallo Voller, es war ein leichtes dein Script auf meine Umgebung anzupassen - hat mir viel Zeit erspart. Hatte mir noch keine Gedanken dazu gemacht. Besten Dank. :)

Ich habe ein erstes Fhem Interface für eine der Temperaturen für die Nacht und den Tag erstellt. Wobei Tag und Nacht eigentlich nur zwei Sollwerte sind, die gewählt werden können und unmittelbar wirksam werden.

Ist ein Ansatz der weiter entwickelt werden kann. Auf jedenfall kann mit der Erweiterung einer Zeitsteuerung die Nachtabsenkung erreicht werden.


#----------
# Setzen der Soll-Temperatur 4 für Tag und Nacht
#----------
define Temp4 dummy
attr Temp4 room Fussbodenheizung
attr Temp4 webCmd Tag:Nacht
attr Temp4 alias Wahl Tag oder Nacht Soll Temperatur Wohnzimmer Cheminée

define Temp4_Tag_Temp dummy
attr Temp4_Tag_Temp room Fussbodenheizung
attr Temp4_Tag_Temp setList state:15.0,16.0,17.0,18.0,19.0,20.0,21.0,22.0,22.5,23.0,23.5,24.0
attr Temp4_Tag_Temp webCmd state
attr Temp4_Tag_Temp alias Soll Temperatur Tag Wohnzimmer Cheminée

define Temp4_Nacht_Temp dummy
attr Temp4_Nacht_Temp room Fussbodenheizung
attr Temp4_Nacht_Temp setList state:15.0,16.0,17.0,18.0,19.0,20.0,21.0,22.0,22.5,23.0,23.5,24.0
attr Temp4_Nacht_Temp webCmd state
attr Temp4_Nacht_Temp alias Soll Temperatur Nacht Wohnzimmer Cheminée

define Hzg_Temp4_an notify Temp4:Tag {fhem("set Alpha2 Soll-Temperatur4 ". Value("Temp4_Tag_Temp"))}
attr Hzg_Temp4_an room Fussbodenheizung
define Hzg_Temp4_aus notify Temp4:Nacht {fhem("set Alpha2 Soll-Temperatur4 ". Value("Temp4_Nacht_Temp"))}
attr Hzg_Temp4_aus room Fussbodenheizung


Es gibt sicher noch bessere Look and Feels und funktionale Implementierungen, aber es ist ein Start.

Gruss, Bruno
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

voller

Moin Bruno,
freut mich zu lesen, dass es bei dir geklappt hat. Ich hab meine Weißheiten daher http://www.ezr-home.de/images/ezr/doc/Alpha2_XML_Schnittstellen_Informationen.zip, speziell aus dem Testprogramm Alpha2.exe. Die XML-Syntax für das SET steht da 1 zu 1 drin.  ;)
Da ich meine Heizung noch weiter hydraulisch konfigurieren muss, wollte ich mir nur die Frage beantworten, schaffe ich das als Nullvektor beim Programmieren später die Alpha2 zügig in die FHEM einzubinden.
Ich versuche mir jetzt die nächste Frage zu beantworten "Klappt dat auch damit http://denkovi.com/smartden-lan-ethernet-16-relay-module-din-rail-box.
Geht teilweise mit einer modifizierten Version deines ALPHA2 schon sehr gut. Teilweise heißt, es wird der Wert "1" für angezogenes Relais erkannt aber der Wert "0" für abgefallenes Relais wird nicht erkannt. Aber vielleicht kann HTTPMOD nicht mit 0 und 1 ömm. Muss mal weiter rätseln.

Und Tschüs
Voller

pwfhem

Hallo,

ich melde mich nochmal mit meinem Problem "memory leak".
Ich finde das Thema so spannend und möchte unbedingt meine 2 Stück ALPHA2 stabil in FHEM einbinden.
Technisch funktioniert das tadellos, allerdings steigt bei mir der Speicherbedarf (top) im Takt der Abholung der XML, was auf Dauer zum Perl-Absturz (lowmemkill) führt.

Zuerst hatte ich meinen nagelneuen cubietruck verwendet, mangels Verbreitung hier mir aber gestern noch einen nagelneuen RASPI2 beschafft.

Wie der cubietruck schon, ist auch der RASPI2 überwiegend "leer", die einzige FHEM-Funktion ist Abholen der XML von der ALPHA2. Sogar das loggen habe ich abgeschaltet.
Dennoch steigt bei mir auch im neuen RASPI2 im Takt des Abholens der perl-Speicherbedarf (immer so um etwa 250, angeschaut mit top)

was ist denn nur anders an meiner Konfiguration ??
Könnten bitte alle ALPHA2-FHEM-Benutzer ihre genaue Umgebung (HW, OS, FHEM.cfg) posten ?

Ich habe leider zu wenig Ahnung von Perl, um da tiefer suchen/debuggen zu können.

################
aktuelle Konfig:
RASPI2 mit debian 4.1.13
FHEM: aktuell
98_HTTMOD: neueste Version hier aus dem Forum

fhem.cfg:
# Fussboden oben
define EZR_oben HTTPMOD http://192.168.2.22/data/dynamic.xml 10
attr EZR_oben userattr comment enableXPath-Strict reading01Name reading01XPath-Strict reading02Name reading02XPath-Strict stateFormat
attr EZR_oben comment Fussbodenheizung
attr EZR_oben enableXPath-Strict 1
attr EZR_oben group Fussbodenheizung
attr EZR_oben reading01Name Ist-Temperatur
attr EZR_oben reading01XPath-Strict //Devices/Device/HEATAREA/T_ACTUAL/text()
attr EZR_oben reading02Name Soll-Temperatur
attr EZR_oben reading02XPath-Strict //Devices/Device/HEATAREA/T_TARGET/text()
attr EZR_oben stateFormat {sprintf("Ist-Temperatur-1: %.1f, Soll-Temperatur-1: %.1f , Ist-Temperatur-2: %.1f , Soll-Temperatur-2: %.1f , Ist-Temperatur-3: %.1f , Soll-Temperatur-3: %.1f  , Ist-Temperatur-4: %.1f , Soll-Temperatur-4: %.1f  ",  ReadingsNum($name,"Ist-Temperatur-1",0), ReadingsNum($name,"Soll-Temperatur-1",0), ReadingsNum($name,"Ist-Temperatur-2",0), ReadingsNum($name,"Soll-Temperatur-2",0),ReadingsNum($name,"Ist-Temperatur-3",0), ReadingsNum($name,"Soll-Temperatur-3",0), ReadingsNum($name,"Ist-Temperatur-4",0), ReadingsNum($name,"Soll-Temperatur-4",0))}

BKSolo

Hallo "pwfhem",

ich habe ein Raspberry Pi 2 Model B mit einer SD 32GB unter Linux / Debian 4.1.13-v7+.
Dazu verwende ich 1x CUL868 und 1xCUL433, 1x JeeLink, Firmata, HTTPMOD, Fhem2Fhem etc. Das fhem.cfg ist mittlerweile auf 1500 Zeilen Code gewachsen.
Fhem Release: 5.7 FeatureLevel: 5.7 (seit ca. 10 Tagen kein update / upgrade gefahren)
98_HTTPMOD: Version am 28.Dez. 2015 aus dem Forum geladen.

Bis jetzt ist alles stabil und läuft gut.

Alpha2 Config (wo vorhanden habe ich nur stellvertretend ein (und nicht 4) Heizungskreis/e aufgeführt):


define logdb DbLog ./configDB.conf Alpha2.*:.*
attr logdb group z1_Filelog
attr logdb room Fussbodenheizung

define Alpha2 HTTPMOD http://xxx.xxx.xxx.xxx/data/dynamic.xml 300
attr Alpha2 userattr comment enableXPath-Strict reading01Name reading01XPath-Strict reading02Name reading02XPath-Strict set01Data set01Max set01Min set01Name set01URL set02Data set02Max set02Min set02Name set02URL set03Data set03Max set03Min set03Name set03URL set04Data set04Max set04Min set04Name set04URL stateFormat
attr Alpha2 comment Fussbodenheizung
attr Alpha2 enableXPath-Strict 1
attr Alpha2 group Fussbodenheizung
attr Alpha2 reading01Name Ist-Temperatur
attr Alpha2 reading01XPath-Strict //Devices/Device/HEATAREA/T_ACTUAL/text()
attr Alpha2 reading02Name Soll-Temperatur
attr Alpha2 reading02XPath-Strict //Devices/Device/HEATAREA/T_TARGET/text()
attr Alpha2 room Fussbodenheizung
attr Alpha2 stateFormat {sprintf("Ist-Temperatur-1: %.1f, Soll-Temperatur-1: %.1f , Ist-Temperatur-2: %.1f , #Soll-Temperatur-2: %.1f , Ist-Temperatur-3: %.1f , Soll-Temperatur-3: %.1f  , Ist-Temperatur-4: %.1f , Soll-Temperatur-4: %.1f  ",  ReadingsNum($name,"Ist-Temperatur-1",0), ReadingsNum($name,"Soll-Temperatur-1",0), ReadingsNum($name,"Ist-Temperatur-2",0), ReadingsNum($name,"Soll-Temperatur-2",0),ReadingsNum($name,"Ist-Temperatur-3",0), ReadingsNum($name,"Soll-Temperatur-3",0), ReadingsNum($name,"Ist-Temperatur-4",0), ReadingsNum($name,"Soll-Temperatur-4",0))}

define SVG_Alpha2_Kueche_Esszimmer SVG logdb:SVG_Alpha2:HISTORY
attr SVG_Alpha2_Kueche_Esszimmer group Fussbodenheizung_Plot
attr SVG_Alpha2_Kueche_Esszimmer label "FBH Küche/Esszimmer min.: $data{min1} °C, max: $data{max1} °C, Letzte: $data{currval1} °C"::"Ist Temperatur"::"Soll Temperatur"::"Kueche_Esszimmer Ist-Temp"::"Kueche_Esszimmer Soll-Temp"
attr SVG_Alpha2_Kueche_Esszimmer plotfunction Alpha2 Ist-Temperatur-2 Soll-Temperatur-2
attr SVG_Alpha2_Kueche_Esszimmer room Fussbodenheizung
attr SVG_Alpha2_Kueche_Esszimmer sortby 1

#-----------
# Hier wird die changes.xml zusammengesetzt, minimaler Wert und maximaler Wert wird von FHEM überprüft
# Post URL zum setzen aller Werte die über die Weboberfläche veränderbar sind
#-----------

attr Alpha2 set03Data <?xml version="1.0" encoding="UTF-8"?><Devices><Device><ID>EZR0121C8</ID><HEATAREA nr="3"><T_TARGET>$val</T_TARGET></HEATAREA></Device></Devices>
attr Alpha2 set03Max 25
attr Alpha2 set03Min 15
attr Alpha2 set03Name Soll-Temperatur3
attr Alpha2 set03URL http://xxx.xxx.xxx.xxx/data/changes.xml


Der schreibende Alpha2 Code ist als Information aufgeführt.

Hoffe es hilft - Bruno
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

Moin
spannendes Thema Alpha2 mit FHEM integrieren, ich würde das gerne installieren, bin aber noch ziemlicher Anfänger.
Ich habe den unten stehenden Code genutzt, kriege aber nicht wirklich etwas angezeigt.
Ich vermute, dass ich den Code nicht 1:1 kopieren darf, sondern Bezeichnungen teilweise anpassen muss.
Mir ist auch aufgefallen, dass bei anderen Beispielen die Heatareas noch mit einer Nr. versehen sind.
Kann mich da jemand aufklären?
Nutze 2 Alpha8 mit je 8 Heizkreisen. Will aber zunächst eine einbinden, die zweite ist dann Kür.
Freue mich über jede Hilfe.



Zitat von: BKSolo am 16 Dezember 2015, 14:59:09
Ich habe das FileLog auf DbLog geändert, verwende dazu SQLite. Zusätzlich habe ich das Plot auf ein einzelnes GPlot File mit Parametern angepasst.

Achtung - zur Zeit muss noch das neuste HTTPMOD ins FHEM kopiert werden. Dazu siehe http://forum.fhem.de/index.php/topic,45176.0.html erster Beitrag von Stefan.

Die Installation von SQLite und das erstellen der notwendigen Tabellen ist u.a. beschrieben auf https://www.turais.de/fhem-logging-in-eine-sql-datenbank-2/. Dazu gibt es auch DB Browser für SQLite http://sqlitebrowser.org/

Erstellen der Fhem Datenbank Verbindung db.conf mit

%dbconfig= (
connection => "SQLite:dbname=/opt/fhem/fhem.db",
user => "",
password => ""
);


DbLog ist auch gut beschrieben im http://www.fhemwiki.de/wiki/DbLog

DbLog aktivieren

define logdb DbLog ./db.conf Alpha2.*:.*
attr logdb group z1_Filelog
attr logdb room Fussbodenheizung


Fussbodenheizung definieren

define Alpha2 HTTPMOD http://xxx.xxx.xxx.xxx/data/dynamic.xml 600
attr Alpha2 userattr comment enableXPath-Strict reading01Name reading01XPath-Strict reading02Name reading02XPath-Strict stateFormat
attr Alpha2 comment Fussbodenheizung
attr Alpha2 enableXPath-Strict 1
attr Alpha2 group Fussbodenheizung
attr Alpha2 reading01Name Ist-Temperatur
attr Alpha2 reading01XPath-Strict //Devices/Device/HEATAREA/T_ACTUAL/text()
attr Alpha2 reading02Name Soll-Temperatur
attr Alpha2 reading02XPath-Strict //Devices/Device/HEATAREA/T_TARGET/text()
attr Alpha2 room Fussbodenheizung
attr Alpha2 stateFormat {sprintf("Ist-Temperatur-1: %.1f, Soll-Temperatur-1: %.1f , Ist-Temperatur-2: %.1f , #Soll-Temperatur-2: %.1f , Ist-Temperatur-3: %.1f , Soll-Temperatur-3: %.1f  , Ist-Temperatur-4: %.1f , Soll-Temperatur-4: %.1f  ",  ReadingsNum($name,"Ist-Temperatur-1",0), ReadingsNum($name,"Soll-Temperatur-1",0), ReadingsNum($name,"Ist-Temperatur-2",0), ReadingsNum($name,"Soll-Temperatur-2",0),ReadingsNum($name,"Ist-Temperatur-3",0), ReadingsNum($name,"Soll-Temperatur-3",0), ReadingsNum($name,"Ist-Temperatur-4",0), ReadingsNum($name,"Soll-Temperatur-4",0))}


Plots definieren

define SVG_Alpha2_Kueche_Esszimmer SVG logdb:SVG_Alpha2:HISTORY
attr SVG_Alpha2_Kueche_Esszimmer group Fussbodenheizung_Plot
attr SVG_Alpha2_Kueche_Esszimmer label "FBH Küche/Esszimmer min.: $data{min1} °C, max: $data{max1} °C, Letzte: $data{currval1} °C"::"Ist Temperatur"::"Soll Temperatur"::"Kueche_Esszimmer Ist-Temp"::"Kueche_Esszimmer Soll-Temp"
attr SVG_Alpha2_Kueche_Esszimmer plotfunction Alpha2 Ist-Temperatur-2 Soll-Temperatur-2
attr SVG_Alpha2_Kueche_Esszimmer room Fussbodenheizung

define SVG_Alpha2_Cheminee SVG logdb:SVG_Alpha2:HISTORY
attr SVG_Alpha2_Cheminee group Fussbodenheizung_Plot
attr SVG_Alpha2_Cheminee label "FBH Cheminée min.: $data{min1} °C, max: $data{max1} °C, Letzte: $data{currval1} °C"::"Ist Temperatur"::"Soll Temperatur"::"Cheminée Ist-Temp"::"Cheminée Soll-Temp"
attr SVG_Alpha2_Cheminee plotfunction Alpha2 Ist-Temperatur-1 Soll-Temperatur-1
attr SVG_Alpha2_Cheminee room Fussbodenheizung

define SVG_Alpha2_Wohnzimmer_Fenster SVG logdb:SVG_Alpha2:HISTORY
attr SVG_Alpha2_Wohnzimmer_Fenster group Fussbodenheizung_Plot
attr SVG_Alpha2_Wohnzimmer_Fenster label "FBH Wohnzimmer Fenster min.: $data{min1} °C, max: $data{max1} °C, Letzte: $data{currval1} °C"::"Ist Temperatur"::"Soll Temperatur"::"Wohnzimmer_Fenster Ist-Temp"::"Wohnzimmer_Fenster Soll-Temp"
attr SVG_Alpha2_Wohnzimmer_Fenster plotfunction Alpha2 Ist-Temperatur-3 Soll-Temperatur-3
attr SVG_Alpha2_Wohnzimmer_Fenster room Fussbodenheizung

define SVG_Alpha2_Wohnzimmer_Cheminee SVG logdb:SVG_Alpha2:HISTORY
attr SVG_Alpha2_Wohnzimmer_Cheminee group Fussbodenheizung_Plot
attr SVG_Alpha2_Wohnzimmer_Cheminee label "FBH Wohnzimmer Cheminée min.: $data{min1} °C, max: $data{max1} °C, Letzte: $data{currval1} °C"::"Ist Temperatur"::"Soll Temperatur"::"Wohnzimmer_Cheminee Ist-Temp"::"Wohnzimmer_Cheminee Soll-Temp"
attr SVG_Alpha2_Wohnzimmer_Cheminee plotfunction Alpha2 Ist-Temperatur-4 Soll-Temperatur-4
attr SVG_Alpha2_Wohnzimmer_Cheminee room Fussbodenheizung


und dazugehörige GPlot File

# Created by FHEM/98_SVG.pm, 2015-12-16 11:06:09
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title '<L1>'
set ytics
set y2tics
set grid ytics
set ylabel "<L2>"
set y2label "<L3>"
set yrange [20:25]
set y2range [20:25]
#logdb <SPEC1>:<SPEC2>
#logdb <SPEC1>:<SPEC3>
plot "<IN>" using 1:2 axes x1y1 title '<L4>' ls l0 lw 1.5 with lines,\
     "<IN>" using 1:2 axes x1y2 title '<L5>' ls l1 lw 0.5 with steps,\


Besten Dank allen die Funktionserweiterungen in den Modulen anbieten.
Sehr hilfreich sind auch die Anwendungsbeiträge, die helfen das "trockene" Commandref mit Beispielen zu hinterlegen. Das hoffe ich mit diesem Beitrag auch zu tun.
Bruno
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

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
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