NEWS
Altes Script für sonoff Bridge versagt den Dienst
-
Ich habe auf Proxmox umgestellt und bin ganz Glücklich damit.
Nur ein Script macht mir Probleme
var idJSON = 'mqtt.0.tele.Sonoff_Bridge.RESULT'/**/; // Datenpunkt-ID mit JSON-String var RFWert; function JSONtoRF(json) { var obj = JSON.parse(json); RFWert = obj.RfReceived.Data; var idJSON = 'mqtt.0.SENSOR'/**/; // Datenpunkt-ID mit JSON-String var idRFWert = 'mqtt.0.Data.Data'/**//*Data*/; setState(idRFWert, RFWert); } JSONtoRF(getState(idJSON).val); // Script start on(idJSON, function(dp) { // triggern bei Wertänderung JSONtoRF(dp.state.val); });
Es ist ein alltes Teil das ich gefunden habe vor jahren. Nun es soll den Empfangenen Wert im Datenpunkt Data anzeigen wenn etwas empfangen wird. Ich sehe auch das der Wert bei mqtt.0.tele.Sonoff_Bridge.RESULT' sich ändert, aber der Datenpunkt Data nicht mehr und ich bekomme folgendes Protokoll.
javascript.0
2023-03-07 21:32:34.433 error at Script.runInContext (node:vm:141:12)javascript.0
2023-03-07 21:32:34.432 error at script.js.Datenpunkt.Bridge_Datenpunkt:21:3javascript.0
2023-03-07 21:32:34.432 error at script.js.Datenpunkt.Bridge_Datenpunkt:12:1javascript.0
2023-03-07 21:32:34.432 error at JSONtoRF (script.js.Datenpunkt.Bridge_Datenpunkt:6:25)javascript.0
2023-03-07 21:32:34.432 error script.js.Datenpunkt.Bridge_Datenpunkt: TypeError: Cannot read properties of undefined (reading 'Data')javascript.0
2023-03-07 21:32:34.432 info script.js.Datenpunkt.Bridge_Datenpunkt: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptionsjavascript.0
2023-03-07 21:32:34.431 info script.js.Datenpunkt.Bridge_Datenpunkt: getState(id=mqtt.0.tele.Sonoff_Bridge.RESULT, timerId=undefined) => {"val":"{"Time":"2023-03-07T21:29:19","RfRaw":{"Data":"AAA42A4E0168042E10001455"}}","ack":true,"ts":1678220959910,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1678220959910}javascript.0
2023-03-07 21:32:34.429 info Start javascript script.js.Datenpunkt.Bridge_Datenpunktjavascript.0
2023-03-07 21:32:34.384 info Stop script script.js.Datenpunkt.Bridge_DatenpunktKann jemand helfen?
Gruß Buko
-
@buko sagte: "RfRaw":{"Data":"AAA42A4E0168042E10001455"}
Ändere mal Zeile 6 in
RFWert = obj.RfRaw.Data;
und lösche Zeile 7.
-
@paul53 sagte in Altes Script für sonoff Bridge versagt den Dienst:
RFWert = obj.RfRaw.Data;
var idJSON = 'mqtt.0.tele.Sonoff_Bridge.RESULT'; // Datenpunkt-ID mit JSON-String var RFWert; function JSONtoRF(json) { var obj = JSON.parse(json); //RFWert = obj.RfReceived.Data; RFWert = obj.RfRaw.Data; var idJSON = 'mqtt.0.SENSOR'; // Datenpunkt-ID mit JSON-String var idRFWert = 'mqtt.0.Data.Data'/*Data*/; setState(idRFWert, RFWert); } JSONtoRF(getState(idJSON).val); // Script start on(idJSON, function(dp) { // triggern bei Wertänderung JSONtoRF(dp.state.val); });
Keine besserung
javascript.0
2023-03-07 22:37:10.030 error at Script.runInContext (node:vm:141:12)javascript.0
2023-03-07 22:37:10.030 error at script.js.Datenpunkt.Bridge_Datenpunkt:23:3javascript.0
2023-03-07 22:37:10.030 error at script.js.Datenpunkt.Bridge_Datenpunkt:12:1javascript.0
2023-03-07 22:37:10.030 error at JSONtoRF (script.js.Datenpunkt.Bridge_Datenpunkt:7:20)javascript.0
2023-03-07 22:37:10.030 error script.js.Datenpunkt.Bridge_Datenpunkt: TypeError: Cannot read properties of undefined (reading 'Data')javascript.0
2023-03-07 22:37:10.029 info script.js.Datenpunkt.Bridge_Datenpunkt: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptionsjavascript.0
2023-03-07 22:37:10.029 info script.js.Datenpunkt.Bridge_Datenpunkt: getState(id=mqtt.0.tele.Sonoff_Bridge.RESULT, timerId=undefined) => {"val":"{"Time":"2023-03-07T22:35:14","RfReceived":{"Sync":10820,"Low":360,"High":1080,"Data":"100014","RfKey":"None"}}","ack":true,"ts":1678224914594,"q":0,"from":"system.adapter.mqtt.0","user":"system.user.admin","lc":1678224914594}javascript.0
2023-03-07 22:37:10.026 info Start javascript script.js.Datenpunkt.Bridge_Datenpunkt -
@buko sagte: "RfReceived":{"Sync":10820,"Low":360,"High":1080,"Data":"100014","RfKey":"None"}
Das JSON ändert sich. Welchen Wert möchtest Du haben? "100014" oder "AAA42A4E0168042E10001455"? Wenn den zu "RfReceived", dann ändere in
function JSONtoRF(json) { var obj = JSON.parse(json); if(obj.RfReceived) { RFWert = obj.RfReceived.Data; var idRFWert = 'mqtt.0.Data.Data'/**//*Data*/; setState(idRFWert, RFWert); } }
-
@paul53 sagte in Altes Script für sonoff Bridge versagt den Dienst:
100014
Ich möchte den Wert "100014" dort angezeigt bekommen. mit einem Zwieten Script wird der Wert verglichen und wenn der wert übereinstimmt erfolgt eine aktion!
-
Ich habe gerade was gelesen. Ich habe den Debug Modus an gehabt dann schreibt er nicht die Daten in Data so wie es aussieht, ich habe ihn aus gmacht nun schreibt er Ihn in den Datenpunkt.
Danke für den bemühen!