OZW672 Anbindung gibt eine Fehlermeldung

Begonnen von pacific, 19 Dezember 2016, 15:25:49

Vorheriges Thema - Nächstes Thema

pacific

Hallo,
ich habe seit kurzem eine OZW672 im Einsatz. Der Zugriff über Web auf den Siemensserver funktioniert einwandfrei.
Jetzt wollte ich diesen auch in mein fhem integrieren um evt. bei kälteren Außentemperaturen zu reagieren und die Heizung steuern.

Folgende Einträge habe ich in der fhem.cfg

###### OZW ######

define ozw672 HTTPMOD https://192.168.115.50/api/auth/login.json?user=Test&pwd=Test 300
attr ozw672 userattr get1Name get1Poll:0,1 get1PollDelay get1PollDelay:0,1 get1URL get2Name get2Poll:0,1 get2PollDelay get2PollDelay:0,1 get2URL get3Name get3Poll:0,1 get3URL get4Name get4Poll:0,1 get4URL get5Name get5Poll:0,1 get5URL get6Name get6Poll:0,1 get6URL get7Name get7Poll:0,1 get7PollDelay get7PollDelay:0,1 get7URL get8Name get8Poll:0,1 get8URL sid1IDRegex sid1URL
attr ozw672 event-on-change-reading anzahlStartsBrenner,statusKessel,tempAussen,tempAussenGemischt,tempKesselRuecklauf,tempKesselRuecklaufSoll,tempKesselSoll,tempTWW
attr ozw672 get1Name tempAussen
attr ozw672 get1Poll 1
attr ozw672 get1PollDelay 1800
attr ozw672 get1URL https://192.168.115.50/api/menutree/read_datapoint.json?SessionId=$sid&Id=1960
attr ozw672 get2Name tempAussenGemischt
attr ozw672 get2Poll 1
attr ozw672 get2PollDelay 1800
attr ozw672 get2URL https://192.168.115.50/api/menutree/read_datapoint.json?SessionId=$sid&Id=1964
attr ozw672 get3Name tempTWW
attr ozw672 get3Poll 1
attr ozw672 get3URL https://192.168.115.50/api/menutree/read_datapoint.json?SessionId=$sid&Id=1996
attr ozw672 get4Name tempKesselSoll
attr ozw672 get4Poll 1
attr ozw672 get4URL https://192.168.115.50/api/menutree/read_datapoint.json?SessionId=$sid&Id=1910
attr ozw672 get5Name tempKesselRuecklauf
attr ozw672 get5Poll 1
attr ozw672 get5URL https://192.168.115.50/api/menutree/read_datapoint.json?SessionId=$sid&Id=1915
attr ozw672 get6Name tempKesselRuecklaufSoll
attr ozw672 get6Poll 1
attr ozw672 get6URL https://192.168.115.50/api/menutree/read_datapoint.json?SessionId=$sid&Id=1916
attr ozw672 get7Name anzahlStartsBrenner
attr ozw672 get7Poll 1
attr ozw672 get7PollDelay 1800
attr ozw672 get7URL https://192.168.115.50/api/menutree/read_datapoint.json?SessionId=$sid&Id=1927
attr ozw672 get8Name statusKessel
attr ozw672 get8Poll 1
attr ozw672 get8URL https://192.168.115.50/api/menutree/read_datapoint.json?SessionId=$sid&Id=1898
attr ozw672 reAuthRegex .*session not valid.*
attr ozw672 room OZW
attr ozw672 sid1IDRegex .*"(.*-.*-.*-[0-9a-z]*).*
attr ozw672 sid1URL https://192.168.115.50/api/auth/login.json?user=Test&pwd=Test


#attr ozw672 get8Regex Value": "([a-zA-Zü ]*)"
#attr ozw672 get8OMap Aus:0, Nachlauf aktiv:5, Freigegeben für TWW:10, #Freigegeben für HK:20, In Teillastbetrieb für TWW:40, In Teillastbetrieb für #HK:50, In Betrieb für Trinkwasser:90, In Betrieb für Heizkreis:100

#attr ozw672 getRegex Value": "[ ]*([-.0-9]*)"


