UVR1611 - Fa. Technische Alternative und C.M.I. - Nachfolger BL

Begonnen von Odie, 20 März 2015, 12:13:41

Vorheriges Thema - Nächstes Thema

Odie

Hallo!

Ich möchte mit fhem die Werte meine UVR1611 abholen.
Alles was ich an Anleitung gefunden habe befasste sich mit BL und nicht mit dem Nachfolger C.M.I.
Leider sind meine Versuche die Werte abzuholen nicht geglückt und hoffe, dass mir hier jemand helfen kann.

Die CMI hat ein Webinterface die mit einer Benutzeranmeldung (Basic Authentication) geschützt ist
und darin eine Unterseite "Messwerte" auf der alle Werte stehen. Fast wie bei dem alten Gerät BL.
Siehe Screenshot; Seitencode Code.txt
Die URL in meinem Fall ist "http://IP-Adresse/devpage.cgi?page=02005804"

Kann mir hierzu jemand Hilfe geben?

1000 Dank

Odie








fhem auf Raspi, USB-IR-Leseköpfen , CUL 868Mhz, CUL 433Mhz, PCA301, LaCrosse, Homematic

Odie

fhem auf Raspi, USB-IR-Leseköpfen , CUL 868Mhz, CUL 433Mhz, PCA301, LaCrosse, Homematic

Rose01

#2
Bist du schon weiter gekommen..?
Ich habe auch zwei UVR 1611 und habe die Werte die ich benötige von der erzeugten Html Seite vom Onlinechema p. HTTPMOD abgeholt.Ich möchte jetzt auch auf das CMl umsteigen. Nur gibt es die Daten vom Onlinechema nicht direkt..oder gibt es evtl. eine ander Möglichkeit an die Daten vom CMI. Can zu kommen..?

Odie

Hallo!

Weiter?! Ja und nein.
Nicht so elegant wie ich wollte aber es funktioniert.
Ich habe einiges versucht und auch mit t.a. gemailt
welche Möglichkeiten es gibt.
Jedoch teilten sie mir mit, dass es z.Zeit nichts gibt.
Bei dem Vorgänger (Battelnet?? oder so) ging das viel
einfacher.Hab ich ja nicht ;-)

Ich habe mir eine cgi mit dem t.a.-tool gebaut und parse diese per httpmod in fhem.
Funktioniert soweit.
Da ich alle Anschlüsse an der UVR nutze logge ich
bis auf den Mischer alles im Minutentakt.
Das Filelog in fhem wird jeden Monat ca 130MB größer.

Aktionen bzw Eingriffe in die Solarsteuerung sind geplant
jedoch noch nicht umgesetzt.
Wird in die Richtung curl gehen. Vieleicht auch ein Modul.
Weis noch nicht.

Ich hoffe dies hilft dir weiter.

Gruss

Odie
fhem auf Raspi, USB-IR-Leseköpfen , CUL 868Mhz, CUL 433Mhz, PCA301, LaCrosse, Homematic

sylvester

Hallo,

ich möchte auch gerne mein CMI in Fhem integrieren. Dabei reicht es mir, wenn ich zunächst die Eingänge am CMI per Fhem auslesen kann.
Nach meinem Verständnis müsste das mit HTTPMOD funktionieren.

Die Definition des HTTPMOD habe ich auch hinbekommen:


define UVR1611_Logging HTTPMOD http://user:password@192.168.178.42/menupage.cgi?page=01005805 180


Bei der Definition der Readings tue ich mich aber schwer.

Folgender Text kommt zurück


style="clear:both;"></div></div><hr>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EINGAENGE<br><hr>
&nbsp;1:&nbsp;Temp.Aussen<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;11,2 &deg;C&nbsp;&nbsp;&nbsp;PAR?<a href="menupage.cgi?page=0101580C">➤</a><br>
&nbsp;2:&nbsp;TKollektor<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;18,2 &deg;C&nbsp;&nbsp;&nbsp;PAR?<a href="menupage.cgi?page=0102580C">➤</a><br>
&nbsp;3:&nbsp;TSP.unten<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;13,2 &deg;C&nbsp;&nbsp;&nbsp;PAR?<a href="menupage.cgi?page=0103580C">➤</a><br>
&nbsp;4:&nbsp;TSP.oben<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;57,5 &deg;C&nbsp;&nbsp;&nbsp;PAR?<a href="menupage.cgi?page=0104580C">➤</a><br>
&nbsp;5:&nbsp;THeizkr.VL1<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;28,2 &deg;C&nbsp;&nbsp;&nbsp;PAR?<a href="menupage.cgi?page=0105580C">➤</a><br>
&nbsp;6:&nbsp;TZirku.RL<br> &nbsp;&nbsp;&...


