NEWS
Smart Meter von Netz Oö (Energie AG)
-
@alealdata
OK kann ich machen, aber es kommt ja beim USB-IR Kopf gar nichts raus.
Zumindest der unverschlüsselte Key müsste ausgegeben werden, weil dieser bis zum Schnittstellen-Node kommt.
Leider kann ich im Sub-Flow kein Injection-Note einfügen weil die Bearbeitung der Sub-Flows gesperrt ist. -
@manuel001 läuft bei mir mittlerweile per NodeRed innerhalb vom IOBroker - bei mir war nur ein Reboot erforderlich nach dem Anpassen der "settings.js" in /opt/iobroker/node_modules/iobroker.node-red
Hört sich vielleicht komisch an aber ist der Lesekopf richtig drauf - bei meinem Weidmann ist der USB Anschluss unten.Hatte unterschiedliche Node Versionen - @Thomas-Braun danke für deine Anleitung
hoobs@hoobs:~ $ which nodejs node npm && nodejs -v && node -v && npm -v && apt p olicy nodejs /usr/bin/nodejs /usr/bin/node /usr/bin/npm v14.17.0 v14.17.0 6.14.13 nodejs: Installed: 14.17.0-1nodesource1 Candidate: 14.17.0-1nodesource1 Version table: *** 14.17.0-1nodesource1 500 500 https://deb.nodesource.com/node_14.x buster/main armhf Packages 100 /var/lib/dpkg/status 10.24.0~dfsg-1~deb10u1 500 500 http://mirrors.ocf.berkeley.edu/raspbian/raspbian buster/main armhf Packages hoobs@hoobs:~ $
aes hat sich in meinem Fall hier eingenistet
/home/hoobs/node_modules/aes-js
-
@alealdata
Hmm, reboot habe ich sicherheitshalber nach der Änderung gleich durchgeführt.
Ja Lesekopf habe ich mit allen Ausrichtungen getestet.
Wobei das Problem ist, dass gar nichts ausgegeben wird. -
@manuel001 kannst du hier mal schauen
hoobs@hoobs:~ $ npm list aes-js /home/hoobs └── aes-js@3.1.2 hoobs@hoobs:~ $
-
pi@iobroker:~ $ npm list aes-js /home/pi └── aes-js@3.1.2 pi@iobroker:~ $
-
Ich glaube es nicht, es funktioniert.
Absolut nichts geändert zu gestern (auch kein reboot) und jetzt funktioniert es.
Danke! -
@manuel001 cool freut mich
-
@manuel001 Servus, ich hätte noch eine Frage zu deinem Lesekopf. Welchen verwendest du? Welche werden hier von den meisten generell verwendet? Ich verwende einen Raspberry für den ioBroker. Danke!
-
@tomturbo-0
Ich verwende den Lesekopf von Hichi. (Über ein Forum daran gekommen)
Aber im Prinzip sollten eh alle gehen wenn die Wellenlänge der IR Dioden passt.
Bei mir läuft es über einen Raspi 2. -
@tomturbo-0 Weidmann Lesekopf vom großen Axxxxx
-
@manuel001 @alealdata Alles klar danke euch!
-
Seit dem Update (Node.js, Adapter) funktioniert leider das AMIS Script nicht mehr:
Das ist das das entsprechende Node:let aesjs = context.global.get('aesjs'); let tmp = msg.payload; msg.received_telegram = aesjs.utils.hex.fromBytes(msg.payload); if((tmp[0]==0x68)&&(tmp[1]==0x5f)&&(tmp[2]==0x5f)&&(tmp[3]==0x68)&&(tmp[5]==0xf0)&&(tmp[6]==0x5b)&&(tmp[100]==0x16)){ //node.warn("Daten-Telegramm: RX[" + msg.received_telegram.length + "] " + msg.received_telegram); return [msg,null,null]; } else if((tmp[0]==0x10)&&(tmp[1]==0x40)&&(tmp[2]==0xf0)&&(tmp[3]==0x30)&&(tmp[4]==0x16)){ node.warn("Such-Telegramm: RX[" + msg.received_telegram.length + "] " + msg.received_telegram); return [null,msg,null]; } else { node.warn("Unbekanntes Telegramm: RX[" + msg.received_telegram.length + "] " + msg.received_telegram); return [null,null,msg]; }
Irgend jemand eine Idee?
Es liegt vermutlich am Update vom JavaScipt Adapter. Da ab es auch den Hinweis bezüglich "breaking change bei den Objekttypen object und array".
Was das im konkreten Fall bedeutet, weiß ich aber nicht. -
Ich habe es jetzt eingrenzen können. Es liegt nicht am JavaScipt Adapter, sondern am Node-red Adapter.
Sobald ich von 1.17.2 update (egal ob auf 2.0.3 oder die aktuellste Version), tritt das Problem auf.
Kann man irgendwie wieder auf 1.17.2 downgraden. Bei der Auswahlliste beginnt es erst ab 2.0.2,
Wobei 2.0.2 nicht gefunden wird, deshalb habe ich es mit 2.0.3 probiert. -
@manuel001 Ich glaube nicht ,dass das mit der NodeRed Funktion zu tun hat.
Zu einem wo hast Du aes-js nicht richtig eingebunden hast.
- In welchem Verzeichnis hast Du das aes-js installiert?
- Hast Du die richtige settings.js modifiziert?
Das was ich bis jetzt gelesen habe - ist in meinen Augen alles nicht richtig.
Deine function Node ist auch nicht OK.
Richte Dich mal an die offizielle Doku - wenn Du Hilfe brauchst dann können wir das gerne nochmal Step für Step durchgehen:
https://flows.nodered.org/flow/195773d3b493d81c9bf012f64da02ea3Wer sowas schreibt: let aesjs = context.global.get('aesjs');
hat eigentlich keine Ahnung was er macht. context ist der Node-Kontext und nicht der globale Kontext - entweder das eine oder das andere - und deshalb hier der globale Kontext, aber nur wenn das modul richtig installiert ist und das Modul richtig in der settings.js verfügbar macht - nicht in module.exports - das kannst alles wieder rückgängig machen.
-
@mickym sagte in Smart Meter von Netz Oö (Energie AG):
Hast Du die richtige settings.js modifiziert?
Das war diese: /opt/ioBroker/node_modules/iobroker.node-red/settings.js
Ich hätte jetzt versucht diese mit nano zu öffnen, aber da werden nur leere Zielen angezeigt. (Die Datei gibt es aber)
Mache ich was falsch?aes-js wurde so installiert:
pi@iobroker:~ $ cd /opt/iobroker/ pi@iobroker:/opt/iobroker $ install aes-js install: Fehlender Zieldatei‐Operand hinter 'aes-js' „install --help“ liefert weitere Informationen. pi@iobroker:/opt/iobroker $ npm install aes-js
Laut Anleitung sollte man zuerst mit cd .node-red ins node-red directory wechseln.
Muss man da schon in einem bestimmten Verzeichnis sein? Unter pi@iobroker:~ $ geht das nicht. -
@manuel001 Das Node-Red verzeichnis unter dem iobroker musst Du auswählen, ausserdem würde ich es unter der iobroker Kennung installieren.
- aes-js Installation
sudo -su iobroker cd /opt/iobroker/iobroker-data/node-red npm install aes-js
- für die settings-js hast Du halt was falsch angegeben
cd /opt/iobroker/node_modules/iobroker.node-red sudo nano settings.js
Ich weiß nicht was Du unter module-exports gemacht hast - aber ggf. wieder zurück ändern (oder Node-Red Adapter neu installieren oder updaten) und gemäß Anleitung aus dem Link in den Block (ganz am Ende) functionGlobalContext.
Dort trägst Du als erste Zeile dann ein:
functionGlobalContext: { aesjs: require('aes-js')
Dann Node-Red Instanz neu starten.
Beachte: Nach jeder Neuinstallation oder Update des Node-Red Adapters müssen diese Änderungen immer wieder gemacht werden, da bei einem Adapter-Update diese settings.js immer mit einer Standversion überschrieben wird.- In Deiner function Node änderst Du Deine erste Zeile wie folgt:
let aesjs = global.get('aesjs');
Wenn es dann immer noch nicht funktioniert, dann kann ich Dir auch nicht helfen. Zumindest sollte nun der Fehler utils of undefined nicht mehr kommen.
-
@mickym
Vielen Dank! Jetzt funktioniert es wieder.