FHEM Forum

FHEM - Hausautomations-Systeme => Sonstige Systeme => Thema gestartet von: Heimweh am 11 November 2015, 23:21:54

Titel: ETA Touch - Rest API
Beitrag von: Heimweh am 11 November 2015, 23:21:54
Hallo liebe FHEM Profis. Nach langem mitlesen habe ich mich nun auch angemeldet. Ich besitze seit kurzem eine ETA Pellet Kessel PU 15. Mit FHEM hab ich wenig Erfahrung - ich hoffe, jemand kann mir mal eine Hilfestellung geben. Kurz gesagt, ich würde gerne im 5 Minuten Takt, Ca. 30 Variablen der Heizung Steuerung abrufen, und mit FHEM erstmal loggen.

Die Steuerung der ETA ist über LAN im Netzwerk eingebunden, und lässt sich über eine REST API absprechen, im XML.

Gibt es hier jemand, der sowas schon gemacht hat?

Viele Grüße, Heimweh
Titel: Antw:ETA Touch - Rest API
Beitrag von: jojoja am 23 November 2015, 19:42:41
Hallo Heimweh,

ich bin gewiss kein Profi, habe aber eine funktionierende Lösung gefunden.

Wie du sicher schon weißt, kommt man im Browser über   <ETA-ip>:8080/user/menu   auf den Baum, von dem man die Links beziehen kann. Diese frage ich per HTTPMOD ab:

define ETA_Verbrauch_gesamt HTTPMOD http://<ETA-ip>:8080/user/var/40/10021/0/0/12016 300
attr ETA_Verbrauch_gesamt userattr readingsName_VerbrauchGesamt readingsRegex.* readingsRegex_VerbrauchGesamt stateFormat
attr ETA_Verbrauch_gesamt readingsName_VerbrauchGesamt VerbrauchGesamt
attr ETA_Verbrauch_gesamt readingsRegex_VerbrauchGesamt strValue="([\d]+)"
attr ETA_Verbrauch_gesamt stateFormat VerbrauchGesamt kg

Allerding liest man damit nur einen Wert aus, was bei 30 Werten schon aufwändig wird. In meinem Fall sind es 4, dafür reicht diese Lösung.
Es gibt mit großer Sicherheit elegantere Wege, doch dafür fehlt es mir momentan an KnowHow.

Gruß, Johannes
Titel: Antw:ETA Touch - Rest API
Beitrag von: Heimweh am 23 November 2015, 20:54:12
Hallo Johannes,

vielen Dank für Deine Hilfestellung!!! In diese Richtung hatte ich auch schon experimentiert, hat aber nicht so recht geklappt! Dein Code funktioniert!
Ob es elegant ist oder nicht - es funktioniert  :)
Weißt Du zufällig, ob man auch Befehle an die Heizung schicken kann? Wenn ich in die Restful Dokumentation schaue kommt es mir nicht so vor...

Danke, Gruß Daniel
Titel: Antw:ETA Touch - Rest API
Beitrag von: jojoja am 24 November 2015, 10:36:25
Morgen Daniel,

doch, kann man:

Zitat
4.2 HTTP POST
Using HTTP POST you can set a variable to a certain value.

Allerdings bin ich hier am Ende meines Wissens, bin aber auch daran interessiert. Falls ich zu etwas komme werde ich es hier posten.

Gruß Johannes
Titel: Antw:ETA Touch - Rest API
Beitrag von: edkiss am 03 Januar 2016, 23:00:52
das würde mich auch interessieren... :)
Titel: Antw:ETA Touch - Rest API
Beitrag von: QuesT am 05 Januar 2016, 15:40:21
Hallo,

habe auch den PU15.

zum steuern verwende ich ETA Heizungssteuerung - https://play.google.com/store/apps/details?id=at.bernhardpflug.heating
ETA Kessel Viewer http://tinera-software.de/html/downloads.html gibts für Windows.

Hier gibts auch noch ein paar Codeschnipsel:

http://homematic-forum.de/forum/viewtopic.php?f=43&t=22058&p=185613&hilit=ETA#p185613

Titel: Antw:ETA Touch - Rest API
Beitrag von: LONyTOOn am 21 Januar 2016, 01:10:46
Ich schaff es mit dem Beispielcode nicht die Außentemperatur einzulesen :( vermutlich liegt es an der (negativen) Kommazahl

attr ETA_Aussentemperatur readingsRegex_Aussentemperatur strValue="([\d]+)"
hier noch ein Ausschnitt aus dem xml request:
<value uri="/user/var/48/10241/0/0/12197" strValue="-2,0" unit="°C" decPlaces="1" scaleFactor="10" advTextOffset="0">-19</value>
Den Rest habe ich entsprechend angepasst. Mit der Vorlauftemperatur (ganze positive Zahl) funktioniert es z.B.
Titel: Antw:ETA Touch - Rest API
Beitrag von: LONyTOOn am 22 Januar 2016, 19:18:33
Nach vielem lesen und probieren bin ich soweit, dass das Dezimalkomma schuld ist, dass das einlesen nicht klappt.
mit ([\d\.]+)\< beispielsweise würde er mir 19 einlesen. Da fehlt dann allerdings das Vorzeichen und ich müsste den Wert irgendwie noch durch 10 Teilen... leider bin ich in Sachen FHEM noch totaler Anfänger.
Titel: Antw:ETA Touch - Rest API
Beitrag von: jojoja am 22 Januar 2016, 20:17:03
Hallo,

für die Außentemperatur habe ich diese Regex:

attr ETA_Sys_AuTemp readingsRegex_SysAuTemp strValue="(\d+(,\d*)?)"
Gruß Johannes
Titel: Antw:ETA Touch - Rest API
Beitrag von: LONyTOOn am 24 Januar 2016, 22:46:32
Hat funktioniert, danke :)
Titel: Antw:ETA Touch - Rest API
Beitrag von: Heimweh am 25 November 2016, 11:40:44
Hat es denn schon jemand geschafft, Befehle an die ETA zu schicken? Wie z.B. heizen einschalten?
Titel: Antw:ETA Touch - Rest API
Beitrag von: Frank_Huber am 25 November 2016, 13:10:30
soweit ich weis kann die Rest API nur lesen, nicht schreiben.
Titel: Antw:ETA Touch - Rest API
Beitrag von: Heimweh am 25 November 2016, 13:47:16
Hallo Frank,

doch das geht. Ich musste mich auch schon eines besseren belehren lassen... Hier in diesem Thema gibt's sogar einen link zu entsprechenden Codeschnippseln,
allerdings noch nicht ganz FHEM tauglich.
Titel: Antw:ETA Touch - Rest API
Beitrag von: Frank_Huber am 25 November 2016, 13:51:59
Oh, das ging an mir vorbei.
Dann verfolge ich das gespannt weiter.

war bisher schon mehr als zufrieden Werte auslesen zu können. :)
Titel: Antw:ETA Touch - Rest API
Beitrag von: George_Best am 02 Februar 2017, 20:50:29
Guten Abend zusammen,

erstmal vielen Dank für die Infos wie man Daten aus einer ETA-Heizung ausliest. Bei mir klappt das mit den Verbräuchen bereits. Nur die Außentemperatur will nicht.

define ETA_Aussentemp HTTPMOD http://192.168.178.13:8080/user/var//112/10241/0/0/12197 14400
attr ETA_Aussentemp userattr reading01Aussentemp reading01RegexAussentemp readingsRegex.* stateFormat
attr ETA_Aussentemp reading01Aussentemp Aussentemp
attr ETA_Aussentemp reading01RegexAussentemp strValue="(\d+(,\d*)?)"
attr ETA_Aussentemp stateFormat °C

Die XML-Antwort sieht so aus:
<eta xmlns="http://www.eta.co.at/rest/v1" version="1.0">
<value uri="/user/var//112/10241/0/0/12197" strValue="2,5" unit="°C" decPlaces="1" scaleFactor="10" advTextOffset="0">23</value>
</eta>

Ich erhalte jedoch leider kein Ergebnis....
Das Log-File sagt immer:
2017.02.02 20:46:06 3: ETA_Aussentemp: Defined with URL http://192.168.178.13:8080/user/var//112/10241/0/0/12197 and interval 14400
2017.02.02 20:46:08 3: ETA_Aussentemp: Read response to update didn't match any Reading

Hat jemand eine Idee??
Titel: Antw:ETA Touch - Rest API
Beitrag von: jojoja am 02 Februar 2017, 21:54:44
Hallo,

kann es sein, dass wegen Minusgraden kein Match stattfindet? Ich habe folgenden Regex:

strValue="(-?\d+(,\d*)?)"
Gruß Johannes
Titel: Antw:ETA Touch - Rest API
Beitrag von: Heimweh am 02 Februar 2017, 23:27:09
Bei mir funktioniert es.

#
# ------------------------
# - ETA Aussentemperatur -
# ------------------------
#
define au ja erssentempEta HTTPMOD http://192.168.178.27:8080/user/var/40/10241/0/0/12197 1800
attr aussentempEta userattr event-min-interval event-on-change-reading reading01Name reading01Regex readingsExpr1 stateFormat verbose
attr aussentempEta alias Eta Aussentemperatur
attr aussentempEta enableControlSet 1
attr aussentempEta event-min-interval AT_Eta:3600
attr aussentempEta event-on-change-reading .*:1
attr aussentempEta group ETA
attr aussentempEta reading01Name AT_Eta
attr aussentempEta reading01Regex strValue="([\d,-]+)"
attr aussentempEta room EG Temperaturen,Eta
attr aussentempEta stateFormat {no warnings 'numeric' ;; sprintf("%.1f Grad",int(ReadingsVal($name,"AT_Eta",0)))}
Titel: Antw:ETA Touch - Rest API
Beitrag von: George_Best am 05 Februar 2017, 18:48:03

Perfekt - vielen, vielen Dank! Das funktioniert nun bei mir auch.

Aber, bitte entschuldigt die Anfängerfrage, aber was genau hat es mit der letzten Zeile in deinem Code auf sich?

attr aussentempEta stateFormat {no warnings 'numeric' ;; sprintf("%.1f Grad",int(ReadingsVal($name,"AT_Eta",0)))}

Gut - ich kapier zwar, dass es sich um Perl-Code handelt und du irgendwie dadurch das " Grad" anhängst...
Titel: Antw:ETA Touch - Rest API
Beitrag von: Heimweh am 05 Februar 2017, 18:52:46
Ehrlicherweise kann ich Dir das nicht erklären, ich hab das auch aus den verschiedensten Beispielen zusammengeschustert.....
Titel: Antw:ETA Touch - Rest API
Beitrag von: Frank_Huber am 22 Mai 2017, 14:09:31
--schnipp--
Inhalt hier gelöscht und einen neuen Thread aufgemacht zum generellen umgehen mit HTTP-POST
https://forum.fhem.de/index.php/topic,72250 (https://forum.fhem.de/index.php/topic,72250)
Titel: Antw:ETA Touch - Rest API
Beitrag von: jojoja am 22 Mai 2017, 16:12:44
Hallo,

soweit ich weiß geht das mit GetFileFromURL: https://wiki.fhem.de/wiki/HttpUtils (https://wiki.fhem.de/wiki/HttpUtils)
Im Parameter "data" soll dann die POST Nachricht rein. Könnte mir vorstellen, dass das dann z.B. "value=1803" heißen könnte, wie im HM forum...
Selbst habe ich das aber noch nicht gemacht.

Gruß Johannes

Edit: Da kam der --schnipp-- wohl beim Schreiben :D
Titel: Antw:ETA Touch - Rest API
Beitrag von: Frank_Huber am 26 Mai 2017, 16:11:10
für alle die hier mitlesen, ein erster Erfolg ist erzielt...
mit {GetFileFromURL("http://192.168.12.82:8080/user/var/40/10021/0/0/12112",5,"value=1803",0,4)} kann ich über FHEM die Entaschung starten.
Titel: Antw:ETA Touch - Rest API
Beitrag von: MH1973 am 26 Mai 2017, 17:46:47
Hallo
die ETA Regelung ist Modbus IP fähig
damit können alle Werte ausgelesen und sogar geschrieben werden.
Für die Regelung gibt es keine Register-liste, diese muss an der Regelung selber eingestellt werden.

Gruß
Markus
Titel: Antw:ETA Touch - Rest API
Beitrag von: Frank_Huber am 26 Mai 2017, 19:53:14
Hi Markus,
Wenn man weiß wie geht das bestimmt....[emoji6]
Hast dazu evtl nen Beispiel Code?