Da steckt eigentlich alles drin, was man braucht:
an "1:" erkennt man den Eingang
"Temp.Aussen" wäre der Name des Readings
und "11,2" ist dann der Wert des Readings

Sehe ich es richtig, dass ich für die Beschriftung und den Wert jeweils einmal attr readingXXName/readingXXRegex brauche?

Also in etwa:

attr UVR1611_Logging reading01Name Eingang01_Name
attr UVR1611_Logging reading01Regex ???
attr UVR1611_Logging reading02Name Eingang01_Wert
attr UVR1611_Logging reading02Regex ???


Leider kenne ich mich mit regulären Ausdrücken nicht so gut aus. Wie würdet ihr diese schreiben?

Vielen Dank für eure Unterstützung

Stephan

Morgennebel

Einziger Spender an FHEM e.V. mit Dauerauftrag seit >= 24 Monaten

FHEM: MacMini/ESXi, 2-3 FHEM Instanzen produktiv
In-Use: STELLMOTOR, VALVES, PWM-PWMR, Xiaomi, Allergy, Proplanta, UWZ, MQTT,  Homematic, Luftsensor.info, ESP8266, ESERA

sylvester

#6
Hallo!

Vielen Dank für die Links. Die waren sehr hilfreich.

Leider funktioniert es trotzdem noch nicht.

Durch die Testseite bin ich auf folgendes gekommen:


define UVR1611_Logging HTTPMOD http://user:password@192.168.178.42/menupage.cgi?page=01005805 180
attr UVR1611_Logging room 42_Heizung
attr UVR1611_Logging userattr reading01Name reading01Regex reading02Name reading02Regex
attr UVR1611_Logging reading01Name Eingang01_Name
attr UVR1611_Logging reading01Regex 1:&nbsp;;([\S]+)<br>
attr UVR1611_Logging reading02Name Eingang01_Wert
attr UVR1611_Logging reading02Regex 1:&nbsp;;[\S]+<br>.?[&nbsp;;]+([\d]+,[\d]|[a-zA-Z]+)


