Test mit aktivem USB Hub bringt dasselbe Ergebnis und Fehlermeldungen im Log.
Noch ein Hinweis, der mich etwas wundert. In Minicom kommen laufend neue Daten von ttyUSB0. Nach Beenden von Minicom, kommen mit````
cat ttyUSB0
Test mit aktivem USB Hub bringt dasselbe Ergebnis und Fehlermeldungen im Log.
Noch ein Hinweis, der mich etwas wundert. In Minicom kommen laufend neue Daten von ttyUSB0. Nach Beenden von Minicom, kommen mit````
cat ttyUSB0
Einstellungen wieder wie gestern gepostet:
Logfile im Anhang.
Mit aktivem USB Hub dazwischen teste ich dann noch.
Werte werden sporadisch korrekt eingelesen. Bei SML die Datenübertragung auf Standard Protokoll zu stellen bringt keine Verbesserung.
Mit der Option "D0" Protokoll kommt nur die Fehlermeldung im Log: "Error: No or too long answer from Serial Device after last request."
USB Lesekopf ist direkt an einem RasPi3 USB Port verbunden, ohne aktive USB Verlängerung, Kabel ca. 2m.
EasyMeter Q3B
Minicom ist beendet.
Smartmeter Adapter Einstellungen:
Hallo,
ich betreibe den Smartmeter Adapter auch mit einem USB IR Lesekopf. Mit Minicom kann der erfolgreiche Datenempfang geprüft werden. Leider funktionert der Smartmeter Adapter aber nicht und im Log gibt es die folgende Fehlermeldung:
undefined2018-12-28 11:51:57.249 - info: smartmeter.0 Error: Error while parsing SML message: Error: Wrong TL-Field 0x00 for Choice!: Message: 1b1b1b1b0101010176059c72b1b56200620072650000010176010107455112510100090101055101000000000000004000100068083872b1b66200620072650000070177010b09014553591195a20701726201650823aeed7a77078100810401940100004000222040408000373939310177070100010800ff0101621e52fc69000000141b054329010100020800ff0101621e52fc6900000019e0ba06ea0177070100010801ff0101621e520165000000840177070100010802ff0101621e520165000d2ca20177070100020801ff0101621e520165000000750177070100020802ff0101621e00070177010b0901455359110395a207ff0101621e52fc69000000141b054329b3c10177070100600505ff010101016302a001010163ac0e0076059c72b1bd620062007265000002017101636abb00001b1b1b1b1a01814e
2018-12-28 11:51:57.253 - warn: smartmeter.0 Error while parsing SML message: Error: Wrong TL-Field 0x00 for Choice!: Message: 1b1b1b1b0101010176059c72b1b56200620072650000010176010107455112510100090101055101000000000000004000100068083872b1b66200620072650000070177010b09014553591195a20701726201650823aeed7a77078100810401940100004000222040408000373939310177070100010800ff0101621e52fc69000000141b054329010100020800ff0101621e52fc6900000019e0ba06ea0177070100010801ff0101621e520165000000840177070100010802ff0101621e520165000d2ca20177070100020801ff0101621e520165000000750177070100020802ff0101621e00070177010b0901455359110395a207ff0101621e52fc69000000141b054329b3c10177070100600505ff010101016302a001010163ac0e0076059c72b1bd620062007265000002017101636abb00001b1b1b1b1a01814e
2018-12-28 11:51:57.270 - error: smartmeter.0 uncaught exception: Cannot read property 'logger' of undefined
2018-12-28 11:51:57.270 - error: smartmeter.0 TypeError: Cannot read property 'logger' of undefined
at SerialPort. (/opt/iobroker/node_modules/smartmeter-obis/lib/transports/SerialResponseTransport.js:223:30)
at SerialPort._error (/opt/iobroker/node_modules/serialport/lib/serialport.js:199:14)
at process.nextTick (/opt/iobroker/node_modules/serialport/lib/serialport.js:206:31)
at _combinedTickCallback (internal/process/next_tick.js:132:7)
at process._tickCallback (internal/process/next_tick.js:181:9)
2018-12-28 11:51:57.273 - warn: smartmeter.0 Exception: TypeError: Cannot read property 'logger' of undefined
2018-12-28 11:51:57.276 - info: smartmeter.0 ERROR CLOSING SERIALPORT
2018-12-28 11:51:57.276 - info: smartmeter.0 ERROR CLOSING SERIALPORT
2018-12-28 11:51:57.778 - info: smartmeter.0 terminating
2018-12-28 11:51:57.833 - error: Caught by controller[0]: TypeError: Cannot read property 'logger' of undefined
2018-12-28 11:51:57.835 - error: Caught by controller[0]: at SerialPort. (/opt/iobroker/node_modules/smartmeter-obis/lib/transports/SerialResponseTransport.js:223:30)
2018-12-28 11:51:57.835 - error: Caught by controller[0]: at SerialPort._error (/opt/iobroker/node_modules/serialport/lib/serialport.js:199:14)
2018-12-28 11:51:57.835 - error: Caught by controller[0]: at process.nextTick (/opt/iobroker/node_modules/serialport/lib/serialport.js:206:31)
2018-12-28 11:51:57.836 - error: Caught by controller[0]: at _combinedTickCallback (internal/process/next_tick.js:132:7)
2018-12-28 11:51:57.836 - error: Caught by controller[0]: at process._tickCallback (internal/process/next_tick.js:181:9)
2018-12-28 11:51:57.836 - error: host.raspberrypi instance system.adapter.smartmeter.0 terminated with code 0 (OK)
2018-12-28 11:51:57.837 - info: host.raspberrypi Restart adapter system.adapter.smartmeter.0 because enabled
2018-12-28 11:52:27.858 - info: host.raspberrypi instance system.adapter.smartmeter.0 started with pid 2019
2018-12-28 11:52:29.863 - info: smartmeter.0 starting. Version 1.2.1 in /opt/iobroker/node_modules/iobroker.smartmeter, node: v8.12.0
Vielen Dank im Voraus für eure Hilfe.
VG Ronny
Edit: Logfile bitte in Code Tags Posten
Hallo
danke für die schnelle Antwort. Das Script funktioniert soweit und gibt die Temperatur in °C das Objekt "tempC" zurück.
Besteht die Möglichkeit den Temperaturwert auf 1 Nachkommastelle zu runden, z.B. 20.1°C?
Im Cloud Adapter wird das Objekt "tempC" unterschiedlich zu dem Objekt aus FHEM (ursprünglicher Wert in Kelvin) erkannt, dadurch kann der Wert mit Alexa nicht abgefragt werden. Wie kann hier die Geräteart geändert werden, vgl. Bild im Anhang.
Danke im Voraus!
MfG Ronny
4404_cloud_adapter_temperatur.png
Hallo zusammen,
ich bin Neuling bei ioBroker und auch mit Javascript.
Folgende Problemstellung:
Mein Somy IO Temperatursensor, den ich über FHEM in ioBroker eingebunden habe liefert den Temperaturwert nur in °K. Ich möchte diesen nun also per Javascript in °C umrechnen und in ein neues Objekt zurückschreiben um diesen dann per Alexa abfragen zu können.
Auslesen mit JS funktioniert:
var tempK = getState("fhem.0.tahoma_11319490.TemperatureState");
Mit createState kann ich auch einen neuen State anlegen:
createState('tempC', 1, {name: 'WohnzimmerTemp', unit: '°C'});
Würde nun gerne bei Änderung des Temperaturwertes das Script starten und den °C Wert in den neue State schreiben und verwende hierzu "on"
__// On change
//on('fhem.0.tahoma_11319490.TemperatureState', function (obj) {__
Die Funktion setState funktioniert leider auch noch nicht:
setState('tempC', getState("fhem.0.tahoma_11319490.TemperatureState")-273, true/ack/);
Kann mir hier jemand dazu helfen?
Vielen Dank!