Gesendet von meinem S3_32 mit Tapatalk

Titel: Antw:ETA Touch - Rest API
Beitrag von: Frank_Huber am 29 Mai 2017, 12:36:33
So,
Ein weiterer Meilenstein ist erreicht. Zirkulation Warmwasser nur wenn jemand zuhause ist.
Über IP PRESENCE schalte ich einen dummy auf on = jmd da oder off = niemand da.
Die ETA dann über diesen DOIF:
([Anwesenheit] eq "on")
(set TelegramBot message Zirkulation AN,
{GetFileFromURL("http://192.168.12.82:8080/user/var/72/10531/12175/0/1082",5,"begin=24&end=92",0,4)},
{GetFileFromURL("http://192.168.12.82:8080/user/var/72/10531/12175/0/1086",5,"begin=24&end=92",0,4)},
{GetFileFromURL("http://192.168.12.82:8080/user/var/72/10531/12175/0/1090",5,"begin=24&end=92",0,4)},
{GetFileFromURL("http://192.168.12.82:8080/user/var/72/10531/12175/0/1094",5,"begin=24&end=92",0,4)},
{GetFileFromURL("http://192.168.12.82:8080/user/var/72/10531/12175/0/1098",5,"begin=24&end=92",0,4)},
{GetFileFromURL("http://192.168.12.82:8080/user/var/72/10531/12175/0/1102",5,"begin=24&end=92",0,4)},
{GetFileFromURL("http://192.168.12.82:8080/user/var/72/10531/12175/0/1106",5,"begin=24&end=92",0,4)})
DOELSEIF ([Anwesenheit] eq "off")
(set TelegramBot message Zirkulation AUS,
{GetFileFromURL("http://192.168.12.82:8080/user/var/72/10531/12175/0/1082",5,"begin=0&end=0",0,4)},
{GetFileFromURL("http://192.168.12.82:8080/user/var/72/10531/12175/0/1086",5,"begin=0&end=0",0,4)},
{GetFileFromURL("http://192.168.12.82:8080/user/var/72/10531/12175/0/1090",5,"begin=0&end=0",0,4)},
{GetFileFromURL("http://192.168.12.82:8080/user/var/72/10531/12175/0/1094",5,"begin=0&end=0",0,4)},
{GetFileFromURL("http://192.168.12.82:8080/user/var/72/10531/12175/0/1098",5,"begin=0&end=0",0,4)},
{GetFileFromURL("http://192.168.12.82:8080/user/var/72/10531/12175/0/1102",5,"begin=0&end=0",0,4)},
{GetFileFromURL("http://192.168.12.82:8080/user/var/72/10531/12175/0/1106",5,"begin=0&end=0",0,4)})

Die Telegrambot Zeilen fliegen die Tage wieder raus. Die sind nur zur Überprüfung. :)

/FRank
Titel: Antw:ETA Touch - Rest API
Beitrag von: Frank_Huber am 26 Juli 2017, 13:39:41
Mahlzeit,

Die nächste Funktion ist eingebaut. Einstellung der Warmwassertemperatur per FHEM Dummy.
Ein doif überwacht den DUMMY und stellt dann im ETA Kessel die Warmwassertemperatur ein.

Dummy:
defmod ETA_Warmwasser dummy
attr ETA_Warmwasser event-on-change-reading state
attr ETA_Warmwasser group Heizungssteuerung
attr ETA_Warmwasser room zentrale Funktionen
attr ETA_Warmwasser setList 40 45 50 55 60

DOIF:
defmod DOIF_Warmwasser DOIF ([ETA_Warmwasser:"^.*$"])\
({GetFileFromURL("http://192.168.12.82:8080/user/var/72/10531/12318/0/1082",5,"value=$EVENT0&begin=0&end=96",0,4)})\
({GetFileFromURL("http://192.168.12.82:8080/user/var/72/10531/12318/0/1086",5,"value=$EVENT0&begin=0&end=96",0,4)})\
({GetFileFromURL("http://192.168.12.82:8080/user/var/72/10531/12318/0/1090",5,"value=$EVENT0&begin=0&end=96",0,4)})\
({GetFileFromURL("http://192.168.12.82:8080/user/var/72/10531/12318/0/1094",5,"value=$EVENT0&begin=0&end=96",0,4)})\
({GetFileFromURL("http://192.168.12.82:8080/user/var/72/10531/12318/0/1098",5,"value=$EVENT0&begin=0&end=96",0,4)})\
({GetFileFromURL("http://192.168.12.82:8080/user/var/72/10531/12318/0/1102",5,"value=$EVENT0&begin=0&end=96",0,4)})\
({GetFileFromURL("http://192.168.12.82:8080/user/var/72/10531/12318/0/1106",5,"value=$EVENT0&begin=0&end=96",0,4)})
attr DOIF_Warmwasser DbLogExclude .*
attr DOIF_Warmwasser do always
attr DOIF_Warmwasser group Heizungssteuerung
attr DOIF_Warmwasser room zentrale Funktionen
attr DOIF_Warmwasser verbose 0


vielleicht kann es ja jemand brauchen. :)

Grüße
Frank
Titel: Antw:ETA Touch - Rest API
Beitrag von: wusa am 11 August 2017, 13:23:23
Hallo Zusammen,

ich habe nun auch seit 4 Wochen eine ETA Heizung. Eine PU 11.

Da ich mir anfangs eigentlich einen Raspi mit Temperatursensoren aufstellen wollte, habe ich hier gelesen, dass man die Werte auch direkt auslesen kann.
Der Heizung habe ich auch eine feste IP vergeben und angeschlossen.
Über folgenden Link erreiche ich die Heizung: http://192.168.7.100:8080/user/menu
Problem hierbei ist allerdings, dass folgende Fehlermeldung erscheint:
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<eta xmlns="http://www.eta.co.at/rest/v1" version="1.0">
<error>No such application or domain</error>
</eta>

Muss hier am Kessel noch etwas eingestellt werden, oder mache ich etwas falsch?
Titel: Antw:ETA Touch - Rest API
Beitrag von: Heimweh am 11 August 2017, 14:29:56
Hallo Wusa,

erreichst Du denn die ETA über das Portal von Eta? Hast Du es mal lokal mit VNC probiert?

Über Systemeinstellungen / meinETA musst Du alle 4 "Schalter" einschalten. Bei mir ist es eine Weile her,
aber mehr war nicht zu tun erinnere ich mich.

Dein link (sofern Deine IP stimmt) ist auf jeden Fall richtig und sollte funktionieren
Titel: Antw:ETA Touch - Rest API
Beitrag von: wusa am 11 August 2017, 15:32:33
Hi Heimweg,

über das Portal von ETA habe ich mich noch nicht registriert. Muss dass sein, oder ist wäre das eine Empfehlung?
VNC habe ich noch nicht getestet.

Über die Systemeinstellung / meinETA werde ich heute nachsehen, da habe ich bisher noch nichts gemacht. Bist habe ich nur die IP vergeben und angeschlossen.
Mache ich aber heute Abend.

Danke vorerst. Ich melde mich ob es geklappt hat!
Titel: Antw:ETA Touch - Rest API
Beitrag von: Frank_Huber am 11 August 2017, 17:05:04
Muss hier am Kessel noch etwas eingestellt werden, oder mache ich etwas falsch?
Du musst in MeinETA noch die API freischalten. kann ich Dir nachher zuhause genauer erklären und die API pdfs hier posten.
Titel: Antw:ETA Touch - Rest API
Beitrag von: Frank_Huber am 11 August 2017, 19:37:06
im Anhang Die Einstellung von MeinETA und das pdf
Titel: Antw:ETA Touch - Rest API
Beitrag von: wusa am 14 August 2017, 08:56:33
Vielen Dank für die Hilfe.
Komme jetzt auch auf die HTML Seite und kann die Werte auslesen.
Danke!
Titel: Antw:ETA Touch - Rest API
Beitrag von: Frank_Huber am 14 August 2017, 08:58:26
Gerne, melde dich wenn du irgendwo Hilfe brauchst!

Gesendet von meinem S3_32 mit Tapatalk

Titel: Antw:ETA Touch - Rest API
Beitrag von: wusa am 30 Oktober 2017, 13:12:50
Hallo Zusammen,

jetzt habe ich nochmal ein kleines Anliegen.

Und zwar wenn ich mich in der Heizung in der Serviceebene anmelde, habe ich die Möglichkeit die Zündungen des Kessels anzusehen.

Diesen Eintrag suche ich allerdings vergeblich unter diesem Link: http://192.168.7.100:8080/user/menu

Gibt es noch weiter Links, die vielleicht auch die Einträge der Serviceebene zeigen? Die Kesselstarts wären für mich Interessant.

Danke
Titel: Antw:ETA Touch - Rest API
Beitrag von: Frank_Huber am 30 Oktober 2017, 14:48:23
Hi wusa,

mir ist so jetzt nichts bekannt. Das User/menu beinhaltet nicht die Service-Elemente.

Grüße
Frank
Titel: Antw:ETA Touch - Rest API
Beitrag von: wusa am 30 Oktober 2017, 15:19:07
Habe jetzt in der Doku von ETA selbst noch ein paar Links gefunden.
Da komme ich aber leider auch nicht weiter.

/user/api
/user/menu
/user/var
/user/vars
/user/errors

Titel: Antw:ETA Touch - Rest API
Beitrag von: Frank_Huber am 30 Oktober 2017, 15:21:12
Ja, das ist alles in der /user/ Ebene.

Hast mal bei ETA nachgefragt?
Titel: Antw:ETA Touch - Rest API
Beitrag von: Frank_Huber am 30 Oktober 2017, 16:42:17
Zitat von: ETA Kundenservice
über die ETAtouch Schnittstellen können nur Parameter der Kundenebene abgefragt bzw. beschrieben werden.
Titel: Antw:ETA Touch - Rest API
Beitrag von: wusa am 02 November 2017, 10:07:39
Bei ETA selbst habe ich noch nicht Nachgefragt.
Aber dein letzter Beitrag sagt denke ich alles aus.

Danke
Titel: Antw:ETA Touch - Rest API
Beitrag von: Heimweh am 04 Dezember 2017, 12:35:31
Kannst Du denn die Kesselstarts nicht auch anders rausfinden? z.B. über /user/var/40/10021/0/0/12000 ?
da kann ich bei mir folgende Dinge sehen: heizen, Glutabbrand, Entaschung etc....

Ich frage das so ab:

#
# ------------------------
# - ETA Status Kessel -
# ------------------------
#
define StatHzgEta HTTPMOD http://192.168.178.27:8080/user/var/40/10021/0/0/12000 120
attr StatHzgEta userattr event-min-interval event-on-change-reading reading01Name reading01Regex readingsExpr1 stateFormat verbose
attr StatHzgEta alias Eta Status Kessel
attr StatHzgEta enableControlSet 1
attr StatHzgEta event-min-interval StatKess:3600
attr StatHzgEta event-on-change-reading .*
attr StatHzgEta reading01Name StatKess
attr StatHzgEta reading01Regex strValue="([\w]+)"
attr StatHzgEta room Eta
attr StatHzgEta stateFormat {sprintf("%s",ReadingsVal($name,"StatKess",0))}

Und das kommt dabei raus:


StatKess      Heizen       2017-12-04 12:34:12
Titel: Antw:ETA Touch - Rest API
Beitrag von: Frank_Huber am 04 Dezember 2017, 12:50:21
Ja klar,

über den Kesselstatus kann man auch indirekt die Starts zählen.
Das sollte kein Problm sein.
Titel: Antw:ETA Touch - Rest API
Beitrag von: Frank_Huber am 30 September 2018, 20:24:52
Achtung, ETA hat ein paar Pfade geändert!
Ich musste meine FBH Abfragen anpassen, die haben keine Daten mehr abgerufen.

Nur falls sich wer wundert dass nichts reinkommt....

Gesendet von meinem Doogee S60 mit Tapatalk

Titel: Antw:ETA Touch - Rest API
Beitrag von: Ronny_5578 am 16 Januar 2019, 23:11:08
Hi,
wir haben jetzt auch eine ETA Heizung und habe in meinETA auch den Webservice freigeschalten.
Aber irgendwie bekomme ich nix angezeigt. Immer 0.0 Grad

