NEWS
Übersetzungsdictionary für states Namen des b-control Adapters
-
Hallo Zusammen,
im Rahmen des Umprogrammierens des b-control Adapters stehe ich vor dem Problem, dass die Abfrage aus dem Zählerregister des Gerätes folgendes Ergebnis liefert.
wenn ich daraus nun die States anlege, haben diese bspw. den Namen "1-0:1.8.0*255". Nicht so richtig selbsterklärend wie ich meineDabei handelt es sich um eine sog. OBIS-Kennzahl für Strom, die man hier nachlesen kann.
Daher meine Frage:-
Könnte man diese "obis-dictionary.txt" dem Adapter als Datei mitgeben und dann im weiteren bei der Erstellung der States dahinein verweisen (Name, unit, englische Übersetzung)?
-
Ist das überhaupt eine gute Idee, oder sollte man dieses Array besser direkt in die Main.js einbauen?
Fürs bessere Verständnis hier noch die Main.js. Diese gilt es nun um die "neuen States" aus der consumption Abfrage zu erweitern Die o.a. "consumption id0.txt" ist das Ergebnis der Abfrage des b-control Devices mit der meter_id=0.
Bitte diese Anfrage nicht falsch verstehen. Ich mache das (javascript-Programmierung) hier zum ersten mal. Ich möchte nicht, dass mir jemand eine fertige Lösung baut, sondern ich benötige einfach die Erfahrung derjenigen, die das schon mal gemacht haben bzw. Erfahrungen in Bezug auf Performance oder/und Praktikabilität haben.
Schonmal jetzt herzlichen Dank für jeden Beitrag / Idee dazu.
-
-
Hallo
Ich denke, es wäre das Beste dieses Dictionary dem Adapter als Datei mitzugeben.
Das Auslesen sollte dann ungefähr so gehen
var obisDict=JSON.parse(require('fs').readFileSync('/opt/iobroker/iobroker-data/private/obisdictionary.json').toString()); Kennzahl = '1-0:1.8.0*255'; while(obisDict.length>0){ Tupel=obisDict.pop(); if(Tupel.State==Kennzahl){ log(Tupel.NameDe); //setze States etc. } }
Dabei musst Du natürlich ggf. noch den Pfad zur Datei anpassen. Die Datei hab ich Dir mal in JSON formatiert:
Natürlich ist obiger Code nicht getestet. Aber wenn Du schon Adapter schreibst dann solltest Du auch aus meinen bescheidenen JS-Kenntnissen was machen können.Ich habe so was in der Form jedenfalls erfolgreich im Einsatz um den prozentualen Füllstand meines Regenwassertanks in die nicht linear davon abhängige Füllmenge umzurechnen.
Hoffe gehelft zu haben
Viele Grüße
Thilo
-
Hallo Thisoft,
genau das ist es, nach was ich gesucht habe!! Herzlichen Dank für das Beispiel. Da ich ja an der hoffentlich dann für alle einsetzbaren Version eines neuen b-control Adapters arbeite, werde ich Deine json-Formatierte Version der OBIS Kennzahlen in den entsprechenden Adapterordner legen, sodass dann alle darauf zugreifen können.
Jetzt werde ich mich mal an die Zusammenführung der json Antwort aus dem Gerät mit den Informationen aus dem OBIS.json machen. Mal sehen wie das klappt.
Herzlichen Dank auf jeden Fall dafür!
Ich werde hier weiter berichten.