Die Werte werden leider nicht eingetragen :(
Hat jemand einen Tipp?

Viele Grüße

Stephan

sylvester

Hallo,

kann mir jemand sagen, warum


&nbsp;1:&nbsp;[\S]+<br>.?[&nbsp;]+([\d]+,[\d]|[a-zA-Z]+)


in dem Text


EINGAENGE<br> <hr>&nbsp;1:&nbsp;Temp.Aussen<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;13,6 &deg;C&nbsp;&nbsp;&nbsp;PAR?<a href="menupage.cgi?page=0101580C">➤</a><br> &nbsp;2:&nbsp;TKollektor<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;23,1 &deg;C&nbsp;&nbsp;&nbsp;PAR?<a href="menupage.cgi?page=0102580C">➤</a><br> &nbsp;3:&nbsp;TSP.unten<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;20,0 &deg;C&nbsp;&nbsp;&nbsp;PAR?<a href="menupage.cgi?page=0103580C">➤</a><br> &nbsp;4:&nbsp;TSP.oben<br>


keine Werte zurück liefert?

Viele Grüße

Stephan

Odie

Hi!
Versuch das mal bitte
&nbsp;1:&nbsp;[\S]+<br>.?[&nbsp;]+[^0-9]+([0-9\,]+)
fhem auf Raspi, USB-IR-Leseköpfen , CUL 868Mhz, CUL 433Mhz, PCA301, LaCrosse, Homematic

sylvester

#9
Das funktioniert leider auch nicht.

Es scheint ein Problem zu sein, die vielen "&nbsp;" zu erfassen ...

Hiermit funktioniert es:


attr UVR1611_Logging reading02Regex &nbsp;;1:&nbsp;;[\S]+<br>.?[^0-9EA]+([0-9\,]+|[EINAUS]+)


Jetzt muss ich nur noch die Kommazahlen mit einem Punkt schreiben und aus "AUS" eine 0 und aus "EIN" eine 100 machen ...
Hat da noch jemand einen Tipp?
Das müsste ggf ja mit "reading01OExpr" funktionieren, oder?

sylvester

Hallo,

für Ein/Aus habe ich jetzt die Map-Funktion in http oder gefunden.
Hat noch jemand einen Tipp, wie ich in den Temperaturen das Komma durch einen Punkt ersetze?

Viele Grüße

Stephan

Odie

Hi!
Ich hab das über userReadings gelöst.
Hier ein Ausschnitt meiner Config

F01_WaermemengeSolar-KW-Tag { my $val = (ReadingsVal("$name", "F01_WaermemengeSolar-KW-Tag", 0));; $val =~ s/,/\./g;; return $val;;},   
fhem auf Raspi, USB-IR-Leseköpfen , CUL 868Mhz, CUL 433Mhz, PCA301, LaCrosse, Homematic

sylvester

Hallo,

nach viel Probiererei habe ich das jetzt so gelöst:


# UVR1611
##########
define UVR1611_Logging HTTPMOD http://user:pasword@123.456.789.123/menupage.cgi?page=01005805 180
attr UVR1611_Logging room 42_Heizung
attr UVR1611_Logging userattr reading01Name reading01Regex reading02Name reading02Regex reading03Name reading03Regex reading04Name reading04Regex reading05Name reading05Regex reading06Name reading06Regex reading07Name reading07Regex reading08Name reading08Regex reading09Name reading09Regex reading10Name reading10Regex reading11Name reading11Regex reading12Name reading12Regex reading13Name reading13Regex reading14Name reading14Regex reading15Name reading15Regex reading16Name reading16Regex reading17Name reading17Regex reading18Name reading18Regex reading19Name reading19Regex reading20Name reading20Regex reading21Name reading21Regex reading22Name reading22Regex reading23Name reading23Regex reading24Name reading24Regex reading25Name reading25Regex reading26Name reading26Regex reading27Name reading27Regex reading28Name reading28Regex reading29Name reading29Regex reading30Name reading30Regex reading31Name reading31Regex reading32Name reading32Regex
attr UVR1611_Logging reading01Name Eingang01_Name
attr UVR1611_Logging reading01Regex &nbsp;;1:&nbsp;;([\S]+)<br>
attr UVR1611_Logging reading02Name Eingang01_Wert
attr UVR1611_Logging reading02Regex &nbsp;;1:&nbsp;;[\S]+<br>.?[^0-9EA]+([0-9\,]+|[EINAUS]+)
attr UVR1611_Logging reading02Expr $val =~ s/,/\./g;; return $val;;
attr UVR1611_Logging reading03Name Eingang02_Name
attr UVR1611_Logging reading03Regex &nbsp;;2:&nbsp;;([\S]+)<br>
attr UVR1611_Logging reading04Name Eingang02_Wert
attr UVR1611_Logging reading04Regex &nbsp;;2:&nbsp;;[\S]+<br>.?[^0-9EA]+([0-9\,]+|[EINAUS]+)
attr UVR1611_Logging reading04Expr $val =~ s/,/\./g;; return $val;;
attr UVR1611_Logging reading05Name Eingang03_Name
attr UVR1611_Logging reading05Regex &nbsp;;3:&nbsp;;([\S]+)<br>
attr UVR1611_Logging reading06Name Eingang03_Wert
attr UVR1611_Logging reading06Regex &nbsp;;3:&nbsp;;[\S]+<br>.?[^0-9EA]+([0-9\,]+|[EINAUS]+)
attr UVR1611_Logging reading06Expr $val =~ s/,/\./g;; return $val;;
attr UVR1611_Logging reading07Name Eingang04_Name
attr UVR1611_Logging reading07Regex &nbsp;;4:&nbsp;;([\S]+)<br>
attr UVR1611_Logging reading08Name Eingang04_Wert
attr UVR1611_Logging reading08Regex &nbsp;;4:&nbsp;;[\S]+<br>.?[^0-9EA]+([0-9\,]+|[EINAUS]+)
attr UVR1611_Logging reading08Expr $val =~ s/,/\./g;; return $val;;
attr UVR1611_Logging reading09Name Eingang05_Name
attr UVR1611_Logging reading09Regex &nbsp;;5:&nbsp;;([\S]+)<br>
attr UVR1611_Logging reading10Name Eingang05_Wert
attr UVR1611_Logging reading10Regex &nbsp;;5:&nbsp;;[\S]+<br>.?[^0-9EA]+([0-9\,]+|[EINAUS]+)
attr UVR1611_Logging reading10Expr $val =~ s/,/\./g;; return $val;;
attr UVR1611_Logging reading11Name Eingang06_Name
attr UVR1611_Logging reading11Regex &nbsp;;6:&nbsp;;([\S]+)<br>
attr UVR1611_Logging reading12Name Eingang06_Wert
attr UVR1611_Logging reading12Regex &nbsp;;6:&nbsp;;[\S]+<br>.?[^0-9EA]+([0-9\,]+|[EINAUS]+)
attr UVR1611_Logging reading12Expr $val =~ s/,/\./g;; return $val;;
attr UVR1611_Logging reading13Name Eingang07_Name
attr UVR1611_Logging reading13Regex &nbsp;;7:&nbsp;;([\S]+)<br>
attr UVR1611_Logging reading14Name Eingang07_Wert
attr UVR1611_Logging reading14Regex &nbsp;;7:&nbsp;;[\S]+<br>.?[^0-9EA]+([0-9\,]+|[EINAUS]+)
attr UVR1611_Logging reading14OMap EIN:100, AUS:0
attr UVR1611_Logging reading15Name Eingang08_Name
attr UVR1611_Logging reading15Regex &nbsp;;8:&nbsp;;([\S]+)<br>
attr UVR1611_Logging reading16Name Eingang08_Wert
attr UVR1611_Logging reading16Regex &nbsp;;8:&nbsp;;[\S]+<br>.?[^0-9EA]+([0-9\,]+|[EINAUS]+)
attr UVR1611_Logging reading16Expr $val =~ s/,/\./g;; return $val;;
attr UVR1611_Logging reading17Name Eingang09_Name
attr UVR1611_Logging reading17Regex &nbsp;;9:&nbsp;;([\S]+)<br>
attr UVR1611_Logging reading18Name Eingang09_Wert
attr UVR1611_Logging reading18Regex &nbsp;;9:&nbsp;;[\S]+<br>.?[^0-9EA]+([0-9\,]+|[EINAUS]+)
attr UVR1611_Logging reading18Expr $val =~ s/,/\./g;; return $val;;
attr UVR1611_Logging reading19Name Eingang10_Name
attr UVR1611_Logging reading19Regex 10:&nbsp;;([\S]+)<br>
attr UVR1611_Logging reading20Name Eingang10_Wert
attr UVR1611_Logging reading20Regex 10:&nbsp;;[\S]+<br>.?[^0-9EA]+([0-9\,]+|[EINAUS]+)
attr UVR1611_Logging reading20Expr $val =~ s/,/\./g;; return $val;;
attr UVR1611_Logging reading21Name Eingang11_Name
attr UVR1611_Logging reading21Regex 11:&nbsp;;([\S]+)<br>
attr UVR1611_Logging reading22Name Eingang11_Wert
attr UVR1611_Logging reading22Regex 11:&nbsp;;[\S]+<br>.?[^0-9EA]+([0-9\,]+|[EINAUS]+)
attr UVR1611_Logging reading22OMap EIN:100, AUS:0
attr UVR1611_Logging reading23Name Eingang12_Name
attr UVR1611_Logging reading23Regex 12:&nbsp;;([\S]+)<br>
attr UVR1611_Logging reading24Name Eingang12_Wert
attr UVR1611_Logging reading24Regex 12:&nbsp;;[\S]+<br>.?[^0-9EA]+([0-9\,]+|[EINAUS]+)
attr UVR1611_Logging reading24Expr $val =~ s/,/\./g;; return $val;;
attr UVR1611_Logging reading25Name Eingang13_Name
attr UVR1611_Logging reading25Regex 13:&nbsp;;([\S]+)<br>
attr UVR1611_Logging reading26Name Eingang13_Wert
attr UVR1611_Logging reading26Regex 13:&nbsp;;[\S]+<br>.?[^0-9EA]+([0-9\,]+|[EINAUS]+)
attr UVR1611_Logging reading26Expr $val =~ s/,/\./g;; return $val;;
attr UVR1611_Logging reading27Name Eingang14_Name
attr UVR1611_Logging reading27Regex 14:&nbsp;;([\S]+)<br>
attr UVR1611_Logging reading28Name Eingang14_Wert
attr UVR1611_Logging reading28Regex 14:&nbsp;;[\S]+<br>.?[^0-9EA]+([0-9\,]+|[EINAUS]+)
attr UVR1611_Logging reading28Expr $val =~ s/,/\./g;; return $val;;
attr UVR1611_Logging reading29Name Eingang15_Name
attr UVR1611_Logging reading29Regex 15:&nbsp;;([\S]+)<br>
attr UVR1611_Logging reading30Name Eingang15_Wert
attr UVR1611_Logging reading30Regex 15:&nbsp;;[\S]+<br>.?[^0-9EA]+([0-9\,]+|[EINAUS]+)
attr UVR1611_Logging reading30Expr $val =~ s/,/\./g;; return $val;;
attr UVR1611_Logging reading31Name Eingang16_Name
attr UVR1611_Logging reading31Regex 16:&nbsp;;([\S]+)<br>
attr UVR1611_Logging reading32Name Eingang16_Wert
attr UVR1611_Logging reading32Regex 16:&nbsp;;[\S]+<br>.?[^0-9EA]+([0-9\,]+|[EINAUS]+)
attr UVR1611_Logging reading32OMap EIN:100, AUS:0
attr UVR1611_Logging stateFormat VL1:Eingang05_Wert°C VL2:Eingang09_Wert°C
attr UVR1611_Logging timeout 5


Wer genau hinschaut, erkennt, dass drei Eingänge digital ausgewertet werden, der Rest sind Temperaturfühler.

Viele Grüße

Stephan