Ich habe folgenden code von euch genutzt
define aussentempEta HTTPMOD http://192.168.178.112:8080/user/var/40/10241/0/0/12197 1800
attr aussentempEta userattr event-min-interval event-on-change-reading reading01Name reading01Regex readingsExpr1 stateFormat verbose
attr aussentempEta alias Eta Aussentemperatur
attr aussentempEta enableControlSet 1
attr aussentempEta event-min-interval AT_Eta:3600
attr aussentempEta event-on-change-reading .*:1
attr aussentempEta group ETA
attr aussentempEta reading01Name AT_Eta
attr aussentempEta reading01Regex strValue="([\d,-]+)"
attr aussentempEta room EG Temperaturen,Eta
attr aussentempEta stateFormat {no warnings 'numeric' ;; sprintf("%.1f Grad",int(ReadingsVal($name,"AT_Eta",0)))}


Eigentlich möchte ich die Temperaturen vom Kessel etc in Fhem anzeigen lassen und ploten.
Titel: Antw:ETA Touch - Rest API
Beitrag von: Heimweh am 16 Januar 2019, 23:18:48
Hallo Ronny,

mein Code sieht genauso aus und ich bekomme auch 0° Grad angezeigt. Ist mir bisher gar nicht aufgefallen, denn es hat so definitiv mal funktioniert.
Vermutlich weil (s.o.) ETA die Pfade geändert hat. ich schaue morgen mal...

So sieht es bei mir aus:

define TempKessel HTTPMOD http://192.168.178.58:8080/user/var/40/10021/0/0/12161 1800
attr TempKessel userattr event-min-interval event-on-change-reading reading01Name reading01Regex readingsExpr1 stateFormat verbose
attr TempKessel alias Eta Kesseltemperatur
attr TempKessel enableControlSet 1
attr TempKessel reading01Regex strValue="([\d,-]+)"
attr TempKessel room Eta
attr TempKessel stateFormat {no warnings 'numeric' ;; sprintf("%.1f Grad",int(ReadingsVal($name,"KST_Eta",0)))}
Titel: Antw:ETA Touch - Rest API
Beitrag von: Frank_Huber am 17 Januar 2019, 07:00:06
Ja, im herbst musste ich auch ein paar Pfade anpassen.
Einfach das Menü abrufen und abgleichen.

Gesendet von meinem Doogee S60 mit Tapatalk

Titel: Antw:ETA Touch - Rest API
Beitrag von: Heimweh am 17 Januar 2019, 08:05:17
Guten Morgen Ronny,

ich habe mich jetzt mal damit beschäftigt. Der Codeschnipsel den Du da eingefügt hast war ja von mir - und der funktioniert auch so bei mir.
Der Pfad hat sich in diesem Fall nicht geändert.

Gib mal an einem Rechner im Browser (selbes Netzwerk wie die Eta Heizung) folgende Adresse ein:

http://192.168.178.112:8080/user/var/40/10241/0/0/12197

dann müsste folgendes zurückkommen:

This XML file does not appear to have any style information associated with
 it. The document tree is shown below.
 <eta xmlns="http://www.eta.co.at/rest/v1" version="1.0">
 <value uri="/user/var/40/10241/0/0/12197" strValue="5,5" unit="°C"
 decPlaces="1" scaleFactor="10" advTextOffset="0">55</value>
 </eta>

Funktioniert das so bei Dir?
Titel: Antw:ETA Touch - Rest API
Beitrag von: Frank_Huber am 17 Januar 2019, 08:22:00
Es können aber je nach Software Version und Kessel-Typ andere Pfade sein.
Ich würde das über das Menü abgleichen. Die Aussen-Temp sollte zwar überall gleich sein, aber man weis ja nie.
http://IP-DES-KESSELS:8080/user/menu
dann runterscrollen bis "System", hier siehst Du den richtigen Pfad.  (im Anhang markiert)

Hier auch noch zum Vergleich mein Device:
defmod ETA_Kessel_Aussentemp HTTPMOD http://192.168.99.99:8080/user/var/40/10241/0/0/12197 300
attr ETA_Kessel_Aussentemp userattr reading01Name reading01OExpr reading01Regex readingsRegex.* stateFormat
attr ETA_Kessel_Aussentemp enableControlSet 1
attr ETA_Kessel_Aussentemp event-on-change-reading .*
attr ETA_Kessel_Aussentemp reading01Name Kessel_Aussentemp
attr ETA_Kessel_Aussentemp reading01OExpr $val =~ s/,/\./;; $val;;
attr ETA_Kessel_Aussentemp reading01Regex strValue="([0-9,.]+)"
attr ETA_Kessel_Aussentemp stateFormat Kessel_Aussentemp °C
Titel: Antw:ETA Touch - Rest API
Beitrag von: Ronny_5578 am 18 Januar 2019, 18:15:14
Vielen Dank,
habe mein Fehler gefunden.
IP war falsch  :o

Aber so ganz bekomme ich das aber nicht hin.

Wenn ich
Zitat
http://192.168.1.231:8080/user/menu/
eingebe, dann erhalte ich
Zitat
<fub uri="/120/10101" name="HK"><object uri="/120/10101/0/0/12090" name="Heizkreis">
<object uri="/120/10101/0/0/12092" name="Betrieb"/>
<object uri="/120/10101/12113/0/0" name="Heizzeiten">
<object uri="/120/10101/12113/0/1109" name="Schaltzustand"/>
<object uri="/120/10101/12113/0/1110" name="Temperatur"/>