als Ergebnis erhalte ich folgendes:

Internals:
   BUSY       0
   CHANGED
   DEF        https://192.168.115.50/api/auth/login.json?user=test&pwd=Test 300
   Interval   300
   LASTSEND   1482157306.51668
   LastAuthTry 2016-12-19 15:21:23
   MainURL    https://192.168.115.50/api/auth/login.json?user=Test&pwd=Test
   ModuleVersion 3.3.5 - 29.9.2016
   NAME       ozw672
   NR         40
   STATE      ???
   TRIGGERTIME 1482157579.65535
   TRIGGERTIME_FMT 2016-12-19 15:26:19
   TYPE       HTTPMOD
   addr       https://192.168.115.50:443
   buf        HTTP/1.0 200 OK

Content-Type: application/json;charset=utf-8

Expires: 0

Cache-Control: must-revalidate, max-age=0, proxy-revalidate, s-maxage=0, post-check=0, pre-check=0

Content-Length: 131

Connection: close

Date: Mon, 19 Dec 2016 14:21:08 GMT

Server: Siemens Switzerland Ltd.



{
   "Data":
      {
      
      },
       "Result":
      {
      "Success": "false",
      "Error": {
         "Txt": "read failed",
         "Nr": "6"
      }
          }
}

   code       200
   conn
   data
   displayurl https://192.168.115.50/api/menutree/read_datapoint.json?SessionId=38381e32-4b1b-49f0-ad1c-57914300762a&Id=1927
   header
   host       192.168.115.50
   httpheader HTTP/1.0 200 OK

Content-Type: application/json;charset=utf-8

Expires: 0

Cache-Control: must-revalidate, max-age=0, proxy-revalidate, s-maxage=0, post-check=0, pre-check=0

Content-Length: 131

Connection: close

Date: Mon, 19 Dec 2016 14:21:08 GMT

Server: Siemens Switzerland Ltd.
   httpversion 1.0
   hu_blocking 0
   hu_filecount 12
   ignoreredirects 0
   loglevel   4
   path       /api/menutree/read_datapoint.json?SessionId=38381e32-4b1b-49f0-ad1c-57914300762a&Id=1927
   protocol   https
   redirects  0
   sid        38381e32-4b1b-49f0-ad1c-57914300762a
   timeout    2
   url        https://192.168.115.50/api/menutree/read_datapoint.json?SessionId=38381e32-4b1b-49f0-ad1c-57914300762a&Id=1927
   value      0
   QUEUE:
   Readings:
   Request:
     data
     header
     ignoreredirects 0
     retryCount 0
     type       get7
     url        https://192.168.115.50/api/menutree/read_datapoint.json?SessionId=$sid&Id=1927
     value      0
   Lastpoll:
     anzahlStartsBrenner 1482157279.65529
     statusKessel 1482157279.65529
     tempAussen 1482157279.65529
     tempAussenGemischt 1482157279.65529
     tempKesselRuecklauf 1482157279.65529
     tempKesselRuecklaufSoll 1482157279.65529
     tempKesselSoll 1482157279.65529
     tempTWW    1482157279.65529
   Sslargs:
Attributes:
   event-on-change-reading anzahlStartsBrenner,statusKessel,tempAussen,tempAussenGemischt,tempKesselRuecklauf,tempKesselRuecklaufSoll,tempKesselSoll,tempTWW
   get1Name   tempAussen
   get1Poll   1
   get1PollDelay 1800
   get1URL    https://192.168.115.50/api/menutree/read_datapoint.json?SessionId=$sid&Id=1960
   get2Name   tempAussenGemischt
   get2Poll   1
   get2PollDelay 1800
   get2URL    https://192.168.115.50/api/menutree/read_datapoint.json?SessionId=$sid&Id=1964
   get3Name   tempTWW
   get3Poll   1
   get3URL    https://192.168.115.50/api/menutree/read_datapoint.json?SessionId=$sid&Id=1996
   get4Name   tempKesselSoll
   get4Poll   1
   get4URL    https://192.168.115.50/api/menutree/read_datapoint.json?SessionId=$sid&Id=1910
   get5Name   tempKesselRuecklauf
   get5Poll   1
   get5URL    https://192.168.115.50/api/menutree/read_datapoint.json?SessionId=$sid&Id=1915
   get6Name   tempKesselRuecklaufSoll
   get6Poll   1
   get6URL    https://192.168.115.50/api/menutree/read_datapoint.json?SessionId=$sid&Id=1916
   get7Name   anzahlStartsBrenner
   get7Poll   1
   get7PollDelay 1800
   get7URL    https://192.168.115.50/api/menutree/read_datapoint.json?SessionId=$sid&Id=1927
   get8Name   statusKessel
   get8Poll   1
   get8URL    https://192.168.115.50/api/menutree/read_datapoint.json?SessionId=$sid&Id=1898
   reAuthRegex .*session not valid.*
   room       OZW
   sid1IDRegex .*"(.*-.*-.*-[0-9a-z]*).*
   sid1URL    https://192.168.115.50/api/auth/login.json?user=Test&pwd=Test
   userattr   get1Name get1Poll:0,1 get1PollDelay get1PollDelay:0,1 get1URL get2Name get2Poll:0,1 get2PollDelay get2PollDelay:0,1 get2URL get3Name get3Poll:0,1 get3URL get4Name get4Poll:0,1 get4URL get5Name get5Poll:0,1 get5URL get6Name get6Poll:0,1 get6URL get7Name get7Poll:0,1 get7PollDelay get7PollDelay:0,1 get7URL get8Name get8Poll:0,1 get8URL sid1IDRegex sid1URL


Werte bekomme ich nicht ausgelesen, zudem hatte fhem.cfg beim Speichern einen Fehler gemeldet, dass er "get8Regex Value" nicht ausführen kann.
Was mache ich falsch?

MFG

BKSolo

Hallo pacific, hier ein Auszug wie ich die Werte auslese.


define ozw672 HTTPMOD https://192.168.xxx.xxx/api/auth/login.json?user=xxxx&pwd=xxxx 120
attr ozw672 userattr get10Name get10Poll:0,1 get10PollDelay get10PollDelay:0,1 get10Regex get10URL get11Name get11Poll:0,1 get11PollDelay get11PollDelay:0,1 get11Regex get11URL get12Name get12Poll:0,1 get12PollDelay get12PollDelay:0,1 get12Regex get12URL get13Name get13Poll:0,1 get13PollDelay get13PollDelay:0,1 get13Regex get13URL get14Name get14Poll:0,1 get14PollDelay get14PollDelay:0,1 get14Regex get14URL get15Name get15Poll:0,1 get15PollDelay get15PollDelay:0,1 get15Regex get15URL get1Name get1Poll:0,1 get1PollDelay get1PollDelay:0,1 get1Regex get1URL get2Name get2Poll:0,1 get2PollDelay get2PollDelay:0,1 get2Regex get2URL get3Name get3Poll:0,1 get3PollDelay get3PollDelay:0,1 get3Regex get3URL get4Name get4Poll:0,1 get4PollDelay get4PollDelay:0,1 get4Regex get4URL get5Name get5Poll:0,1 get5PollDelay get5PollDelay:0,1 get5Regex get5URL get6Name get6Poll:0,1 get6PollDelay get6PollDelay:0,1 get6Regex get6URL get7Name get7Poll:0,1 get7PollDelay get7PollDelay:0,1 get7Regex get7URL get8Name get8Poll:0,1 get8PollDelay get8PollDelay:0,1 get8Regex get8URL get9Name get9Poll:0,1 get9PollDelay get9PollDelay:0,1 get9Regex get9URL sid1IDRegex sid1IdRegex sid1URL

# Hier nicht alle Werte aufgeführt

