NEWS
EWE Elmo Smartmeter Wifi einbinden
-
Ich nutze ein Python Script (token authorization) für meine SolarEdge , um weitere einzelne Werte von den Panels zu holen .
Wie es mit deinem Elmo geht , kann ich dir leider nicht weiterhelfen.
Dann nutze doch den Parsen ... wenn es dann so reicht !@glasfaser Na ja immerhin funktioniert es den Momentanverbrauch auszulesen, aber warum der request Block nicht funktioniert wurde mich trotzdem interessieren.
-
@homoran
OK dann probiere ich es nochmal:Ich habe eine URL diese lautet http://192.168.10.212
Wenn ich das in Google Chrome eingebe erhalte ich folgendes Ergebnis:{"meterId":"1KFM0000028196","deviceId":"EBSD1425009486","msgType":"EMETER_OBIS_V2","measurements":[{"timestamp":"2022-12-03T14:16:57Z","values":{"1-0:96.90.21":"7E2005D2","1-0:0.2.00":"312E3033","1-0:14.7.0255":49.900001525878906,"1-0:81.7.26255":348,"1-0:81.7.15255":296,"1-0:81.7.4255":332,"1-0:81.7.2255":239,"1-0:81.7.1255":119,"1-0:71.7.0255":0.50999999046325684,"1-0:51.7.0255":0.64999997615814209,"1-0:31.7.0255":0.82999998331069946,"1-0:72.7.0255":236.60000610351562,"1-0:52.7.0255":234,"1-0:32.7.0255":237.69999694824219,"1-0:16.7.0255":289,"1-0:2.8.0255":0,"1-0:1.8.0255":9071.662109375,"1-0:96.1.0255":"0A014B464D0000006E24","1-0:96.50.1*1":"4B464D"}}]}
Die Werte die hinter der Zahl "255":" stehen möchte ich irgendwie in einen Datenpunkt im iobroker bekommen.
Ich habe einen iobroker auf einem Rasberry installiert der auch einwandfrei läuft.
Ich habe mein Glück bis jetzt mit einem Blockly versucht, in Form eines request Blockes.

Dann erhalte ich folgende Fehlermeldung:
script.js.Gerätesteuerung.Elmo.Stromverbrauch: {'bytesParsed':46,'code':'HPE_INVALID_HEADER_TOKEN','reason':'Invalid header value char','rawPacket':{'type':'Buffer','data':[72,84,84,80,47,49,46,49,32,50,48,48,32,79,75,10,67,111,110,116,101,110,116,45,116,121,112,101,58,32,97,112,112,108,105,99,97,116,105,111,110,47,106,115,111,110,10,67,97,99,104,101,45,67,111,110,116,114,111,108,58,32,110,111,45,115,116,111,114,101,44,32,110,111,45,99,97,99,104,101,44,32,109,117,115,116,45,114,101,118,97,108,105,100,97,116,101,44,32,109,97,120,45,97,103,101,61,48,10,80,114,97,103,109,97,58,32,110,111,45,99,97,99,104,101,10,10]}}
Warum weiß ich leider nicht.
Eine andere Idee wäre vielleicht den Parser Adapter dafür zu verwenden, aber da scheitere ich an der RegEx Eingabe. Da weiß ich nicht, was da hingeschrieben werden muss.
Ich hoffe ich konnte das Problem jetzt einigermaßen erläutern.
-

ich kann jetzt nicht umstellen bei mir , dann wirst du nach der IP in der Instanz gefragt
EDIT :