Ich möchte die Temperatur haben, also habe ich
Zitat
http://192.168.1.231:8080/user/var/120/10101/12113/0/1110
eingegeben und bekomme
Zitat
<eta version="1.0">
<script/>
<value uri="/user/var/120/10101/12113/0/1110" strValue="xxx" unit="" decPlaces="1" scaleFactor="10" advTextOffset="0">-32768</value>
</eta>
aber die Temperatur habe ich da nicht, obwohl es die gibt z.Z. 60°C.
Titel: Antw:ETA Touch - Rest API
Beitrag von: Ronny_5578 am 30 Januar 2019, 09:13:55
So habe iniges hin bekommen aber noch nicht alles  :-[

Nun wollte ich die Betriebsstunden anzeigen lassen, aber hier scheitere ich an Fhem.
Mit http://192.168.1.231:8080/user/var/40/10021/0/0/12153 erhlate ich folgendes:

<eta version="1.0">
<script/><value uri="/user/var/40/10021/0/0/12153" strValue="1899h 38m" unit="" decPlaces="0" scaleFactor="1" advTextOffset="0">6838690</value>
</eta>

Also  strValue="1899h 38m"

Wie schaffe ich dies anzuzeigen?

mit attr Betriebsstunden_Kessel reading01OExpr $val =~ s/,/\./;; $val;;
attr Betriebsstunden_Kessel reading01Regex strValue="([0-9,.]+)"

kommt nix gescheites raus da steht dann bei mir 14h ???

Hier mal meine gesammter Code
define Betriebsstunden_Kessel HTTPMOD http://192.168.1.231:8080/user/var/40/10021/0/0/12153 300
attr Betriebsstunden_Kessel userattr reading01Name reading01OExpr reading01Regex readingsRegex.* stateFormat
attr Betriebsstunden_Kessel enableControlSet 1
attr Betriebsstunden_Kessel event-on-change-reading .*
attr Betriebsstunden_Kessel group Heizung
attr Betriebsstunden_Kessel reading01Name Betriebsstunden
attr Betriebsstunden_Kessel reading01OExpr $val =~ s/,/\./;; $val;;
attr Betriebsstunden_Kessel reading01Regex strValue="([0-9,.]+)"
attr Betriebsstunden_Kessel room Keller
attr Betriebsstunden_Kessel stateFormat Betriebsstunden h

Kann mir jemand helfen?
Danke
Titel: Antw:ETA Touch - Rest API
Beitrag von: Frank_Huber am 30 Januar 2019, 09:47:12
Nun wollte ich die Betriebsstunden anzeigen lassen, aber hier scheitere ich an Fhem.
Wie schaffe ich dies anzuzeigen?
Kann mir jemand helfen?

Meine Vermutung: Regex passt nicht. kannst über regex101.com testen. https://regex101.com/
Dein jetziger Regex matcht gar nicht:
Zitat
Your regular expression does not match the subject string.

dieser:
strValue="([0-9,.]+)hmatcht zu 1899. Also die Stunden ohne die Minuten.

dieser:
h ([0-9,.]+)m"würde die Minuten matchen, 38

Mit einem User-Reading z.B. könnte man diese dann zu hhh:mm zusammenführen.
Titel: Antw:ETA Touch - Rest API
Beitrag von: Ronny_5578 am 30 Januar 2019, 10:13:13
Vielen Dank,
das werde ich heute Abend gleich ausprobieren.

Meine HK Temperatur habe ich wirklich nicht gefunden, so habe ich heute mal eine Mail an eta gesendet.
Mal sehen, ob es eine Antwort gibt.
Titel: Antw:ETA Touch - Rest API
Beitrag von: Frank_Huber am 30 Januar 2019, 10:40:09
die sind im Regelfall sehr hilfsbereit.
Hab ich bishe rnur gute Erfahrungen gemacht.
Titel: Antw:ETA Touch - Rest API
Beitrag von: Ronny_5578 am 31 Januar 2019, 06:29:45
Der Service von eta ist echt super.
Am gleichen Tag hatte ich die Antwort berkommen.

Eigentlich ist es ganz einfach!!
Hier die Antwort:
"Die Ressource /user/menu hat den exakt gleichen Aufbau wie das Textmenü am ETAtouch (nur halt für alle Funktionsblöcke); du kannst dann einfach in der XML-Datei zum gewünschten Parameter absteigen und somit hast du dann die notwendige Adresse. "

So habe ich meinen Temperaturwert gefunden.

@Frank
Vielen Dank noch für https://regex101.com/


Titel: Antw:ETA Touch - Rest API
Beitrag von: crazysky am 18 Juli 2019, 07:34:45
Hallo,

weiß zufällig jemand ob und wenn ja, wie man den Ertrag einer Solarthermie-Anlage in der ETA auslesen kann?
Ich habe den ETA Support schon bemüht. Die haben mir freundlicherweiße zwei allgemeine Anleitungen mit der hier im Forum schon erwähnten und bekannten Struktur geschickt. Sie verneinten es nicht, dass das möglich ist. Jedoch nannten sie mir auch nicht den genauen Ort. Und ich finde es nicht.
Vielleicht hat schon ein anderer ETA-User sich damit beschäftigt?

Gruß
Titel: Antw:ETA Touch - Rest API
Beitrag von: Frank_Huber am 18 Juli 2019, 08:29:12
Hallo,

weiß zufällig jemand ob und wenn ja, wie man den Ertrag einer Solarthermie-Anlage in der ETA auslesen kann?
Ich habe den ETA Support schon bemüht. Die haben mir freundlicherweiße zwei allgemeine Anleitungen mit der hier im Forum schon erwähnten und bekannten Struktur geschickt. Sie verneinten es nicht, dass das möglich ist. Jedoch nannten sie mir auch nicht den genauen Ort. Und ich finde es nicht.
Vielleicht hat schon ein anderer ETA-User sich damit beschäftigt?

Gruß

poste mal die manüstruktur die dir die ETA auswirft. Da drin solltest Du deine gewünschten Werte finden.
den passenden httpmod bekommen wir dann auch noch zusammen hin.
Titel: Antw:ETA Touch - Rest API
Beitrag von: Heimweh am 18 Juli 2019, 08:54:34
Ich kann Dir mal meinen Code schicken, kann aber sein dass Du eine andere Menüstruktur hast. Das müsstest Du anpassen:

#
# ---------------------------
# - ETA SOLARERTRAG HEUTE ---
# ---------------------------
#
define ertragheuteEta HTTPMOD http://192.168.178.58:8080/user/var/120/10221/0/0/12350 1800
setuuid ertragheuteEta 5cf64a97-f33f-55ed-2890-06a88eb5a6975e67
attr ertragheuteEta userattr event-min-interval event-on-change-reading reading01Name reading01Regex readingsExpr1 stateFormat verbose
attr ertragheuteEta alias Eta Solar Ertrag heute
attr ertragheuteEta enableControlSet 1
attr ertragheuteEta event-min-interval SEH_Eta:182000
attr ertragheuteEta event-on-change-reading .*
attr ertragheuteEta reading01Name SEH_Eta
attr ertragheuteEta reading01Regex strValue="([\d\,]+)"
attr ertragheuteEta room Eta
attr ertragheuteEta stateFormat {no warnings 'numeric' ;; sprintf("%.1f kW/h",int(ReadingsVal($name,"SEH_Eta",0)))}
attr ertragheuteEta userReadings { my $val = (ReadingsVal("$name", "SEH_Eta",0));; $val =~ s/,/\./g;; return $val;;}\

Und noch der Ertrag von "gestern"

#
#
#
# ---------------------------
# - ETA SOLARERTRAG GESTERN -
# ---------------------------
#
define ertraggesternEta HTTPMOD http://192.168.178.58:8080/user/var/120/10221/0/0/12769 21600
setuuid ertraggesternEta 5cf64a97-f33f-55ed-41f0-30ba515bee3161b6
attr ertraggesternEta userattr reading01Name reading01Regex
attr ertraggesternEta alias Eta Solar Ertrag gestern
attr ertraggesternEta enableControlSet 1
attr ertraggesternEta event-min-interval SEG_Eta:182000
attr ertraggesternEta reading01Name SEG_Eta
attr ertraggesternEta reading01Regex strValue="([\d\,]+)"
attr ertraggesternEta room Eta
attr ertraggesternEta stateFormat {sprintf("%.1f kW/h",ReadingsVal($name,"SEG_Eta",0))}

Titel: Antw:ETA Touch - Rest API
Beitrag von: crazysky am 18 Juli 2019, 09:26:53
ok, ich checke das mal heute abend. httpmod bekomme ich schon selbst hin. ich finde bloß den wert bzw. die url nicht.
In meinem normalen touch menü gibt es den punkt auch nicht. Ist der dort bei dir vorhanden? Dann läge es eventuell an meiner Version von ETA dass das gar nicht so erfasst wird.

vielen Dank
Titel: Antw:ETA Touch - Rest API
Beitrag von: Heimweh am 18 Juli 2019, 10:05:56
In meiner Menüstruktur heisst es dort "Ertrag heute" und "Ertrag gestern". Hast Du ja sicher schon aufgerufen

http://DEINEIP:8080/user/menu/

Das es an der Version liegt, glaube ich weniger. Hast Du denn einen Durchflussmesser installiert in Deinem Solarkreislauf? Ich habe den auch erst nachträglich
eingebaut um den Ertrag messen zu können. Ich habe einen Kollektorfühler, einen Temperaturfühler im Vorlauf, einen im Rücklauf und den besagten Durchflussmesser. Und nach dem ich den eingebaut hatte, musste ich an der Eta noch einstellen wieviel Pulse / Liter mein Durchflussmesser macht und dann ging auch die Ertragsmessung. 
Titel: Antw:ETA Touch - Rest API
Beitrag von: crazysky am 18 Juli 2019, 11:04:35
den habe ich vermutlich nicht. das erklärt alles. was hat der gekostet? :-P
Titel: Antw:ETA Touch - Rest API
Beitrag von: Heimweh am 18 Juli 2019, 11:33:58
den habe ich vermutlich nicht. das erklärt alles. was hat der gekostet? :-P

Der hat damals 110 Euro gekostet. Es handelt sich um einen:

RESOL Volumenmessteil V40-06 - Messgerät mit Kontaktgeber - Durchflussmesser

Aber frag lieber nochmal bei ETA nach bevor Du den jetzt kaufst. Weil die ungefähre Durchflussmenge wird ja meiner Erinnerung auch ohne diesen Durchflussmesser angezeigt oder?
Anhand der Pumpendrehzahl (die ja die ETA vorgibt) und dem eingestellten Glykolgehalt sollte das ja grob möglich sein.

Eta hat mir damals folgendes geschrieben wo ich vor diesem Projekt stand:

Zitat
Über unsere Regelung kann eine Wärmemengenmessung für Solaranlagen realisiert werden.

Hierfür ist ein Durchflussmessung mittels Impulsgeber erforderlich.

Seitens ETA Heiztechnik GmbH kann der Volumenstromgeber Typ: V 40-06 der Fa. Resol (http://www.resol.de/) empfohlen werden!

Dieser ist über den Handel zu beziehen und wird nicht von uns geliefert.

 

Zusätzlich ist eine „Wärmemengenabschätzung“ möglich.

Hier wird der Durchfluss der Solarpumpe bei 100% eingegeben und die jeweilige Durchflussmenge anschließend abgeschätzt.

Zur Temperaturmessung sind dann jeweils Tauchfühler an Vor – und Rücklauf möglichst nahe dem Speicher erforderlich.

Dieses Verfahren ist dann natürlich nicht für die Förderung ausreichend!

 

Zusätzlich finden Sie im Anhang das Schemenheft Solar.

Titel: Antw:ETA Touch - Rest API
Beitrag von: noname41 am 20 August 2019, 09:00:57
Hallo zusammenmmen,

hat schon jemand geschafft den eta kessel per Modbus einzubinden?
Es ist ja nun möglich Raumtemperaturen (ist und soll) per Modbus zu setzen.

LG
Klaus
Titel: Antw:ETA Touch - Rest API
Beitrag von: wusa am 23 April 2020, 08:24:39
Hallo Zusammen,

ich hole mal den etwas in die Tage gekommen Thread wieder raus.

Ich komme leider nicht mehr auf die Restful API bzw. auf den Webserver unter dieser Adresse: http://IP_vom_Kessel:8080/user/menu
Getestet habe ich das ganze mit verschiedenen Browsern. IE, Chrome, Firefox
Bei allen Browsern lädt die Adresse ewig, bis dann die Anzeige kommt, dass die Webseite nicht erreichbar ist.
Das ganze hat schon mal funktioniert, als ich die Anbindung mit einem Raspberry Pi gemacht habe. Hier konnte ich die Links raussuchen, die für mich wichtig waren.
Die 4 Schalter, am Kessel sind eingeschaltet und die Webservices sind auch aktiviert.

Mit dem Raspberry Pi funktioniert über ein Python Skript, die Abfrage auf zum Beispiel die Puffertemperatur, ohne jegliche Probleme.

Da die letzte Zeit öfters Updates für den Kessel gekommen sind, wollte ich mal nachsehen, ob sich mittlerweile an den abzufragenden Werten wieder was getan hat.

Wie könnte ich hier vorgehen, da es am Browser nicht funktioniert?

Danke
Titel: Antw:ETA Touch - Rest API
Beitrag von: Frank_Huber am 23 April 2020, 08:28:43
Ist der Kessel denn online?
Mal auf meineta.at prüfen.

Hat er evtl ne andere IP bekommen?
Mal im Router prüfen.

Der link zum Menü sollte immer gehen.

Gesendet von meinem S68Pro mit Tapatalk

Titel: Antw:ETA Touch - Rest API
Beitrag von: wusa am 23 April 2020, 08:37:43
Der Kessel ist online. Über das Python Skript kommen die Daten alle 15 Min.

Die IP Adresse hat sich nicht geändert, da ich diese fest eingestellt hab und die Abfrage im Python Skript geht auch auf die eingestellt IP Adresse.

Mit welchem Browser funktioniert das bei dir?

Edit:
Im Python Skript ist zum Beispiel dieser Pfad hinterlegt:
http://IP_vom_Kessel/user/var/120/10251/0/0/12242

Mit diesem Eintrag frage ich die Temperatur vom Puffer oben ab.
Das funktioniert im Skript ohne Probleme.
Trage ich aber diese Zeile in den Browser ein, erscheint nichts.
Titel: Antw:ETA Touch - Rest API
Beitrag von: Frank_Huber am 23 April 2020, 09:04:19
Dann würde ich eher darauf tippen dass dein Browser oder Computer ein Problem hat.
Läuft das script auf dem selben Computer?
Hast den Kessel mal neu gestartet?
http://192.168.xxx.xxx:8080/user/menu geht tadellos hier am Android Chrome

Gesendet von meinem S68Pro mit Tapatalk
Titel: Antw:ETA Touch - Rest API
Beitrag von: wusa am 23 April 2020, 09:06:16
Nein das Skript läuft auf einem Raspberry Pi.

Gerade im Moment versuche ich es mit einem anderen PC, darauf zuzugreifen.

Aber mit dem Androiden ist eine gute Idee. Das Probiere ich gleich mal aus.
Titel: Antw:ETA Touch - Rest API
Beitrag von: wusa am 23 April 2020, 09:25:53
So.... auch mit dem Android und Chrome funktioniert es nicht.
Ich habe aber den Fehler gefunden.
Ich kann mich leider nicht auf den Kessel verbinden, wenn ich im WLAN bin. Obwohl das WLAN im selben Netz ist funktioniert es irgendwie bei mir nicht.

Habe einen Laptop bei mir am Kabel angeschlossen und siehe da... Es funktioniert sofort.
Warum das so ist, kann ich leider nicht sagen. Aber jetzt komme ich zumindest da hin, wo ich hin wollte.

Das erklärt vielleicht auch, warum ich mit dem Python Skript auf den Kessel komme. Der Raspberry Pi ist nämlich auch per Kabel angeschlossen.
Titel: Antw:ETA Touch - Rest API
Beitrag von: Shortegg am 22 August 2020, 17:25:42
Hallo zusammen,

ich bin auf der Suche nach einer Lösung um einige Sensoren meiner neuen ETA PC20 zu loggen, um die Heizung samt Solaranlage optimal einstellen zu können.
So bin ich auf FHEM gestoßen und diesen Thread. Habe mir sogleich meinen Raspi samt FHEM neu installiert und Webservices auf der ETA freigeschalten, was auch alles funktioniert.
Leider komme ich nun nicht mehr weiter  :'(
Mein Wunschgedanke wäre einige Werte abzufragen und nach Intervall in eine Datenbank zu schreiben, welche dann über Grafana oder ähnliches (vielleicht gibts da auch was in FHEM) angezeigt werden kann.
Leider kann ich noch nicht wirklich Skripte schreiben und weiß nicht welche Datenbank und welches Anzeigetool hierfür am besten geeignet ist.

Könnte evtl. jemand von Euch eine Anleitung mit den weiteren Schritten und einen Beispiel Code der die Parameter abfragt einstellen?
Das würde mir schon vorerst weiterhelfen.
Danke
Titel: Antw:ETA Touch - Rest API
Beitrag von: Frank_Huber am 22 August 2020, 17:50:07
Hallo zusammen,

ich bin auf der Suche nach einer Lösung um einige Sensoren meiner neuen ETA PC20 zu loggen, um die Heizung samt Solaranlage optimal einstellen zu können.
So bin ich auf FHEM gestoßen und diesen Thread. Habe mir sogleich meinen Raspi samt FHEM neu installiert und Webservices auf der ETA freigeschalten, was auch alles funktioniert.
Leider komme ich nun nicht mehr weiter  :'(
Mein Wunschgedanke wäre einige Werte abzufragen und nach Intervall in eine Datenbank zu schreiben, welche dann über Grafana oder ähnliches (vielleicht gibts da auch was in FHEM) angezeigt werden kann.
Leider kann ich noch nicht wirklich Skripte schreiben und weiß nicht welche Datenbank und welches Anzeigetool hierfür am besten geeignet ist.

Könnte evtl. jemand von Euch eine Anleitung mit den weiteren Schritten und einen Beispiel Code der die Parameter abfragt einstellen?
Das würde mir schon vorerst weiterhelfen.
Danke

Lies dir mal den Thread hier durch, da findest schon recht viel Infos.
Die ETA kann auch Modus, das nutze ich zur Zeit.

Bin heute unterwegs, kann dich gerne ab Montag bißchen einführen in die Einbindung.

Grüße
Frank
Titel: Antw:ETA Touch - Rest API
Beitrag von: Shortegg am 22 August 2020, 19:02:31
Hallo Frank,
diesen Thread habe ich mir mehrmals durchgelesen, leider stehe ich wohl auf dem Schlauch   :-[
Modbus ist eher was zum Steuern oder?
Das würde ich nicht benötigen, nur loggen von vielen Parametern und eine schöne grafische Auswertung.
Das wäre super wenn Du mir vom Schlauch runter helfen könntest  ;D
Titel: Antw:ETA Touch - Rest API
Beitrag von: Frank_Huber am 22 August 2020, 19:43:39
😂😂😂

Ja, aller Anfang ist schwer.
Funktionieren tut beides.

Für die restapi rufst den Baum auf der ETA auf und suchst dir die Elemente die du haben möchtest.

Bei Modbus legst in der Eta sel St fest welche Werte du abrufen willst und legst diese dann mit der vergebenen ID in Fhem an.

Im Grunde funktioniert beides, modbus dürfte aber weniger Systemlast verursachen.
Titel: Antw:ETA Touch - Rest API
Beitrag von: Shortegg am 23 August 2020, 17:59:11
Hmmm, ich denke dass über Modbus nicht alles abgefragt werden kann, oder?

Über Restapi sind halt auch Zählwerte wie z.B. Zähler Zündungen usw. abrufbar, das wäre mir dann lieber  ;D
Titel: Antw:ETA Touch - Rest API
Beitrag von: Frank_Huber am 24 August 2020, 14:58:08
Hmmm, ich denke dass über Modbus nicht alles abgefragt werden kann, oder?

Über Restapi sind halt auch Zählwerte wie z.B. Zähler Zündungen usw. abrufbar, das wäre mir dann lieber  ;D

doch, über Modbus kannst auch alles abfragen.

für die RestAPI legst Du in FHEM für jeden Wert ein HTTPMOD Gerät an. Diese funktionieren eigenständig und jeder Wert wird separat abgerufen.
Vorgehsweise:
- Rufe den Baum deiner ETA auf: http://192.168.xxx.xxx:8080/user/menu
- suche den Wert den Du abfragen willst, hier z.B. die Temperatur "Puffer oben" von meinem Kessel:
<fub uri="/120/10251" name="Puffer">
<object uri="/120/10251/0/0/10990" name="Eingänge">
<object uri="/120/10251/0/11153/0" name="Puffer oben">
<object uri="/120/10251/0/11153/2002" name="Zustand"/>
<object uri="/120/10251/0/11153/2011" name="Sensor Typ"/>
<object uri="/120/10251/0/11153/2049" name="Kalibrierwert"/>
<object uri="/120/10251/0/11153/2054" name="Fixwert"/>
</object>
Uns interessiert hier die Zeile mit "Puffer oben", manchmal muss man aber ein paar ausprobieren um den richtigen zu finden.
--> <object uri="/120/10251/0/11153/0" name="Puffer oben">
Daraus machen wir dann ein:
http://192.168.xx.xxx:8080/user/var/120/10251/0/11153/0und erhalten:
<eta xmlns="http://www.eta.co.at/rest/v1" version="1.0">
<value uri="/user/var/120/10251/0/11153/0" strValue="65" unit="°C" decPlaces="0" scaleFactor="10" advTextOffset="0">654</value>
</eta>
Mein Puffer hat demnach oben gerade 65 Grad Celsius.

in FHEM brauchen wir jetzt ein HTTPMOD Gerät:
define Puffer_oben HTTPMOD http://192.168.xxx.xxx:8080/user/var/120/10251/0/11153/0 300
attr Puffer_oben userattr reading01Name reading01Regex readingsRegex.* stateFormat
attr Puffer_oben enableControlSet 1
attr Puffer_oben reading01Name temperature
attr Puffer_oben reading01Regex strValue="([\d]+)"
attr Puffer_oben stateFormat temperature °C

Und schon erhält FHEM alle 5min den Temperaturwert vom Puffer oben.

Dies kannst dann in der gleichen Art für alle Werte machen die du abrufen willst.
reading01Regex strValue="([\d]+)" musst halt je nachdem anpassen dass er deinen Wert "findet"
Eine gute Hilfe ist hier https://regex101.com/ --> ETA Wert im Browser aufrufen, Seiteninhalt in die regex101 kopieren, den Regex reinkopieren und so lange testen / ändern bis er dein Ergebnis hat.

zu Modbus poste ich separat. wird sonst evtl unübersichtlich.
Bei Modbus sehe ich den Vorteil dass FHEM nur eine Verbindung zum Kessel aufmacht und dann die Werte nacheinender abruft.

Grüße
Frank


Titel: Antw:ETA Touch - Rest API
Beitrag von: Frank_Huber am 24 August 2020, 15:25:24
Die Modbus Einrichtund auf ETA Seite ist hier ganz gut beschrieben:
https://www.loxwiki.eu/display/LOX/ETA+Holzvergaser

Da wir aber FHEM einsetzen und nicht LoxOne hier jetzt mein Code, das sieht wild aus und ist auch eine "Attribut-Schlacht", läuft aber sehr gut.
defmod ETA_PU11_Modbus ModbusAttr 1 60 192.168.xxx.xxx:502 TCP
attr ETA_PU11_Modbus userattr obj-h1002-expr obj-h1002-len obj-h1002-poll obj-h1002-reading obj-h1002-unpack obj-h1004-expr obj-h1004-len obj-h1004-poll obj-h1004-reading obj-h1004-unpack obj-h1006-expr obj-h1006-len obj-h1006-poll obj-h1006-reading obj-h1006-unpack obj-h1008-expr obj-h1008-len obj-h1008-map obj-h1008-poll obj-h1008-reading obj-h1008-unpack obj-h1010-expr obj-h1010-len obj-h1010-poll obj-h1010-reading obj-h1010-unpack obj-h1016-len obj-h1016-map obj-h1016-poll obj-h1016-reading obj-h1016-unpack obj-h1018-len obj-h1018-map obj-h1018-poll obj-h1018-reading obj-h1018-unpack obj-h1020-expr obj-h1020-len obj-h1020-poll obj-h1020-reading obj-h1020-unpack obj-h1022-expr obj-h1022-len obj-h1022-poll obj-h1022-reading obj-h1022-unpack obj-h1024-expr obj-h1024-len obj-h1024-poll obj-h1024-reading obj-h1024-unpack obj-h1026-len obj-h1026-map obj-h1026-poll obj-h1026-reading obj-h1026-unpack obj-h1028-len obj-h1028-map obj-h1028-poll obj-h1028-reading obj-h1028-unpack obj-h1030-expr obj-h1030-len obj-h1030-poll obj-h1030-reading obj-h1030-unpack obj-h1032-expr obj-h1032-len obj-h1032-poll obj-h1032-reading obj-h1032-unpack obj-h1034-len obj-h1034-map obj-h1034-poll obj-h1034-reading obj-h1034-unpack obj-h1036-expr obj-h1036-len obj-h1036-poll obj-h1036-reading obj-h1036-unpack obj-h1038-expr obj-h1038-len obj-h1038-poll obj-h1038-reading obj-h1038-unpack obj-h1040-expr obj-h1040-len obj-h1040-poll obj-h1040-reading obj-h1040-unpack obj-h1042-expr obj-h1042-len obj-h1042-poll obj-h1042-reading obj-h1042-unpack obj-h1044-len obj-h1044-map obj-h1044-poll obj-h1044-reading obj-h1044-unpack obj-h1046-expr obj-h1046-len obj-h1046-poll obj-h1046-reading obj-h1046-unpack obj-h1048-expr obj-h1048-len obj-h1048-poll obj-h1048-reading obj-h1048-unpack obj-h1050-expr obj-h1050-len obj-h1050-poll obj-h1050-reading obj-h1050-unpack obj-h1052-expr obj-h1052-len obj-h1052-poll obj-h1052-reading obj-h1052-unpack
attr ETA_PU11_Modbus DbLogExclude .*
attr ETA_PU11_Modbus group ETA_Modbus
attr ETA_PU11_Modbus obj-h1002-expr $val/10
attr ETA_PU11_Modbus obj-h1002-len 2
attr ETA_PU11_Modbus obj-h1002-poll 1
attr ETA_PU11_Modbus obj-h1002-reading ETA_Puffer_3_oben
attr ETA_PU11_Modbus obj-h1002-unpack N
attr ETA_PU11_Modbus obj-h1004-expr $val/10
attr ETA_PU11_Modbus obj-h1004-len 2
attr ETA_PU11_Modbus obj-h1004-poll 1
attr ETA_PU11_Modbus obj-h1004-reading ETA_Puffer_4_mitte
attr ETA_PU11_Modbus obj-h1004-unpack N
attr ETA_PU11_Modbus obj-h1006-expr $val/10
attr ETA_PU11_Modbus obj-h1006-len 2
attr ETA_PU11_Modbus obj-h1006-poll 1
attr ETA_PU11_Modbus obj-h1006-reading ETA_Puffer_5_unten
attr ETA_PU11_Modbus obj-h1006-unpack N
attr ETA_PU11_Modbus obj-h1008-expr $val/10
attr ETA_PU11_Modbus obj-h1008-len 2
attr ETA_PU11_Modbus obj-h1008-poll 1
attr ETA_PU11_Modbus obj-h1008-reading ETA_Puffer_6_geforderte_Leistung
attr ETA_PU11_Modbus obj-h1008-unpack N
attr ETA_PU11_Modbus obj-h1010-expr $val/10
attr ETA_PU11_Modbus obj-h1010-len 2
attr ETA_PU11_Modbus obj-h1010-poll 1
attr ETA_PU11_Modbus obj-h1010-reading Aussentemperatur
attr ETA_PU11_Modbus obj-h1010-unpack N
attr ETA_PU11_Modbus obj-h1016-len 2
attr ETA_PU11_Modbus obj-h1016-map 4000:Ausgeschaltet, 4001:Bereit, 4002:Geladen, 4003:Voll, 4004:Entaschen, 4005:Position wechseln, 4006:Spülen, 4007:Startvorgang, 4008:Ein, 4009:In Betrieb, 4010:Fördern, 4011:Heizen, 4012:Absenken, 4013:Laden, 4014:Abstellen, 4015:Glutabbrand, 4016:Störung,4017:Verriegelt
attr ETA_PU11_Modbus obj-h1016-poll 1
attr ETA_PU11_Modbus obj-h1016-reading ETA_FBH_1_Status
attr ETA_PU11_Modbus obj-h1016-unpack N
attr ETA_PU11_Modbus obj-h1018-len 2
attr ETA_PU11_Modbus obj-h1018-map 1040:Aus, 1041:Ein, 1042:Verriegelt, 1043:Sicherung defekt, 1044:Keine Klemme zugewiesen, 1045:Keine Antwort des CAN-Knotens
attr ETA_PU11_Modbus obj-h1018-poll 1
attr ETA_PU11_Modbus obj-h1018-reading ETA_FBH_5_Heizpumpe
attr ETA_PU11_Modbus obj-h1018-unpack N
attr ETA_PU11_Modbus obj-h1020-expr $val/10
attr ETA_PU11_Modbus obj-h1020-len 2
attr ETA_PU11_Modbus obj-h1020-poll 1
attr ETA_PU11_Modbus obj-h1020-reading ETA_FBH_3_Heizkurve
attr ETA_PU11_Modbus obj-h1020-unpack N
attr ETA_PU11_Modbus obj-h1022-expr $val/10
attr ETA_PU11_Modbus obj-h1022-len 2
attr ETA_PU11_Modbus obj-h1022-poll 1
attr ETA_PU11_Modbus obj-h1022-reading ETA_FBH_4_Vorlauf
attr ETA_PU11_Modbus obj-h1022-unpack N
attr ETA_PU11_Modbus obj-h1024-expr $val/10
attr ETA_PU11_Modbus obj-h1024-len 2
attr ETA_PU11_Modbus obj-h1024-poll 1
attr ETA_PU11_Modbus obj-h1024-reading ETA_FBH_6_Heizgrenze
attr ETA_PU11_Modbus obj-h1024-unpack N
attr ETA_PU11_Modbus obj-h1026-len 2
attr ETA_PU11_Modbus obj-h1026-map 4050:Urlaubsprogramm ist aktiv, 4051:Erzeuger ist nicht warm genug, 4052:Berechnete Vorlauftemperatur liegt unter dem Mindestwert, 4053:Raumsolltemperatur liegt über der eingestellten Heizgrenze, 4054:Außentemperatur liegt über der eingestellten Heizgrenze, 4055:Warmwasser wird vorrangig geladen, 4056:Raumtemperatur liegt unter der Frostschutzgrenze, 4057:Vorlauftemperatur liegt unter der Frostschutzgrenze, 4058:Restwärme wird abgeführt, 4059:Überschüssige Wärme wird abgeführt, 4060:Estrichausheizprogramm ist aktiv, 4061:Vorlauftemperaturfühler ist defekt, 4062:Externe Freigabe ist nicht aktiv, 4063:Keine Anforderung der Räume vorhanden, 4064:Ventile werden geöffnet, 4065:Mischer wird aufgrund zu hoher Vorlauftemperatur geschlossen, 4066:Handtuchtrockner ist aktiv, 4067:N/A
attr ETA_PU11_Modbus obj-h1026-poll 1
attr ETA_PU11_Modbus obj-h1026-reading ETA_FBH_2_Status_2
attr ETA_PU11_Modbus obj-h1026-unpack N
attr ETA_PU11_Modbus obj-h1028-len 2
attr ETA_PU11_Modbus obj-h1028-map 1040:Aus, 1041:Ein, 1042:Verriegelt, 1043:Sicherung defekt, 1044:Keine Klemme zugewiesen, 1045:Keine Antwort des CAN-Knotens
attr ETA_PU11_Modbus obj-h1028-poll 1
attr ETA_PU11_Modbus obj-h1028-reading ETA_Kaminofen_2_Pumpe
attr ETA_PU11_Modbus obj-h1028-unpack N
attr ETA_PU11_Modbus obj-h1030-expr $val/10
attr ETA_PU11_Modbus obj-h1030-len 2
attr ETA_PU11_Modbus obj-h1030-poll 1
attr ETA_PU11_Modbus obj-h1030-reading ETA_Kaminofen_1_Wassertasche
attr ETA_PU11_Modbus obj-h1030-unpack N
attr ETA_PU11_Modbus obj-h1032-expr $val/100
attr ETA_PU11_Modbus obj-h1032-len 2
attr ETA_PU11_Modbus obj-h1032-poll 1
attr ETA_PU11_Modbus obj-h1032-reading ETA_Kessel_2_Druck
attr ETA_PU11_Modbus obj-h1032-unpack N
attr ETA_PU11_Modbus obj-h1034-len 2
attr ETA_PU11_Modbus obj-h1034-map 4000:Ausgeschaltet, 4001:Bereit, 4002:Geladen, 4003:Voll, 4004:Entaschen, 4005:Position wechseln, 4006:Spülen, 4007:Startvorgang, 4008:Ein, 4009:In Betrieb, 4010:Fördern, 4011:Heizen, 4012:Absenken, 4013:Laden, 4014:Abstellen, 4015:Glutabbrand, 4016:Störung, 4017:Verriegelt
attr ETA_PU11_Modbus obj-h1034-poll 1
attr ETA_PU11_Modbus obj-h1034-reading ETA_Kessel_1_Status
attr ETA_PU11_Modbus obj-h1034-unpack N
attr ETA_PU11_Modbus obj-h1036-expr $val/10
attr ETA_PU11_Modbus obj-h1036-len 2
attr ETA_PU11_Modbus obj-h1036-poll 1
attr ETA_PU11_Modbus obj-h1036-reading ETA_Kessel_3_Vorlauf
attr ETA_PU11_Modbus obj-h1036-unpack N
attr ETA_PU11_Modbus obj-h1038-expr $val/10
attr ETA_PU11_Modbus obj-h1038-len 2
attr ETA_PU11_Modbus obj-h1038-poll 1
attr ETA_PU11_Modbus obj-h1038-reading ETA_Kessel_4_Asche
attr ETA_PU11_Modbus obj-h1038-unpack N
attr ETA_PU11_Modbus obj-h1040-expr $val/10
attr ETA_PU11_Modbus obj-h1040-len 2
attr ETA_PU11_Modbus obj-h1040-poll 1
attr ETA_PU11_Modbus obj-h1040-reading ETA_Kessel_5_Verbrauch_seit_Wartung
attr ETA_PU11_Modbus obj-h1040-unpack N
attr ETA_PU11_Modbus obj-h1042-expr $val/10
attr ETA_PU11_Modbus obj-h1042-len 2
attr ETA_PU11_Modbus obj-h1042-poll 1
attr ETA_PU11_Modbus obj-h1042-reading ETA_Kessel_6_Gesamtverbrauch
attr ETA_PU11_Modbus obj-h1042-unpack N
attr ETA_PU11_Modbus obj-h1044-len 2
attr ETA_PU11_Modbus obj-h1044-map 4000:Ausgeschaltet, 4001:Bereit, 4002:Geladen, 4003:Voll, 4004:Entaschen, 4005:Position wechseln, 4006:Spülen, 4007:Startvorgang, 4008:Ein, 4009:In Betrieb, 4010:Fördern, 4011:Heizen, 4012:Absenken, 4013:Laden, 4014:Abstellen, 4015:Glutabbrand, 4016:Störung
attr ETA_PU11_Modbus obj-h1044-poll 1
attr ETA_PU11_Modbus obj-h1044-reading ETA_Puffer_1_Status
attr ETA_PU11_Modbus obj-h1044-unpack N
attr ETA_PU11_Modbus obj-h1046-expr $val/10
attr ETA_PU11_Modbus obj-h1046-len 2
attr ETA_PU11_Modbus obj-h1046-poll 1
attr ETA_PU11_Modbus obj-h1046-reading ETA_Puffer_2_Zustand
attr ETA_PU11_Modbus obj-h1046-unpack N
attr ETA_PU11_Modbus obj-h1048-expr $val/10
attr ETA_PU11_Modbus obj-h1048-len 2
attr ETA_PU11_Modbus obj-h1048-poll 1
attr ETA_PU11_Modbus obj-h1048-reading ETA_Vorrat_1_Silo
attr ETA_PU11_Modbus obj-h1048-unpack N
attr ETA_PU11_Modbus obj-h1050-expr $val/10
attr ETA_PU11_Modbus obj-h1050-len 2
attr ETA_PU11_Modbus obj-h1050-poll 1
attr ETA_PU11_Modbus obj-h1050-reading ETA_Vorrat_2_Kessel
attr ETA_PU11_Modbus obj-h1050-unpack N
attr ETA_PU11_Modbus obj-h1052-expr $val/10
attr ETA_PU11_Modbus obj-h1052-len 2
attr ETA_PU11_Modbus obj-h1052-poll 1
attr ETA_PU11_Modbus obj-h1052-reading ETA_Warmwasser_Soll
attr ETA_PU11_Modbus obj-h1052-unpack N
attr ETA_PU11_Modbus room Heizung
attr ETA_PU11_Modbus sortUpdate 1
attr ETA_PU11_Modbus verbose 0

setstate ETA_PU11_Modbus opened
setstate ETA_PU11_Modbus 2020-08-24 15:04:54 Aussentemperatur 24.6
setstate ETA_PU11_Modbus 2020-08-24 15:04:54 ETA_FBH_1_Status Ausgeschaltet
setstate ETA_PU11_Modbus 2020-08-24 15:04:55 ETA_FBH_2_Status_2 N/A
setstate ETA_PU11_Modbus 2020-08-24 15:04:54 ETA_FBH_3_Heizkurve 16
setstate ETA_PU11_Modbus 2020-08-24 15:04:55 ETA_FBH_4_Vorlauf 25.7
setstate ETA_PU11_Modbus 2020-08-24 15:04:54 ETA_FBH_5_Heizpumpe Aus
setstate ETA_PU11_Modbus 2020-08-24 15:04:55 ETA_FBH_6_Heizgrenze 15
setstate ETA_PU11_Modbus 2020-08-24 15:04:55 ETA_Kaminofen_1_Wassertasche 24.3
setstate ETA_PU11_Modbus 2020-08-24 15:04:55 ETA_Kaminofen_2_Pumpe Aus
setstate ETA_PU11_Modbus 2020-08-24 15:04:55 ETA_Kessel_1_Status Bereit
setstate ETA_PU11_Modbus 2020-08-24 15:04:55 ETA_Kessel_2_Druck 1.68
setstate ETA_PU11_Modbus 2020-08-24 15:04:55 ETA_Kessel_3_Vorlauf 26.8
setstate ETA_PU11_Modbus 2020-08-24 15:04:56 ETA_Kessel_4_Asche 221.8
setstate ETA_PU11_Modbus 2020-08-24 15:04:56 ETA_Kessel_5_Verbrauch_seit_Wartung 3709.6
setstate ETA_PU11_Modbus 2020-08-24 15:04:56 ETA_Kessel_6_Gesamtverbrauch 9738.3
setstate ETA_PU11_Modbus 2020-08-24 15:04:56 ETA_Puffer_1_Status Geladen
setstate ETA_PU11_Modbus 2020-08-24 15:04:56 ETA_Puffer_2_Zustand 96.7
setstate ETA_PU11_Modbus 2020-08-24 15:04:53 ETA_Puffer_3_oben 65.3
setstate ETA_PU11_Modbus 2020-08-24 15:04:54 ETA_Puffer_4_mitte 58.1
setstate ETA_PU11_Modbus 2020-08-24 15:04:54 ETA_Puffer_5_unten 32.5
setstate ETA_PU11_Modbus 2020-08-24 15:04:54 ETA_Puffer_6_geforderte_Leistung 0
setstate ETA_PU11_Modbus 2020-08-24 15:04:56 ETA_Vorrat_1_Silo 3198.5
setstate ETA_PU11_Modbus 2020-08-24 15:04:56 ETA_Vorrat_2_Kessel 30
setstate ETA_PU11_Modbus 2020-08-24 15:04:56 ETA_Warmwasser_Soll 40
setstate ETA_PU11_Modbus 2020-08-24 15:05:26 state opened

Hier wieder als Erklärung den Teil von Puffer_oben"
attr ETA_PU11_Modbus userattr obj-h1002-expr obj-h1002-len obj-h1002-poll obj-h1002-reading obj-h1002-unpackHier drin werden für jede Modbus "Adresse" 5 Attribute angelegt

attr ETA_PU11_Modbus obj-h1002-expr $val/10
attr ETA_PU11_Modbus obj-h1002-len 2
attr ETA_PU11_Modbus obj-h1002-poll 1
attr ETA_PU11_Modbus obj-h1002-reading ETA_Puffer_3_oben
attr ETA_PU11_Modbus obj-h1002-unpack N
1. Der Wert kommt mit Kommastelle, aber ohne Komma, wir müssen den Wert also durch 10 teilen"
2. Länge "2", ist Standart.
3. Wert abrufen=1, Wenn der Wert nur gesetzt werden soll ohne Abruf = 0
4. Name des Readings
5. Entpacken Ja/Nein. Wir können den Wert direkt verwenden, also "N"


Manche Werte liefern einen Zahlencode anstatt des Textes zurück, diese kann man mit einem weiteren Attribut umschlüsseln:
attr ETA_PU11_Modbus obj-h1034-len 2
attr ETA_PU11_Modbus obj-h1034-map 4000:Ausgeschaltet, 4001:Bereit, 4002:Geladen, 4003:Voll, 4004:Entaschen, 4005:Position wechseln, 4006:Spülen, 4007:Startvorgang, 4008:Ein, 4009:In Betrieb, 4010:Fördern, 4011:Heizen, 4012:Absenken, 4013:Laden, 4014:Abstellen, 4015:Glutabbrand, 4016:Störung, 4017:Verriegelt
attr ETA_PU11_Modbus obj-h1034-poll 1
attr ETA_PU11_Modbus obj-h1034-reading ETA_Kessel_1_Status
attr ETA_PU11_Modbus obj-h1034-unpack N
Die entsprechende Liste zeigt der Kessel im Menü. ich hänge mal noch Bilder an.

Hoffe das hilft, wenn noch fragen sind musst sie stellen. ;-)

Was ich mit der FHEM Anbindung anstelle:
- Logging.
- Warmwasserzirkulation nur wenn jemand zuhause.
- An Feiertagen / Urlaub Heizzeiten überschreiben.
- Warmwassertemperatur nach Bedarf ändern.
- "Not-Anschalten aller Heizkreise" Bevor am Kaminofen die Thermische Ablaufsicherung anschlägt schalte ich Heizkreise an um die Wärme abzunehmen.
Das kam bis jetzt aber noch nicht vor. der Kaminofen läd auch nur mit bis zu 6 KW.

Zusätzlich zu den Werten der ETA habe ich noch einige DS18B20 Thermometer installiert.
Am Puffer noch 3 zusätzliche, Heizungsrücklauf je Etage, Kaminofen Vorlauf und Rücklauf jeweils vor und nach der Rücklaufanhebung)

Titel: Antw:ETA Touch - Rest API
Beitrag von: rspecht am 08 September 2020, 12:55:25
Hallo Zusammen,

ich hab nun dank eurer Hilfe meine ETA PU15 in FHEM eingebunden.
Anbei noch ein LibreCalc Sheet um die FHEM Befehle zu erzeugen - vllt. hilft es dem einen oder anderen.

Im oberen Teil einfach die Parameter in Tabellenform anpassen.
In Zeile 28 dann die Zeile eintragen welche generiert werden soll. IP noch anpassen und dann die Befehle von Zeile 32...49 in FHEM kopieren.
Titel: Antw:ETA Touch - Rest API
Beitrag von: hugo am 08 Oktober 2020, 21:55:39
Hallo Frank_huber,
ich habe jetzt einen PU15 und versuche mich mit Modbus. Die ersten Werte konnte ich auslesen, aber z.B. Heizkreispumpe bekomme ich keine Rückgabe.
Hier meine Definition:
defmod ETA_PU15_Modbus ModbusAttr 1 60 192.168.xxx.xxx:502 TCP
attr ETA_PU15_Modbus userattr obj-h1006-expr obj-h1006-len obj-h1006-poll obj-h1006-reading obj-h1006-unpack obj-h1008-expr obj-h1008-len obj-h1008-map obj-h1008-poll obj-h1008-reading obj-h1008-unpack obj-h1010-expr obj-h1010-len obj-h1010-poll obj-h1010-reading obj-h1010-unpack obj-h1012-expr obj-h1012-len obj-h1012-poll obj-h1012-reading obj-h1012-unpack obj-h1014-map obj-h1014-len obj-h1014-poll obj-h1014-reading obj-h1014-unpack obj-h1016-len obj-h1016-map obj-h1016-poll obj-h1016-reading obj-h1016-unpack
attr ETA_PU15_Modbus obj-h1006-expr $val/10
attr ETA_PU15_Modbus obj-h1006-len 2
attr ETA_PU15_Modbus obj-h1006-poll 1
attr ETA_PU15_Modbus obj-h1006-reading ETA_Puffer_oben
attr ETA_PU15_Modbus obj-h1006-unpack N
attr ETA_PU15_Modbus obj-h1008-expr $val/10
attr ETA_PU15_Modbus obj-h1008-len 2
attr ETA_PU15_Modbus obj-h1008-poll 1
attr ETA_PU15_Modbus obj-h1008-reading ETA_Puffer_Warmwasser
attr ETA_PU15_Modbus obj-h1008-unpack N
attr ETA_PU15_Modbus obj-h1010-expr $val/10
attr ETA_PU15_Modbus obj-h1010-len 2
attr ETA_PU15_Modbus obj-h1010-poll 1
attr ETA_PU15_Modbus obj-h1010-reading ETA_Puffer_Mitte
attr ETA_PU15_Modbus obj-h1010-unpack N
attr ETA_PU15_Modbus obj-h1012-expr $val/10
attr ETA_PU15_Modbus obj-h1012-len 2
attr ETA_PU15_Modbus obj-h1012-poll 1
attr ETA_PU15_Modbus obj-h1012-reading ETA_Puffer_Unten
attr ETA_PU15_Modbus obj-h1012-unpack N
attr ETA_PU15_Modbus obj-h1014-map 1802:Aus, 1803:Ein
attr ETA_PU15_Modbus obj-h1014-len 2
attr ETA_PU15_Modbus obj-h1014-poll 1
attr ETA_PU15_Modbus obj-h1014-reading ETA_Warmwasser_sofort_laden
attr ETA_PU15_Modbus obj-h1014-unpack N
attr ETA_PU15_Modbus obj-h1016-map 1040:Aus, 1041:Ein, 1042:Verriegelt, 1043:Sicherung defekt, 1044:Keine Klemme zugewiesen
attr ETA_PU15_Modbus obj-h1016-len 2
attr ETA_PU15_Modbus obj-h1016-poll 1
attr ETA_PU15_Modbus obj-h1016-reading ETA_Heizkreispumpe_FBH
attr ETA_PU15_Modbus obj-h1016-unpack N
Habe ich einen Denkfehler? Wie läuft das mit schalten von Devices?

Gruß Josef
Titel: Antw:ETA Touch - Rest API
Beitrag von: hugo am 09 Oktober 2020, 00:07:41
Jetzt werden die Schaltzustände angezeigt.
Wie funktioniert das mit dem Schalten?
Titel: Antw:ETA Touch - Rest API
Beitrag von: Frank_Huber am 09 Oktober 2020, 08:44:42
Kommen jetzt also alle Werte?
Woran lag es denn? deine Definition sah auch an sich richtig aus.

mit Schalten habe ich mich noch nicht versucht. sollte aber eigentlich auch kein Hexenwerk sein.
Der CommandRef nach benötigt man "nur" ein zusätzliches Attribut bei dem Wert den man schreiben will.

Zitat
Set-Commands for Fhem as Modbus master operation are created based on the attributes defining the data objects.
Every object for which an attribute like obj-xy-set is set to 1 will create a valid set option.

EDIT:
eben getestet, Das set Attribut zum Warmwasser Objekt hinzugefügt und schon kann ich mit set das Warmwasser ändern.
Achtung, Faktor 10 bedenken, also 500 für 50 Grad.
Titel: Antw:ETA Touch - Rest API
Beitrag von: Farmer am 30 September 2021, 15:48:33
Hallo,

ich befasse mich gerade erst mit dem Thema Modbus und habe dazu gleich mal noch eine Frage.
Das Auslesen der Werte klappt soweit, zumindest erst mal Versuchsweise für zweit Temperaturen. Aber wie bekomme ich es hin, dass die Temperaturen welche unter Group angezeigt werden auch den Temperaturwerte anzeigen?
Titel: Antw:ETA Touch - Rest API
Beitrag von: hugo am 30 September 2021, 17:22:31
Hast du die Fhem Referenz ModbusAttr gelesen. Ich habe die Attribute zu den einzelnen Werte gesetzt und anschließend wurden sie angezeigt.
Titel: Antw:ETA Touch - Rest API
Beitrag von: Frank_Huber am 30 September 2021, 17:44:49
Das wird ne Attribut Schlacht, aber es geht alles in einem Gerät.
Ich kann später meine Definition posten, bin grad nur am Handy.
Titel: Antw:ETA Touch - Rest API
Beitrag von: Frank_Huber am 30 September 2021, 19:39:54
Ich kann später meine Definition posten, bin grad nur am Handy.
defmod ETA_PU11_Modbus ModbusAttr 1 89 192.168.254.254:502 TCP
attr ETA_PU11_Modbus obj-h1002-expr $val/10
attr ETA_PU11_Modbus obj-h1002-len 2
attr ETA_PU11_Modbus obj-h1002-poll 1
attr ETA_PU11_Modbus obj-h1002-reading ETA_Puffer_3_oben
attr ETA_PU11_Modbus obj-h1002-unpack N
attr ETA_PU11_Modbus obj-h1004-expr $val/10
attr ETA_PU11_Modbus obj-h1004-len 2
attr ETA_PU11_Modbus obj-h1004-poll 1
attr ETA_PU11_Modbus obj-h1004-reading ETA_Puffer_4_mitte
attr ETA_PU11_Modbus obj-h1004-unpack N
attr ETA_PU11_Modbus obj-h1006-expr $val/10
attr ETA_PU11_Modbus obj-h1006-len 2
attr ETA_PU11_Modbus obj-h1006-poll 1
attr ETA_PU11_Modbus obj-h1006-reading ETA_Puffer_5_unten
attr ETA_PU11_Modbus obj-h1006-unpack N
attr ETA_PU11_Modbus obj-h1008-expr $val/10
attr ETA_PU11_Modbus obj-h1008-len 2
attr ETA_PU11_Modbus obj-h1008-poll 1
attr ETA_PU11_Modbus obj-h1008-reading ETA_Puffer_6_geforderte_Leistung
attr ETA_PU11_Modbus obj-h1008-unpack N
attr ETA_PU11_Modbus obj-h1010-expr $val/10
attr ETA_PU11_Modbus obj-h1010-len 2
attr ETA_PU11_Modbus obj-h1010-poll 1
attr ETA_PU11_Modbus obj-h1010-reading Aussentemperatur
attr ETA_PU11_Modbus obj-h1010-unpack l>
attr ETA_PU11_Modbus obj-h1012-expr $val/10
attr ETA_PU11_Modbus obj-h1012-len 2
attr ETA_PU11_Modbus obj-h1012-poll 1
attr ETA_PU11_Modbus obj-h1012-reading ETA_Kessel_7_Temperatur
attr ETA_PU11_Modbus obj-h1012-unpack N
attr ETA_PU11_Modbus obj-h1014-expr $val/10
attr ETA_PU11_Modbus obj-h1014-len 2
attr ETA_PU11_Modbus obj-h1014-poll 1
attr ETA_PU11_Modbus obj-h1014-reading ETA_Kessel_8_Temperatur_unten
attr ETA_PU11_Modbus obj-h1014-unpack N
attr ETA_PU11_Modbus obj-h1016-len 2
attr ETA_PU11_Modbus obj-h1016-map 4000:Ausgeschaltet, 4001:Bereit, 4002:Geladen, 4003:Voll, 4004:Entaschen, 4005:Position wechseln, 4006:Spülen, 4007:Startvorgang, 4008:Ein, 4009:In Betrieb, 4010:Fördern, 4011:Heizen, 4012:Absenken, 4013:Laden, 4014:Abstellen, 4015:Glutabbrand, 4016:Störung,4017:Verriegelt
attr ETA_PU11_Modbus obj-h1016-poll 1
attr ETA_PU11_Modbus obj-h1016-reading ETA_FBH_1_Status
attr ETA_PU11_Modbus obj-h1016-unpack N
attr ETA_PU11_Modbus obj-h1018-len 2
attr ETA_PU11_Modbus obj-h1018-map 1040:off, 1041:on, 1042:Verriegelt, 1043:Sicherung defekt, 1044:Keine Klemme zugewiesen, 1045:Keine Antwort des CAN-Knotens
attr ETA_PU11_Modbus obj-h1018-poll 1
attr ETA_PU11_Modbus obj-h1018-reading ETA_FBH_5_Heizpumpe
attr ETA_PU11_Modbus obj-h1018-unpack N
attr ETA_PU11_Modbus obj-h1020-expr $val/10
attr ETA_PU11_Modbus obj-h1020-len 2
attr ETA_PU11_Modbus obj-h1020-poll 1
attr ETA_PU11_Modbus obj-h1020-reading ETA_FBH_3_Heizkurve
attr ETA_PU11_Modbus obj-h1020-unpack N
attr ETA_PU11_Modbus obj-h1022-expr $val/10
attr ETA_PU11_Modbus obj-h1022-len 2
attr ETA_PU11_Modbus obj-h1022-poll 1
attr ETA_PU11_Modbus obj-h1022-reading ETA_FBH_4_Vorlauf
attr ETA_PU11_Modbus obj-h1022-unpack N
attr ETA_PU11_Modbus obj-h1024-expr $val/10
attr ETA_PU11_Modbus obj-h1024-len 2
attr ETA_PU11_Modbus obj-h1024-poll 1
attr ETA_PU11_Modbus obj-h1024-reading ETA_FBH_6_Heizgrenze
attr ETA_PU11_Modbus obj-h1024-unpack N
attr ETA_PU11_Modbus obj-h1026-len 2
attr ETA_PU11_Modbus obj-h1026-map 4050:Urlaubsprogramm ist aktiv, 4051:Erzeuger ist nicht warm genug, 4052:Berechnete Vorlauftemperatur liegt unter dem Mindestwert, 4053:Raumsolltemperatur liegt über der eingestellten Heizgrenze, 4054:Außentemperatur liegt über der eingestellten Heizgrenze, 4055:Warmwasser wird vorrangig geladen, 4056:Raumtemperatur liegt unter der Frostschutzgrenze, 4057:Vorlauftemperatur liegt unter der Frostschutzgrenze, 4058:Restwärme wird abgeführt, 4059:Überschüssige Wärme wird abgeführt, 4060:Estrichausheizprogramm ist aktiv, 4061:Vorlauftemperaturfühler ist defekt, 4062:Externe Freigabe ist nicht aktiv, 4063:Keine Anforderung der Räume vorhanden, 4064:Ventile werden geöffnet, 4065:Mischer wird aufgrund zu hoher Vorlauftemperatur geschlossen, 4066:Handtuchtrockner ist aktiv, 4067:N/A
attr ETA_PU11_Modbus obj-h1026-poll 1
attr ETA_PU11_Modbus obj-h1026-reading ETA_FBH_2_Status_2
attr ETA_PU11_Modbus obj-h1026-unpack N
attr ETA_PU11_Modbus obj-h1028-len 2
attr ETA_PU11_Modbus obj-h1028-map 1040:off, 1041:on, 1042:Verriegelt, 1043:Sicherung defekt, 1044:Keine Klemme zugewiesen, 1045:Keine Antwort des CAN-Knotens
attr ETA_PU11_Modbus obj-h1028-poll 1
attr ETA_PU11_Modbus obj-h1028-reading ETA_Kaminofen_2_Pumpe
attr ETA_PU11_Modbus obj-h1028-unpack N
attr ETA_PU11_Modbus obj-h1030-expr $val/10
attr ETA_PU11_Modbus obj-h1030-len 2
attr ETA_PU11_Modbus obj-h1030-poll 1
attr ETA_PU11_Modbus obj-h1030-reading ETA_Kaminofen_1_Wassertasche
attr ETA_PU11_Modbus obj-h1030-unpack N
attr ETA_PU11_Modbus obj-h1032-expr $val/100
attr ETA_PU11_Modbus obj-h1032-len 2
attr ETA_PU11_Modbus obj-h1032-poll 1
attr ETA_PU11_Modbus obj-h1032-reading ETA_Kessel_2_Druck
attr ETA_PU11_Modbus obj-h1032-unpack N
attr ETA_PU11_Modbus obj-h1034-len 2
attr ETA_PU11_Modbus obj-h1034-map 4000:Ausgeschaltet, 4001:Bereit, 4002:Geladen, 4003:Voll, 4004:Entaschen, 4005:Position wechseln, 4006:Spülen, 4007:Startvorgang, 4008:Ein, 4009:In Betrieb, 4010:Fördern, 4011:Heizen, 4012:Absenken, 4013:Laden, 4014:Abstellen, 4015:Glutabbrand, 4016:Störung, 4017:Verriegelt
attr ETA_PU11_Modbus obj-h1034-poll 1
attr ETA_PU11_Modbus obj-h1034-reading ETA_Kessel_1_Status
attr ETA_PU11_Modbus obj-h1034-unpack N
attr ETA_PU11_Modbus obj-h1036-expr $val/10
attr ETA_PU11_Modbus obj-h1036-len 2
attr ETA_PU11_Modbus obj-h1036-poll 1
attr ETA_PU11_Modbus obj-h1036-reading ETA_Kessel_3_Vorlauf
attr ETA_PU11_Modbus obj-h1036-unpack N
attr ETA_PU11_Modbus obj-h1038-expr $val/10
attr ETA_PU11_Modbus obj-h1038-len 2
attr ETA_PU11_Modbus obj-h1038-poll 1
attr ETA_PU11_Modbus obj-h1038-reading ETA_Kessel_4_Asche
attr ETA_PU11_Modbus obj-h1038-unpack N
attr ETA_PU11_Modbus obj-h1040-expr $val/10
attr ETA_PU11_Modbus obj-h1040-len 2
attr ETA_PU11_Modbus obj-h1040-poll 1
attr ETA_PU11_Modbus obj-h1040-reading ETA_Kessel_5_Verbrauch_seit_Wartung
attr ETA_PU11_Modbus obj-h1040-unpack N
attr ETA_PU11_Modbus obj-h1042-expr $val/10
attr ETA_PU11_Modbus obj-h1042-len 2
attr ETA_PU11_Modbus obj-h1042-poll 1
attr ETA_PU11_Modbus obj-h1042-reading ETA_Kessel_6_Gesamtverbrauch
attr ETA_PU11_Modbus obj-h1042-unpack N
attr ETA_PU11_Modbus obj-h1044-len 2
attr ETA_PU11_Modbus obj-h1044-map 4000:Ausgeschaltet, 4001:Bereit, 4002:Geladen, 4003:Voll, 4004:Entaschen, 4005:Position wechseln, 4006:Spülen, 4007:Startvorgang, 4008:Ein, 4009:In Betrieb, 4010:Fördern, 4011:Heizen, 4012:Absenken, 4013:Laden, 4014:Abstellen, 4015:Glutabbrand, 4016:Störung
attr ETA_PU11_Modbus obj-h1044-poll 1
attr ETA_PU11_Modbus obj-h1044-reading ETA_Puffer_1_Status
attr ETA_PU11_Modbus obj-h1044-unpack N
attr ETA_PU11_Modbus obj-h1046-expr $val/10
attr ETA_PU11_Modbus obj-h1046-len 2
attr ETA_PU11_Modbus obj-h1046-poll 1
attr ETA_PU11_Modbus obj-h1046-reading ETA_Puffer_2_Zustand
attr ETA_PU11_Modbus obj-h1046-unpack N
attr ETA_PU11_Modbus obj-h1048-expr $val/10
attr ETA_PU11_Modbus obj-h1048-len 2
attr ETA_PU11_Modbus obj-h1048-poll 1
attr ETA_PU11_Modbus obj-h1048-reading ETA_Vorrat_1_Silo
attr ETA_PU11_Modbus obj-h1048-unpack N
attr ETA_PU11_Modbus obj-h1050-expr $val/10
attr ETA_PU11_Modbus obj-h1050-len 2
attr ETA_PU11_Modbus obj-h1050-poll 1
attr ETA_PU11_Modbus obj-h1050-reading ETA_Vorrat_2_Kessel
attr ETA_PU11_Modbus obj-h1050-unpack N
attr ETA_PU11_Modbus obj-h1052-expr $val/10
attr ETA_PU11_Modbus obj-h1052-len 2
attr ETA_PU11_Modbus obj-h1052-poll 1
attr ETA_PU11_Modbus obj-h1052-reading ETA_Warmwasser_Soll
attr ETA_PU11_Modbus obj-h1052-set 1
attr ETA_PU11_Modbus obj-h1052-unpack N
attr ETA_PU11_Modbus obj-h1054-expr $val/10
attr ETA_PU11_Modbus obj-h1054-len 2
attr ETA_PU11_Modbus obj-h1054-poll 1
attr ETA_PU11_Modbus obj-h1054-reading ETA_Puffer_oben_soll
attr ETA_PU11_Modbus obj-h1054-unpack N
attr ETA_PU11_Modbus obj-h1056-len 2
attr ETA_PU11_Modbus obj-h1056-map 1802:off, 1803:on
attr ETA_PU11_Modbus obj-h1056-poll 1
attr ETA_PU11_Modbus obj-h1056-reading ETA_FBH_Taste_Heizen
attr ETA_PU11_Modbus obj-h1056-set 1
attr ETA_PU11_Modbus obj-h1056-unpack N
attr ETA_PU11_Modbus obj-h1058-len 2
attr ETA_PU11_Modbus obj-h1058-map 1802:off, 1803:on
attr ETA_PU11_Modbus obj-h1058-poll 1
attr ETA_PU11_Modbus obj-h1058-reading ETA_FBH_Taste_Automatik
attr ETA_PU11_Modbus obj-h1058-set 1
attr ETA_PU11_Modbus obj-h1058-unpack N
attr ETA_PU11_Modbus obj-h1060-len 2
attr ETA_PU11_Modbus obj-h1060-map 1802:off, 1803:on
attr ETA_PU11_Modbus obj-h1060-poll 1
attr ETA_PU11_Modbus obj-h1060-reading ETA_FBH_Taste_Absenken
attr ETA_PU11_Modbus obj-h1060-set 1
attr ETA_PU11_Modbus obj-h1060-unpack N
attr ETA_PU11_Modbus sortUpdate 1
Titel: Antw:ETA Touch - Rest API
Beitrag von: Frank_Huber am 01 Oktober 2021, 08:03:07
Moin Moin,

Oder kann es sein dass wir dich falsch verstanden haben und Du von HTTPMOD Geräten sprichst?
Dann wäre das Attributr "stateformat" dein Weg um die Werte im Raum anzuzeigen.

Grüße
Titel: Antw:ETA Touch - Rest API
Beitrag von: Farmer am 01 Oktober 2021, 09:05:13
Moin,

ich hatte schon vor die Werte über Modbus zu lesen. Grundsätzlich funktioniert dies auch, wie von dir beschrieben. Ich hatte gehofft, dass es möglich ist, die Werte im Raum/Gruppe, wie es bei HTTPMOD Geräten möglich, anzuzeigen. Leider wird da, nach meinen Verständnis, nur der Status des Modbus (opened) angezeigt.

Gruß
Titel: Antw:ETA Touch - Rest API
Beitrag von: Frank_Huber am 01 Oktober 2021, 09:09:29
ich hatte schon vor die Werte über Modbus zu lesen. Grundsätzlich funktioniert dies auch, wie von dir beschrieben. Ich hatte gehofft, dass es möglich ist, die Werte im Raum/Gruppe, wie es bei HTTPMOD Geräten möglich, anzuzeigen. Leider wird da, nach meinen Verständnis, nur der Status des Modbus (opened) angezeigt.

Attribut stateformat. ;-)