attr ozw672 enableControlSet 1
attr ozw672 get10Name ZustandpumpeHk1Vl
attr ozw672 get10Poll 1
attr ozw672 get10PollDelay 100
attr ozw672 get10Regex Value": "[ ]*([Aa-z,Ea-z]*)"
attr ozw672 get10URL https://192.168.xx.xxx/api/menutree/read_datapoint.json?SessionId=$sid&Id=7801
attr ozw672 get11Name tempVlHk2
attr ozw672 get11Poll 1
attr ozw672 get11PollDelay 100
attr ozw672 get11Regex Value": "[ ]*([-.0-9]*)"
attr ozw672 get11URL https://192.168.xxx.xxx/api/menutree/read_datapoint.json?SessionId=$sid&Id=7971
attr ozw672 get12Name ZustandpumpeHk2Vl
attr ozw672 get12Poll 1
attr ozw672 get12PollDelay 100
attr ozw672 get12Regex Value": "[ ]*([Aa-z,Ea-z]*)"
attr ozw672 get12URL https://192.168.xxx.xxx/api/menutree/read_datapoint.json?SessionId=$sid&Id=7821
attr ozw672 get13Name TrinkwasserstellgliedQ3
attr ozw672 get13Poll 1
attr ozw672 get13PollDelay 100
attr ozw672 get13Regex Value": "[ ]*([Aa-z,Ea-z]*)"
attr ozw672 get13URL https://192.168.xxx.xxx/api/menutree/read_datapoint.json?SessionId=$sid&Id=7900
attr ozw672 get14Name SondeEintrittTemp
attr ozw672 get14Poll 1
attr ozw672 get14PollDelay 100
attr ozw672 get14Regex Value": "[ ]*([-.0-9]*)"
attr ozw672 get14URL https://192.168.xxx.xxx/api/menutree/read_datapoint.json?SessionId=$sid&Id=7735
attr ozw672 get15Name SondeAustrittTemp
attr ozw672 get15Poll 1
attr ozw672 get15PollDelay 100
attr ozw672 get15Regex Value": "[ ]*([-.0-9]*)"
attr ozw672 get15URL https://192.168.xxx.xxx/api/menutree/read_datapoint.json?SessionId=$sid&Id=7738

attr ozw672 reAuthRegex .*session not valid.*
attr ozw672 room Setup
attr ozw672 sid1IdRegex .*"(.*-.*-.*-[0-9a-z]*).*
attr ozw672 sid1URL https://192.168.xxx.xxx/api/auth/login.json?user=xxx&pwd=xxxx
attr ozw672 sslArgs SSL_verify_mode,SSL_VERIFY_NONE
attr ozw672 stateFormat {sprintf("B3: %s Soll: %s B31: %s Verdichter1: %s Verdichter2: %s", ReadingsVal($name,"tempTwwIstObenB3","na"), ReadingsVal($name,"tempTwwSollAkt","na"), ReadingsVal($name,"tempTwwIstUntenB31","na"), ReadingsVal($name,"ZustandVerdichter1","na"), ReadingsVal($name,"ZustandVerdichter2","na"))}
attr ozw672 verbose 0

define FileLog_ozw672 FileLog ./log/ozw672-%Y-%m.log ozw672
attr FileLog_ozw672 logtype text
attr FileLog_ozw672 room Setup

# Hier nicht alle SGV's aufgeführt
define SVG_FileLog_ozw672_1 SVG FileLog_ozw672:SVG_FileLog_ozw672_1:CURRENT
attr SVG_FileLog_ozw672_1 group Warmwasser_Plot
attr SVG_FileLog_ozw672_1 label "RVS Warmwasser B3, Last: $data{currval1} °C, Min: $data{min1} °C, Max: $data{max1} °C, Avg: $data{avg1} °C"
attr SVG_FileLog_ozw672_1 plotfunction SVG_FileLog_ozw672_1
attr SVG_FileLog_ozw672_1 room Heizung
attr SVG_FileLog_ozw672_1 sortby 2

define SVG_FileLog_ozw672_2 SVG FileLog_ozw672:SVG_FileLog_ozw672_2:CURRENT
attr SVG_FileLog_ozw672_2 group Ozw672_Plot
attr SVG_FileLog_ozw672_2 label "RVS Verdichter 1 und 2"
attr SVG_FileLog_ozw672_2 room Heizung
attr SVG_FileLog_ozw672_2 sortby 3



Beachte dass meine Id's nicht mit deinen übereinstimmen, da ich das Schema neu erstellt hatte und dabei diese bei mir auf dem Siemens Web-Server angepasst wurden.

