NEWS
Adapter "smartmeter"
-
Hallo an alle,
das Projekt "Strom ablesen" ist abgeschlossen.
Klappt wunderbar.
Für alle die dies noch vor sich haben; anbei mal eine kleine Todo.
Danke an apollon und alle die mir Antwort gegeben haben.
1. Kauf Stromzähler
Wie oben geschrieben habe ich nun auch diesen bestellt:
https://www.amazon.de/gp/product/B01B8N … UTF8&psc=1
Gekauft habe ich über Ebay (und das 2 x; für normaler Zähler und Photovoltaik).
Nils von der Seite "volkszähler" hat nun nach 3 Wochen auch auf meine Mail geantwortet. Er will 25,- Euro/Stück + Versand.
Er ist billiger, kam aber leider zu spät (ich hatte die Dinger ja nun jetzt schon).
2. Raspi 3 gekauft.
image von der iobroker Seite drauf.
Raspi als slave eingerichtet.
Smartmeter installiert; Device zugewiesen, fertig.
3. Ein paar Variablen angelegt. Im einzelnen folgende:
// Stromzähler ------------------------------------------------------------------------------------------------------------- createState('javascript.0.Status.Stromzähler.Stunde.Bezogen_in_Wh', 0, {type: 'number',name: 'Stunde',min: 0,unit: 'Wh',read: true,write: true,role: 'per Script'}); createState('javascript.0.Status.Stromzähler.Stunde.Bezogen_Zähler_alt', 0, {type: 'number',name: 'Stunde',min: 0,unit: 'kWh',read: true,write: true,role: 'per Script'}); createState('javascript.0.Status.Stromzähler.Stunde.Eingespeist_in_Wh', 0, {type: 'number',name: 'Stunde',min: 0,unit: 'Wh',read: true,write: true,role: 'per Script'}); createState('javascript.0.Status.Stromzähler.Stunde.Eingespeist_Zähler_alt', 0, {type: 'number',name: 'Stunde',min: 0,unit: 'kWh',read: true,write: true,role: 'per Script'}); createState('javascript.0.Status.Stromzähler.Stunde.Produziert_in_Wh', 0, {type: 'number',name: 'Stunde',min: 0,unit: 'Wh',read: true,write: true,role: 'per Script'}); createState('javascript.0.Status.Stromzähler.Stunde.Produziert_Zähler_alt', 0, {type: 'number',name: 'Stunde',min: 0,unit: 'kWh',read: true,write: true,role: 'per Script'}); createState('javascript.0.Status.Stromzähler.Tag.Bezogen_in_Wh', 0, {type: 'number',name: 'Tag',min: 0,unit: 'Wh',read: true,write: true,role: 'per Script'}); createState('javascript.0.Status.Stromzähler.Tag.Bezogen_Zähler_alt', 0, {type: 'number',name: 'Tag',min: 0,unit: 'kWh',read: true,write: true,role: 'per Script'}); createState('javascript.0.Status.Stromzähler.Tag.Eingespeist_in_Wh', 0, {type: 'number',name: 'Tag',min: 0,unit: 'Wh',read: true,write: true,role: 'per Script'}); createState('javascript.0.Status.Stromzähler.Tag.Eingespeist_Zähler_alt', 0, {type: 'number',name: 'Tag',min: 0,unit: 'kWh',read: true,write: true,role: 'per Script'}); createState('javascript.0.Status.Stromzähler.Tag.Produziert_in_Wh', 0, {type: 'number',name: 'Tag',min: 0,unit: 'Wh',read: true,write: true,role: 'per Script'}); createState('javascript.0.Status.Stromzähler.Tag.Produziert_Zähler_alt', 0, {type: 'number',name: 'Tag',min: 0,unit: 'kWh',read: true,write: true,role: 'per Script'}); createState('javascript.0.Status.Stromzähler.Monat.Bezogen_in_Wh', 0, {type: 'number',name: 'Monat',min: 0,unit: 'Wh',read: true,write: true,role: 'per Script'}); createState('javascript.0.Status.Stromzähler.Monat.Bezogen_Zähler_alt', 0, {type: 'number',name: 'Monat',min: 0,unit: 'kWh',read: true,write: true,role: 'per Script'}); createState('javascript.0.Status.Stromzähler.Monat.Eingespeist_in_Wh', 0, {type: 'number',name: 'Monat',min: 0,unit: 'Wh',read: true,write: true,role: 'per Script'}); createState('javascript.0.Status.Stromzähler.Monat.Eingespeist_Zähler_alt', 0, {type: 'number',name: 'Monat',min: 0,unit: 'kWh',read: true,write: true,role: 'per Script'}); createState('javascript.0.Status.Stromzähler.Monat.Produziert_in_Wh', 0, {type: 'number',name: 'Monat',min: 0,unit: 'Wh',read: true,write: true,role: 'per Script'}); createState('javascript.0.Status.Stromzähler.Monat.Produziert_Zähler_alt', 0, {type: 'number',name: 'Monat',min: 0,unit: 'kWh',read: true,write: true,role: 'per Script'}); createState('javascript.0.Status.Stromzähler.Aktuell.Bezogen_in_W', 0, {type: 'number',name: 'Aktuell',min: 0,unit: 'W',read: true,write: true,role: 'per Script'}); createState('javascript.0.Status.Stromzähler.Aktuell.Eingespeist_in_W', 0, {type: 'number',name: 'Aktuell',min: 0,unit: 'W',read: true,write: true,role: 'per Script'}); createState('javascript.0.Status.Stromzähler.Aktuell.Produziert_in_W', 0, {type: 'number',name: 'Aktuell',min: 0,unit: 'W',read: true,write: true,role: 'per Script'}); createState('javascript.0.Status.Stromzähler.Jahr.Bezogen_in_W', 0, {type: 'number',name: 'Aktuell',min: 0,unit: 'W',read: true,write: true,role: 'per Script'}); createState('javascript.0.Status.Stromzähler.Jahr.Bezogen_Stand_Jahresanfang', 0, {type: 'number',name: 'Aktuell',min: 0,unit: 'kWh',read: true,write: true,role: 'per Script'}); createState('javascript.0.Status.Stromzähler.Jahr.Eingespeist_in_W', 0, {type: 'number',name: 'Aktuell',min: 0,unit: 'W',read: true,write: true,role: 'per Script'}); createState('javascript.0.Status.Stromzähler.Jahr.Eingespeist_Stand_Jahresanfang', 0, {type: 'number',name: 'Aktuell',min: 0,unit: 'kWh',read: true,write: true,role: 'per Script'}); createState('javascript.0.Status.Stromzähler.Jahr.Produziert_in_W', 0, {type: 'number',name: 'Aktuell',min: 0,unit: 'W',read: true,write: true,role: 'per Script'}); createState('javascript.0.Status.Stromzähler.Jahr.Produziert_Stand_Jahresanfang', 0, {type: 'number',name: 'Aktuell',min: 0,unit: 'kWh',read: true,write: true,role: 'per Script'}); createState('javascript.0.Status.Stromzähler.Jahr.Bezogen_Hochrechnung', 0, {type: 'number',name: 'Aktuell',min: 0,unit: 'kWh',read: true,write: true,role: 'per Script'}); createState('javascript.0.Status.Stromzähler.Jahr.Eingespeist_Hochrechnung', 0, {type: 'number',name: 'Aktuell',min: 0,unit: 'kWh',read: true,write: true,role: 'per Script'}); createState('javascript.0.Status.Stromzähler.Jahr.Produziert_Hochrechnung', 0, {type: 'number',name: 'Aktuell',min: 0,unit: 'kWh',read: true,write: true,role: 'per Script'});
Sieht dann bei den Objekten so aus:
Dann noch ein kleines Script geschrieben:
// Werte aus smartmeter auslesen und in Variablen schreiben var java = 'javascript.0.Status.Stromzähler'; var Stand_bezogen = "smartmeter.1.1-0:1_8_0*255.value"; // Zähler links 180 var Stand_eingespeist = "smartmeter.1.1-0:2_8_0*255.value"; // Zähler links 280 var Stand_produziert = "smartmeter.0.1-0:2_8_0*255.value"; // Zähler rechts 280 var Gesamtwirkleistung = "smartmeter.1.1-0:16_7_0*255.value"; // Zähler links Wirkleistung aktuell var Tag = "hm-rega.0.29681"; var Monat = "hm-rega.0.29682"; schedule("59 * * * *", function () { // jede Stunde Werte schreiben var akt_bezogen = parseInt(getState(Stand_bezogen).val * 1000); // dann in Wh var alt_bezogen = parseInt(getState(java + '.Stunde.Bezogen_Zähler_alt').val * 1000); setState(java + '.Stunde.Bezogen_in_Wh', akt_bezogen - alt_bezogen); setState(java + '.Stunde.Bezogen_Zähler_alt', akt_bezogen / 1000); var akt_eingespeist = parseInt(getState(Stand_eingespeist).val * 1000); var alt_eingespeist = parseInt(getState(java + '.Stunde.Eingespeist_Zähler_alt').val * 1000); setState(java + '.Stunde.Eingespeist_in_Wh', akt_eingespeist - alt_eingespeist); setState(java + '.Stunde.Eingespeist_Zähler_alt', akt_eingespeist / 1000); var akt_prod = parseInt(getState(Stand_produziert).val * 1000); var alt_prod = parseInt(getState(java + '.Stunde.Produziert_Zähler_alt').val * 1000); setState(java + '.Stunde.Produziert_in_Wh', akt_prod - alt_prod); setState(java + '.Stunde.Produziert_Zähler_alt', akt_prod / 1000); }); schedule("59 23 * * *", function () { // jeden Tag Werte schreiben var akt_bezogen = parseInt(getState(Stand_bezogen).val * 1000); var alt_bezogen = parseInt(getState(java + '.Tag.Bezogen_Zähler_alt').val * 1000); setState(java + '.Tag.Bezogen_in_Wh', akt_bezogen - alt_bezogen); setState(java + '.Tag.Bezogen_Zähler_alt', akt_bezogen / 1000); var akt_eingespeist = parseInt(getState(Stand_eingespeist).val * 1000); var alt_eingespeist = parseInt(getState(java + '.Tag.Eingespeist_Zähler_alt').val * 1000); setState(java + '.Tag.Eingespeist_in_Wh', akt_eingespeist - alt_eingespeist); setState(java + '.Tag.Eingespeist_Zähler_alt', akt_eingespeist / 1000); var akt_prod = parseInt(getState(Stand_produziert).val * 1000); var alt_prod = parseInt(getState(java + '.Tag.Produziert_Zähler_alt').val * 1000); setState(java + '.Tag.Produziert_in_Wh', akt_prod - alt_prod); setState(java + '.Tag.Produziert_Zähler_alt', akt_prod / 1000); }); schedule("0 0 1 * *", function () { // jeden Monat Werte schreiben var akt_bezogen = parseInt(getState(Stand_bezogen).val* 1000); var alt_bezogen = parseInt(getState(java + '.Monat.Bezogen_Zähler_alt').val * 1000); setState(java + '.Monat.Bezogen_in_Wh', akt_bezogen - alt_bezogen); setState(java + '.Monat.Bezogen_Zähler_alt', akt_bezogen / 1000); var akt_eingespeist = parseInt(getState(Stand_eingespeist).val * 1000); var alt_eingespeist = parseInt(getState(java + '.Monat.Eingespeist_Zähler_alt').val * 1000); setState(java + '.Monat.Eingespeist_in_Wh', akt_eingespeist - alt_eingespeist); setState(java + '.Monat.Eingespeist_Zähler_alt', akt_eingespeist / 1000); var akt_prod = parseInt(getState(Stand_produziert).val * 1000); var alt_prod = parseInt(getState(java + '.Monat.Produziert_Zähler_alt').val * 1000); setState(java + '.Monat.Produziert_in_Wh', akt_prod - alt_prod); setState(java + '.Monat.Produziert_Zähler_alt', akt_prod / 1000); }); // aktuelle Werte ----------------------------------------------------------------------------------------------------------------------------------------------- on({id: Stand_bezogen, change: "ne"}, function(obj) { // Wert hat sich geändert. setState('javascript.0.Status.Stromzähler.Aktuell.Bezogen_in_W', parseInt(obj.newState.val * 1000) - parseInt(obj.oldState.val * 1000)); setState('javascript.0.Status.Stromzähler.Jahr.Bezogen_in_W', parseInt(obj.newState.val * 1000) - parseInt(getState('javascript.0.Status.Stromzähler.Jahr.Bezogen_Stand_Jahresanfang').val * 1000)); }); on({id: Stand_eingespeist, change: "ne"}, function(obj) { // Wert hat sich geändert. setState('javascript.0.Status.Stromzähler.Aktuell.Eingespeist_in_W', parseInt(obj.newState.val * 1000) - parseInt(obj.oldState.val * 1000)); setState('javascript.0.Status.Stromzähler.Jahr.Eingespeist_in_W', parseInt(obj.newState.val * 1000) - parseInt(getState('javascript.0.Status.Stromzähler.Jahr.Eingespeist_Stand_Jahresanfang').val * 1000)); }); on({id: Stand_produziert, change: "ne"}, function(obj) { // Wert hat sich geändert. setState('javascript.0.Status.Stromzähler.Aktuell.Produziert_in_W', parseInt(obj.newState.val * 1000) - parseInt(obj.oldState.val * 1000)); setState('javascript.0.Status.Stromzähler.Jahr.Produziert_in_W', parseInt(obj.newState.val * 1000) - parseInt(getState('javascript.0.Status.Stromzähler.Jahr.Produziert_Stand_Jahresanfang').val * 1000)); }); // Hochrechnung auf Jahr ----------------------------------------------------------------------------------------------------------------------------------------- schedule("*/5 * * * *", function () { var Tage = getState(Tag).val + (getState(Monat).val-1) * 30; setState('javascript.0.Status.Stromzähler.Jahr.Bezogen_Hochrechnung', parseInt(getState('javascript.0.Status.Stromzähler.Jahr.Bezogen_in_W').val / Tage * 365 / 100) / 10); setState('javascript.0.Status.Stromzähler.Jahr.Eingespeist_Hochrechnung', parseInt(getState('javascript.0.Status.Stromzähler.Jahr.Eingespeist_in_W').val / Tage * 365 / 100) / 10); setState('javascript.0.Status.Stromzähler.Jahr.Produziert_Hochrechnung', parseInt(getState('javascript.0.Status.Stromzähler.Jahr.Produziert_in_W').val / Tage * 365 / 100) / 10); }); // am 31.12\. um 23:59 jeden Jahres Werte setzen ----------------------------------------------------------------------------------------------------------------------------------------- schedule("59 23 31 12 *", function () { // jeden Monat Werte schreiben setState('javascript.0.Status.Stromzähler.Jahr.Bezogen_Stand_Jahresanfang', parseInt(getState(Stand_bezogen).val)); setState('javascript.0.Status.Stromzähler.Jahr.Eingespeist_Stand_Jahresanfang', parseInt(getState(Stand_eingespeist).val)); setState('javascript.0.Status.Stromzähler.Jahr.Produziert_Stand_Jahresanfang', parseInt(getState(Stand_produziert).val)); });
Und eine VIS zusammengebastelt:
Nochmals Danke für die Hilfe; insbesondere apollon für den Adapter.
mfg
Dieter
-> nächstes Projekt - Wasserzähler
Mal schauen.
-
Hallo Dieter,
warum wertest du denn bei der Spülmaschine und Waschmaschine mA aus und nicht auch Watt, dann wäre das Ganze doch mehr konsistent.
bei mir sieht das so aus:
Mistwetter hierGruß
Rainer
-
Mistwetter hier `
Bei uns wars heute schöner!
Aber richtig perfekt waren die letzten Tage mit -10°C und ohne Wolken!
Enrico
-
weiß ich auch nicht so genau.
Habe schon immer bei Spülmaschine und Waschmaschine mA; muss mal überlegen vielleicht ändere ich das noch.
Kannst du mal deine view zur Verfügung stellen; deine widgets sehen super aus.
Kann man bestimmt davon was brauchen.
mfg
Dieter
-
Aber richtig perfekt waren die letzten Tage mit -10°C und ohne Wolken! `
korrekt! etwa so:
Aber ausgerechnet am kältesten Tag musste der Solarteur mit dem Dachdecker ran, weil die Kabel abgesoffen waren
und hier der View:
! ````
Hier ist nix - der war zu groß
kommt gleich als AnhangGruß Rainer
-
Bei uns waren die Nächte ja auch schön kalt, so bis zu -15°C, dass kann man an der Grafik erkennen, da geht die elektrische Fußbodenheizung (ca.1000W) immer wieder an. Dank Smartmeter-Adapter kann man alles schön auslesen!
Die Sollkurve des Sonnenstandes ist nicht so genau abgeglichen.
Enrico
-
-> nächstes Projekt - Wasserzähler
Mal schauen. `
Schau mal in ein paar Stunden ins "Tester-Forum" … da wären wir dann beim M-Bus Adapter der denke nachher noch neu kommt
-
Hallo zusammen,
ich habe meinen Smartmeter Adapter nun zum laufen bekommen. Leider bekomme ich aus meinem Zähler nur den aktuellen Zählerstand. Kann mir jemand behilflich sein, wie ich wenn ich alle 60s den Zählerstand abfrage mir daraus den Aktuellen Stromverbrauch errechnen kann? Ich habe leider mit Skripten keine Erfahrung oder Kenntnisse.
-
Berechnungen gibt es bereits einige hier im Forum.
Darf man fragen welchen Zähler du hast? Ich kann gar nicht glauben das nur der Zählerstand übermittelt wird.
-
Da die Suche bei mir aktuell nicht funktioniert und ich wie gesagt keine Ahnung habe wie Scripte aussehen müssen hatte ich hier gefragt. Die Sripte Sammlung für Verbrauch für Stunde, Tag, Woche läuft bei mir erfolgreich.
Ich habe einen Logarex Zähler. Die genaue Bezeichnung müsste ich zu Hause nochmal gucken. Aber laut Google Recherchen gibt er nur 1.8.0 aus.
1861_c50790a2-1248-4697-a27a-bd4021c87a09.png -
Hallo
Hätte da eine kurze Frage:
Ich bin mit meinem iobroker von meinem raspi auf einen Intel Nuc mit Windows 10 umgezogen, hat soweit alles prima geklappt. Beim smartmeter adapter hab ich aber ein kleines Problem bei dem ich gerade nicht weiter komme.
Udos IR Lesekopf hängt per USB am Nuc und läuft dort unter COM 3, wie wähle ich diesen im Adapter aus? Was gebe ich bei Name Serielles Gerät ein??
Hat jemand den Adapter in Windows laufen??
Bin für jede Hilfe Dankbar
Grüsse
Daniel
Gesendet von meinem LG-H870 mit Tapatalk
-
COM3 geht nicht?
-
Hi Ingo,
ich weiß das ich es schon mal gefragt hatte, kann aber den Beitrag nicht mehr finden :oops:
Im Admin 3.3.9 wird mir wenn ich hinter deinem Adapter das "?" Drücke folgendes angezeigt:
Da stimmt ja etwas nicht.
GitHub Issue bei dir oder im Admin machen?
Gruß
Mirko
-
Kommt bei den anderen adaptern die richtige Seite? Wenn nein dann admin, sonst bei mir
-
Ist mir bisher nur bei dem Smartmeter Adapter aufgefallen.
Ich öffne es mal bei dir
EDIT: ISSUE geöffnet: https://github.com/Apollon77/ioBroker.smartmeter/issues/11
-
Kommt bei den anderen adaptern die richtige Seite? Wenn nein dann admin, sonst bei mir `
Ist mir bisher nur bei dem Smartmeter Adapter aufgefallen.
Ich öffne es mal bei dir
EDIT: ISSUE geöffnet: https://github.com/Apollon77/ioBroker.smartmeter/issues/11 `
ist bei einigen Adaptern so aber nicht allen, der RWE z.b. hat das gleiche problem
-
Habe jetzt nur die Adapter probiert die ich auch nutze
Dabei ist mir nur der Smartmeter aufgefallen…. bisher.
-
Hallo zusammen,
das Forum hat mir schon viel geholfen aber nun bin auch ich an einem Punkt wo ich speziell bei diesem Adapter Hilfe gebrauchen könnte. Ich habe schon alles versucht und gesucht, habe aber so recht einen Weg erkennen können. Da ich noch neu hier bin, bitte nicht gleich zuschlagen…
Es geht bei mir um einen Smartmeter-Zähler COM-1 EEG der Firma Co.met. Das Teil ist ein Ethernet-Gateway an dem 2 Optoköpfe (einmal Haustrom einmal Wärmepumpe) angeschlossen sind. Das ganze lässt sich mit der mitgelieferten Software auf IP:5001 (TCP) abfragen. Ein manueller Connect mittels Putty (RAW, 192.168.x.y, Port 5001) bringt erstmal kein Ergebnis -> der Output bleibt leer. Ein Wireshark Trace bringt zu Tage, dass das Gateway dazu genötigt werden muss, den richtigen Port auszuspucken. Das geschieht per Senden eines Strings %send_id_x_y, wobei x und y vermutlich für den Kanal (als Optokopf 1 oder 2) bzw. den Bezugszähler stehen (HT/NT).
Das ganze sieht dann per Putty ungefähr so aus:
%send_id_1_0 <f ts="1523615119"><d id="0" proto="sml"><z n="0" zpb="000000000000000000000000000000000"><t enc="hex">1B1B1B1B010101017607000D180CE455620062007263010176010107000D0CE122C10B06454D4801027153E27A010163924C007607000D180CE456620062007263070177010B06454D4801027153E27A01726201650CE1630B7777078181C78203FF0101010104454D480177070100000009FF010101010B06454D4801027153E27A0177070100010800FF63018001621E52FF5600126247080177070100010801FF0101621E52FF5600087B93840177070100010802FF0101621E52FF560009E6B38401770701000F0700FF0101621B52FF550000028B0177078181C78205FF010101018302885508CD66A44B6EC44262B95A26DE03993E538132AD0895E03E604F01B376FE7600E8ADF29F1659955BDEDD4F72EF7C01010163FD1C007607000D180CE45762006200726302017101633FE600001B1B1B1B1A010CD8</z></d></f> %send_id_2_1 <f ts="1523615136"><d id="1" proto="sml"><z n="0" zpb="000000000000000000000000000000000"><t enc="hex">1B1B1B1B010101017607000D1C5AF269620062007263010176010107000D0CC8A6230B06454D4801027153E27E010163F600007607000D1C5AF26A620062007263070177010B06454D4801027153E27E01726201650CC829AF7777078181C78203FF0101010104454D480177070100000009FF010101010B06454D4801027153E27E0177070100010800FF63018201621E52FF5600095652890177070100010801FF0101621E52FF5600095652890177070100010802FF0101621E52FF56000000000001770701000F0700FF0101621B52FF550000050F0177078181C78205FF010101018302006A71837433A2E04E77EFC5E2DB14AAAED7DA4B13A5BEEBD97E7CACBF8222507ED101A5C9E070ABD5717BEDA47B2465010101635227007607000D1C5AF26D6200620072630201710163BBA700001B1B1B1B1A014B69</z></d></f> %send_id_2_2 <f ts="1523615243"><d id="1" proto="sml"><z n="0" zpb="000000000000000000000000000000000"><t enc="hex">1B1B1B1B010101017607000D1C5AF34D620062007263010176010107000D0CC8A66F0B06454D4801027153E27E0101631756007607000D1C5AF34E620062007263070177010B06454D4801027153E27E01726201650CC82A187777078181C78203FF0101010104454D480177070100000009FF010101010B06454D4801027153E27E0177070100010800FF63018201621E52FF5600095652AF0177070100010801FF0101621E52FF5600095652AF0177070100010802FF0101621E52FF56000000000001770701000F0700FF0101621B52FF55000005180177078181C78205FF010101018302006A71837433A2E04E77EFC5E2DB14AAAED7DA4B13A5BEEBD97E7CACBF8222507ED101A5C9E070ABD5717BEDA47B24650101016308D9007607000D1C5AF3516200620072630201710163DE5300001B1B1B1B1A012747</z></d></f> %send_id_1_1 <f ts="1523615274"><d id="0" proto="sml"><z n="0" zpb="000000000000000000000000000000000"><t enc="hex">1B1B1B1B010101017607000D180CE52D620062007263010176010107000D0CE123090B06454D4801027153E27A0101639E2E007607000D180CE52E620062007263070177010B06454D4801027153E27A01726201650CE163A47777078181C78203FF0101010104454D480177070100000009FF010101010B06454D4801027153E27A0177070100010800FF63018001621E52FF56001262471B0177070100010801FF0101621E52FF5600087B93970177070100010802FF0101621E52FF560009E6B38401770701000F0700FF0101621B52FF55000001990177078181C78205FF010101018302885508CD66A44B6EC44262B95A26DE03993E538132AD0895E03E604F01B376FE7600E8ADF29F1659955BDEDD4F72EF7C010101634BEA007607000D180CE52F62006200726302017101630A8100001B1B1B1B1A01A81A</z></d></f>
Dazu kommt "erschwerend" hinzu, dass er selbst in dem Fall die SML-Daten nicht nativ ausspuckt sondern noch mit herstellerspezifischem Overhead.
Seht ihr eine Chance das mit dem smartmeter-Adapter irgendwie zum fliegen zu bekommen?
Gruß,
VonDerTanne
-
Zwei Optionen. Wenn du ein paar mehr Infos zu diesem Protokoll und so findest kann man überlegen das als Protokoll einzubauen. Aber da würde ich gern verstehen was da genau so neben dem reinen Smog zurückkommt und was man genau sendet und was es bedeutet.
Zweite Option ist das du ein Skript baust was das abfragt und lokal als Datei ablegt. Der Adapter hat jetzt schon das file Protokoll wo das file dann regelmäßig gelesen werden könnte.
Noch weiter wäre es möglich das der Adapter eine Message unterstützt wo er von einem JavaScript einen sml String bekommt und den dann direkt verarbeitet. Dann müsstest du es vorher wieder in einem Skript lesen und auseinander nehmen.
Was darf es sein
Ingo
-
Hallo zusammen,
hat jemand einen Tipp für mich, was hier los ist?
smartmeter.0 2018-05-23 22:28:35.512 warn ERROR CLOSING SERIALPORT smartmeter.0 2018-05-23 22:28:35.508 warn Error while parsing SML message: Error: Unknown TL-Field 0x7-c for OctetString [Offset: 48]!: Message: 1b1b1b1b01010101760980000000036f159d620062007263010176010b3030323033323737310bffffffffffffffff24f
Danke und viele Grüße
Christian