Das ist der Weg in jedem Gerät.
Titel: Antw:ETA Touch - Rest API
Beitrag von: Farmer am 01 Oktober 2021, 12:08:05
grundsätzlich funktionierte es mit dem Attribut "stateformat". Leider wechselt die Anzeige trotzdem zwischen dem Temp.-Wert und "opened" und das unregelmäßig über die Verschiedenen Messwerte.
Hab ich da noch irgendwo einen Fehler oder ist das nicht anderes möglich?

Titel: Antw:ETA Touch - Rest API
Beitrag von: Farmer am 29 November 2021, 00:55:34
Hallo Frank_Huber,

du hast in deiner Modbuskonfig auch die Ausentemp mit aufgeführt.

attr ETA_PU11_Modbus obj-h1010-reading Aussentemperatur

Ich erhalte bei Temperaturen < 0°C leider keine korrrekten Werte. Wreden bei dir diese negativen Werte richtig angezeigt? Welche Einstellung ist dafür notwendig?

Gruß
Titel: Antw:ETA Touch - Rest API
Beitrag von: Frank_Huber am 29 November 2021, 07:20:27
Ich erhalte bei Temperaturen < 0°C leider keine korrrekten Werte. Wreden bei dir diese negativen Werte richtig angezeigt? Welche Einstellung ist dafür notwendig?