Ich habe deinen Code nur oberflächlich betrachtet, sehe aber z.B. keine Regex Anweisungen. Das ist vermutlich der Grund, dass dann keine Werte gelesen werden.
In Abhängigkeit ob Text oder Zahlen ausgelesen werden, ist der entsprechende Regex anzuwenden.

Versuch das mal und melde dich wieder.

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

pacific

#2
Hallo,
wo finde ich denn meine ID's?

Gruß Roger

BKSolo

Hallo,
dazu hat Lanhydrock im Beitrag https://forum.fhem.de/index.php/topic,33765.msg264219.html#msg264219
mit der Antwort #5 eine sehr gute Beschreibung gemacht.

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

pacific

Hallo,
habe jetzt die Anbindung an meine OZW, jedoch bekomme ich noch kein PLot.
Was beeinhaltet z,B. ->>>> SondeAustrittTemp

Habe ich diese Variable selber definiert?

Wie komme ich zu einem Plot?

Gruß Roger

BKSolo

Hallo Roger, was Du brauchst, ist für jedes Plot eine gplot Definition. So habe ich z.B. für das erste Plot das File SVG_FileLog_ozw672_1.gplot erstellt. Die Datei muss in der gplot Ablage (Directory) sein.


# Created by FHEM/98_SVG.pm, 2016-11-06 09:20:14
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 y2tics
set ylabel "Temperatur"
set y2label "Temperatur"
set yrange [30:70]
set y2range [30:70]

#FileLog_ozw672 4:ozw672.tempTwwIstObenB3\x3a::
#FileLog_ozw672 4:ozw672.tempTwwIstUntenB31\x3a::
#FileLog_ozw672 4:ozw672.tempTwwSollAkt\x3a::

plot "<IN>" using 1:2 axes x1y2 title 'B3' ls l0 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y2 title 'B31' ls l1 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y2 title 'Soll' ls l2 lw 1 with lines


Das geht zusammen mit was im fhem.cfg definiert wird - hier der Auszug des Codes für obiges Plot


define SVG_FileLog_ozw672_1 SVG FileLog_ozw672:SVG_FileLog_ozw672_1:CURRENT
attr SVG_FileLog_ozw672_1 group Warmwasser_Plot
attr SVG_FileLog_ozw672_1 label "RVS Warmwasser B3, Last: $data{currval1} °C, Min: $data{min1} °C, Max: $data{max1} °C, Avg: $data{avg1} °C"
attr SVG_FileLog_ozw672_1 plotfunction SVG_FileLog_ozw672_1
attr SVG_FileLog_ozw672_1 room Heizung
attr SVG_FileLog_ozw672_1 sortby 2


Versuchs mal auf deine Bezeichnungen anzupassen - so sollte es dann den Plot erstellen.

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

pacific

Probiert, getestet und funktioniert.
Danke Bruno

pacific

Hallo,
ich habe jetzt mein OZW672 in Fhem eingebunden und es läuft auch.
Ist es möglich, die Präsenzfunktion auch über einen Befehl einzuschalten?
Wenn ich außerhalb der Schaltzeiten nach Hause komme und
die Präsenztaste meiner QAA70 drücke, schalte ich damit den Brenner ein.

Dieses möchte ich gerne über fhem erledigen, bevor ich nachhause komme.
Vielleicht hat ja jemand eine Lösung.

Gruß Roger

fhainz

Die nnm[emoji3][emoji8][emoji23][emoji2]


Gesendet von iPhone mit Tapatalk

Schotty

#9
Zitat von: pacific am 09 Januar 2017, 20:26:05
Ist es möglich, die Präsenzfunktion auch über einen Befehl einzuschalten?
Hi Roger,
via OZW ist es imho nicht möglich, aber mit unserem BSB-LAN-Adapter: https://1coderookie.github.io/BSB-LPB-LAN/kap08.html#822-pr%C3%A4senztaste-simulieren  ;)
Edit: Hier der Link zum entspr. Thread: https://forum.fhem.de/index.php/topic,29762.0.html
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/