Der Adapter bleibt gelb
-
Der Adapter bleibt gelb
-
@martin-0 sagte in EWE Elmo Smartmeter Wifi einbinden:
EMETER_OBIS_V2
1-0:96.90.21 .......
das müßte doch dann auch mit dem Smartmeter Adapter dann auslesbar sein ...
@glasfaser sagte in EWE Elmo Smartmeter Wifi einbinden:
das müßte doch dann auch mit dem Smartmeter Adapter dann auslesbar sein ...
nee, die Daten liegen als Array in einem Json vor
@martin-0 sagte in EWE Elmo Smartmeter Wifi einbinden:
{"meterId":"1KFM0000028196","deviceId":"EBSD1425009486","msgType":"EMETER_OBIS_V2","measurements":[{"timestamp":"2022-12-03T14:16:57Z","values":{"1-0:96.90.21":"7E2005D2","1-0:0.2.00":"312E3033","1-0:14.7.0255":49.900001525878906,"1-0:81.7.26255":348,"1-0:81.7.15255":296,"1-0:81.7.4255":332,"1-0:81.7.2255":239,"1-0:81.7.1255":119,"1-0:71.7.0255":0.50999999046325684,"1-0:51.7.0255":0.64999997615814209,"1-0:31.7.0255":0.82999998331069946,"1-0:72.7.0255":236.60000610351562,"1-0:52.7.0255":234,"1-0:32.7.0255":237.69999694824219,"1-0:16.7.0255":289,"1-0:2.8.0255":0,"1-0:1.8.0255":9071.662109375,"1-0:96.1.0255":"0A014B464D0000006E24","1-0:96.50.1*1":"4B464D"}}]}
-
Der Adapter bleibt gelb
-
-
@glasfaser sagte in EWE Elmo Smartmeter Wifi einbinden:
das müßte doch dann auch mit dem Smartmeter Adapter dann auslesbar sein ...
nee, die Daten liegen als Array in einem Json vor
@martin-0 sagte in EWE Elmo Smartmeter Wifi einbinden:
{"meterId":"1KFM0000028196","deviceId":"EBSD1425009486","msgType":"EMETER_OBIS_V2","measurements":[{"timestamp":"2022-12-03T14:16:57Z","values":{"1-0:96.90.21":"7E2005D2","1-0:0.2.00":"312E3033","1-0:14.7.0255":49.900001525878906,"1-0:81.7.26255":348,"1-0:81.7.15255":296,"1-0:81.7.4255":332,"1-0:81.7.2255":239,"1-0:81.7.1255":119,"1-0:71.7.0255":0.50999999046325684,"1-0:51.7.0255":0.64999997615814209,"1-0:31.7.0255":0.82999998331069946,"1-0:72.7.0255":236.60000610351562,"1-0:52.7.0255":234,"1-0:32.7.0255":237.69999694824219,"1-0:16.7.0255":289,"1-0:2.8.0255":0,"1-0:1.8.0255":9071.662109375,"1-0:96.1.0255":"0A014B464D0000006E24","1-0:96.50.1*1":"4B464D"}}]}
-
@glasfaser sagte in EWE Elmo Smartmeter Wifi einbinden:
@martin-0 sagte in EWE Elmo Smartmeter Wifi einbinden:
Invalid URI
sagt doch alles !
jepp! da ist nur ein
/ -
@glasfaser sagte in EWE Elmo Smartmeter Wifi einbinden:
@martin-0 sagte in EWE Elmo Smartmeter Wifi einbinden:
Invalid URI
sagt doch alles !
jepp! da ist nur ein
/ -
@homoran
Jo, berichtigt.
Jetzt:ERROR ON HTTP REQUEST: : Error: Parse Error: Invalid header value char
@martin-0 sagte in EWE Elmo Smartmeter Wifi einbinden:
Invalid header
entspicht anscheinend der Fehlermeldung vom request
im Parser hattest du unsicheren Http-Parser erlaubt
-
@martin-0 sagte in EWE Elmo Smartmeter Wifi einbinden:
Invalid header
entspicht anscheinend der Fehlermeldung vom request
im Parser hattest du unsicheren Http-Parser erlaubt
-
@martin-0 sagte in EWE Elmo Smartmeter Wifi einbinden:
@homoran
kann ich denn vielleicht Benutzername und Passwort mit übergeben?nein!
lies dir die Workarounds zu@martin-0 sagte in EWE Elmo Smartmeter Wifi einbinden:
HPE_INVALID_HEADER_TOKEN
Durch
-
@martin-0 sagte in EWE Elmo Smartmeter Wifi einbinden:
@homoran
kann ich denn vielleicht Benutzername und Passwort mit übergeben?nein!
lies dir die Workarounds zu@martin-0 sagte in EWE Elmo Smartmeter Wifi einbinden:
HPE_INVALID_HEADER_TOKEN
Durch
Hallo
Ich bins nochmal. Ich habe gestern den Raspberry neu aufgesetzt alle Daten zurückgesichert und nun bekomme ich über den Parser folgende Fehlermeldung:Cannot read link "http://192.168.10.212/data": Error: Parse Error: Invalid header value charHat sich am Parser irgendetwas geändert?
Ich finde die Einstellung nicht, dass ich unsichere Verbindungen zulassen kann.Es geht immernoch um den Datenaufruf, der im Browser so aussieht:
{"meterId":"1KFM0000028196","deviceId":"EBSD1425009486","msgType":"EMETER_OBIS_V2","measurements":[{"timestamp":"2023-03-11T09:08:23Z","values":{"1-119:7.1.0*2":0,"1-0:96.90.2*1":"7E2005D2","1-0:0.2.0*0":"312E3033","1-0:14.7.0*255":49.900001525878906,"1-0:81.7.26*255":358,"1-0:81.7.15*255":329,"1-0:81.7.4*255":338,"1-0:81.7.2*255":239,"1-0:81.7.1*255":119,"1-0:71.7.0*255":9.880000114440918,"1-0:51.7.0*255":1.0900000333786011,"1-0:31.7.0*255":0.92000001668930054,"1-0:72.7.0*255":231.39999389648438,"1-0:52.7.0*255":232.39999389648438,"1-0:32.7.0*255":234.80000305175781,"1-0:16.7.0*255":2636,"1-0:2.8.0*255":0,"1-0:1.8.0*255":10229.44921875,"1-0:96.1.0*255":"0A014B464D0000006E24","1-0:96.50.1*1":"4B464D"}}]}Oder gibt es vielleicht schon eine bessere Idee die Daten von dem Lesekopf zu holen?
Gruß
Martin -
Hallo
Ich bins nochmal. Ich habe gestern den Raspberry neu aufgesetzt alle Daten zurückgesichert und nun bekomme ich über den Parser folgende Fehlermeldung:Cannot read link "http://192.168.10.212/data": Error: Parse Error: Invalid header value charHat sich am Parser irgendetwas geändert?
Ich finde die Einstellung nicht, dass ich unsichere Verbindungen zulassen kann.Es geht immernoch um den Datenaufruf, der im Browser so aussieht:
{"meterId":"1KFM0000028196","deviceId":"EBSD1425009486","msgType":"EMETER_OBIS_V2","measurements":[{"timestamp":"2023-03-11T09:08:23Z","values":{"1-119:7.1.0*2":0,"1-0:96.90.2*1":"7E2005D2","1-0:0.2.0*0":"312E3033","1-0:14.7.0*255":49.900001525878906,"1-0:81.7.26*255":358,"1-0:81.7.15*255":329,"1-0:81.7.4*255":338,"1-0:81.7.2*255":239,"1-0:81.7.1*255":119,"1-0:71.7.0*255":9.880000114440918,"1-0:51.7.0*255":1.0900000333786011,"1-0:31.7.0*255":0.92000001668930054,"1-0:72.7.0*255":231.39999389648438,"1-0:52.7.0*255":232.39999389648438,"1-0:32.7.0*255":234.80000305175781,"1-0:16.7.0*255":2636,"1-0:2.8.0*255":0,"1-0:1.8.0*255":10229.44921875,"1-0:96.1.0*255":"0A014B464D0000006E24","1-0:96.50.1*1":"4B464D"}}]}Oder gibt es vielleicht schon eine bessere Idee die Daten von dem Lesekopf zu holen?
Gruß
MartinEs gibt nun eine Lösung den EWE Elmo auszulesen:
Vielen Dank an @mickym der dieses geile Blockly geschrieben hat.
Hier die Lösung:

<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="HKZ8QJwOkjzcY{)478uh">data</variable> </variables> <block type="procedures_defcustomreturn" id=".0+pfi#8i#U#jm$iU4:(" x="838" y="-138"> <mutation statements="false"></mutation> <field name="NAME">EWE_Elmo</field> <field name="SCRIPT">Y29uc3QgYXhpb3MgPSByZXF1aXJlKCdheGlvcycpOw0KIA0KY29uc3QgdXJsID0gJ2h0dHA6Ly8xOTIuMTY4LjEwLjIxMi9kYXRhJzsNCiANCnJldHVybiBheGlvcy5nZXQodXJsLCB7IGluc2VjdXJlSFRUUFBhcnNlcjogdHJ1ZSB9KS50aGVuKChyZXNwb25zZSkgPT4gcmVzcG9uc2UuZGF0YSk7DQo=</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block> <block type="schedule" id="PZX=m6gsch].ER3b]?)l" x="63" y="-88"> <field name="SCHEDULE">* * * * *</field> <statement name="STATEMENT"> <block type="variables_set" id="(^z7u:OWv3wK-3WwfK0$"> <field name="VAR" id="HKZ8QJwOkjzcY{)478uh">data</field> <value name="VALUE"> <block type="procedures_callcustomreturn" id="}DioNbC)Da-GiVrMZiBd"> <mutation name="EWE_Elmo"></mutation> </block> </value> <next> <block type="control" id="DL7OU@`NdOckqmFyr~K4"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Geraetesteuerung.Strom.Stromzähler_untere_Wohnung.Elmo_EWE.Hauptzaehlerstand_aktuell</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="convert_jsonata" id="Fn3{d1`bQT(R#,.DSWI_"> <value name="EXPRESSION"> <shadow type="text" id="K~.FXx{(u4hCr@*VlT0f"> <field name="TEXT">$.measurements[0].values."1-0:1.8.0*255"</field> </shadow> </value> <value name="TARGET"> <block type="variables_get" id="DgVS.JaXD~{6lDO?gAsE"> <field name="VAR" id="HKZ8QJwOkjzcY{)478uh">data</field> </block> </value> </block> </value> <next> <block type="control" id="?=z|HV#-:d`Q|SH[:_xq"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Geraetesteuerung.Strom.Stromzähler_untere_Wohnung.Elmo_EWE.Einspeisezaehlerstand_aktuell</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="convert_jsonata" id="nO49a*}C;,c0Z~suk6mt"> <value name="EXPRESSION"> <shadow type="text" id="2b0xNcCby$Sa[%U=i*w{"> <field name="TEXT">$.measurements[0].values."1-0:2.8.0*255"</field> </shadow> </value> <value name="TARGET"> <block type="variables_get" id="/8bt$.wh.$qV~_=JgRQt"> <field name="VAR" id="HKZ8QJwOkjzcY{)478uh">data</field> </block> </value> </block> </value> <next> <block type="control" id="8OCZ#aLl}`qx=%m$!ihT"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Geraetesteuerung.Strom.Stromzähler_untere_Wohnung.Elmo_EWE.Stromverbrauch_aktuell</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="convert_jsonata" id="ks,c^F+c6K)B,/E1qn~g"> <value name="EXPRESSION"> <shadow type="text" id="Oz+/([mca!_Cfa)wu8IE"> <field name="TEXT">$.measurements[0].values."1-0:16.7.0*255"</field> </shadow> </value> <value name="TARGET"> <block type="variables_get" id="OeFO{7Y*E*=zJCQm{cv{"> <field name="VAR" id="HKZ8QJwOkjzcY{)478uh">data</field> </block> </value> </block> </value> <next> <block type="debug" id="(#D=4jImQYEWBq9nk/o."> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="Ipk)om!*g3w3lb+7ERhe"> <field name="TEXT">test</field> </shadow> <block type="convert_jsonata" id="%=2N*j`S5|XL#yGyeI#/"> <value name="EXPRESSION"> <shadow type="text" id="4N:x_Lg,Wyj4i`w{CLp$"> <field name="TEXT">$.measurements[0].values."1-0:16.7.0*255"</field> </shadow> </value> <value name="TARGET"> <block type="variables_get" id="61cQ@n]W4V47kF7KXB2T"> <field name="VAR" id="HKZ8QJwOkjzcY{)478uh">data</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </xml>