Im Attribut unpack hab ich l> drin.
Titel: Antw:ETA Touch - Rest API
Beitrag von: Farmer am 29 November 2021, 10:15:37
Leider bekomme ich damit auch keine korrekten Werte.
etamod Außentemp: 429496729.5 bei -0.1°C. Wenn ich davon aus gehe, dass der Wert ein i> sein soll, groß geschrieben??

Noch eine Frage am Rande. Git es eine Möglichkeit, aus den Readings Werte welche nicht mehr aktualisiert werden, zu entfernen?

Gruß
Titel: Antw:ETA Touch - Rest API
Beitrag von: Frank_Huber am 29 November 2021, 11:41:05
wir hatten das hier ium Forum vor ner Weile. Ich dachte das wäre die Lösung gewesen.
Ich hab die Außentemperatur nur informativ drin und wir haben auch noch keinen Frost.
Mag sein dass ich die Lösung damals bei mir gar nicht eingebaut habe.

Aus der C-Ref:
Zitat
obj-[cdih][1-9][0-9]*-unpack
defines the pack / unpack code to convert data types.
In master mode it converts the raw data string read from the external slave device to a reading or to convert from a reading to a raw format when a write request is sent to the external slave device.
In slave mode it converts the value of a reading in Fhem to a raw format that can be sent as a response to an external Modbus master or it converts the raw data string read from the external master device to a reading when the master is using a write function code and writing has been allowed.
For an unsigned integer in big endian format this would be "n",
for a signed 16 bit integer in big endian format this would be "s>", in little endian format it would be "s<"
and for a 32 bit big endian float value this would be e.g. "f>". (see the perl documentation of the pack function for more codes and details).
Please note that you also have to set a -len attribute (for this object or for the device) if you specify an unpack code that consumes data from more than one register.
For a 32 bit float e.g. len should be 2.
versuch doch mal die gennannten Varianten "n", "s<", "s> und "f>" durch. Ich schau parallel mal das sich den alten Thread wieder finde.

EDIT:
gemäßhttps://forum.fhem.de/index.php/topic,75638.msg1120590.html#msg1120590 müsste "l>" funktionieren
Titel: Antw:ETA Touch - Rest API
Beitrag von: Farmer am 29 November 2021, 21:53:47
Es hat dann doch mit l> funktioniert. Warum es nicht gleich beim ersten mal geklappt hat, kann ich auch nicht sagen.
Evtl. hat der restart gefehlt.

Vielen Dank für die Info.
Hast Du evtl. noch eine Info zum zweiten Punkt? Löschen von Einträgen aus den Readings welche nicht mehr aktuallisiert und benötigt werden.

Gruß

 
Titel: Antw:ETA Touch - Rest API
Beitrag von: Frank_Huber am 29 November 2021, 21:55:50
Oh, sorry. Das hab ich überlesen.
Das solltest Du mit "deletereading gerätename readingname" hinbekommen.