NEWS
SOLVED Datenpunkte werden nicht geschrieben, warum???
-
Hallo, hier mal mein script:
//trigger uf state change des MQTT eingangs und lese werte in variable z.b. channel, state, device bei mir //variabele erstellen fuer meine 3 beispiel objecte var Aleistung; var Egesamt; var verbrauch; //der try ist wichtig das der adapter nicht abschmiert bei einem fehler, hiermit pasen wird die json in ein object try {var obj = JSON.parse(getState('mqtt.0.tele.DruckerGesamt.SENSOR').val); } catch (e) { log('Cannot parse: ' + getState('mqtt.0.tele.DruckerGesamt.SENSOR').val); return; } //hier schreien wir die daten des json strings in die variabelen, links die variable und rechts der name im json. obj bedeuten halt lese den wert nach : // bei dir waere das z.b. obj.time / obj.yesterday usw Aleistung = obj.ENERGY.Power; log( obj.Time); //var versuc = log(obj.ENERGY); log(obj.ENERGY.Total); log(obj.ENERGY.Power); log("_________") /* createState("javascript.0.DruckerEnergie.Energieverbrauch"); createState("javascript.0.DruckerEnergie.Aktuelle Leistung",{name: "AktuelleLeistung",type: state, read: true,write: true,role: variable}); createState("javascript.0.DruckerEnergie.Energieverbrauch",{type: state, name: "Verbrauch heute", read: true,write: true,role: 'value'}); createState("javascript.0.DruckerEnergie.Energieverbrauch2",{type: state, name: "Verbrauch gestern", read: true,write: true,role: 'value'}); createState("javascript.0.DruckerEnergie.Energieverbrauch3",{type: state, name: "Verbrauch Geeeesamt", read: true,write: true,role: 'value'}); */ //device = obj.Today; setState("javascript.0.DruckerEnergie.Aktuelle Leistung", Aleistung); //jetzt lass uns mal im log zeigen was wir bekommen haben //log(channel); //log(device); //log(state); ;
sieht noch etwas kaotisch aus aber bin noch am Basteln.
dieser Script wird getrigert von einem weiteren Datenpunkt den ich nur zum testen angelegt hab. Über einen Blockly Script wird dieser script hier aufgerufen wenn der Datenpunkt zum testen sich ändert wird dieser Script ausgeführt und sollte eigentlich den obj.ENERGY.Power Wert über SetState() schreiben.
Tut er aber nicht, sondern der Wert taucht nur über den log() befehl im Log auf.
Ich hatte erst das Objekt direkt in den getState() reingeschrieben was aber auch nicht funktioniert hat. Gestern Abend hat der Script noch ein absolutes chaos im Log verursacht. Heute morgen nach dem Neustart von ioBroker war wenigstens dieses Chaos weg.
Was mach ich hier falsch????
MfG FritzHier übrigens mal der komplette Code mit Blockly:
/** * Beschreibe diese Funktion … */ function auslesen() { //trigger uf state change des MQTT eingangs und lese werte in variable z.b. channel, state, device bei mir //variabele erstellen fuer meine 3 beispiel objecte var Aleistung; var Egesamt; var verbrauch; //der try ist wichtig das der adapter nicht abschmiert bei einem fehler, hiermit pasen wird die json in ein object try {var obj = JSON.parse(getState('mqtt.0.tele.DruckerGesamt.SENSOR').val); } catch (e) { log('Cannot parse: ' + getState('mqtt.0.tele.DruckerGesamt.SENSOR').val); return; } //hier schreien wir die daten des json strings in die variabelen, links die variable und rechts der name im json. obj bedeuten halt lese den wert nach : // bei dir waere das z.b. obj.time / obj.yesterday usw Aleistung = obj.ENERGY.Power; log( obj.Time); //var versuc = log(obj.ENERGY); log(obj.ENERGY.Total); log(obj.ENERGY.Power); log("_________") /* createState("javascript.0.DruckerEnergie.Energieverbrauch"); createState("javascript.0.DruckerEnergie.Aktuelle Leistung",{name: "AktuelleLeistung",type: state, read: true,write: true,role: variable}); createState("javascript.0.DruckerEnergie.Energieverbrauch",{type: state, name: "Verbrauch heute", read: true,write: true,role: 'value'}); createState("javascript.0.DruckerEnergie.Energieverbrauch2",{type: state, name: "Verbrauch gestern", read: true,write: true,role: 'value'}); createState("javascript.0.DruckerEnergie.Energieverbrauch3",{type: state, name: "Verbrauch Geeeesamt", read: true,write: true,role: 'value'}); */ //device = obj.Today; setState("javascript.0.DruckerEnergie.Aktuelle Leistung", Aleistung); //jetzt lass uns mal im log zeigen was wir bekommen haben //log(channel); //log(device); //log(state); ; } on({id: 'javascript.0.testpunkt', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; auslesen(); }); //JTNDeG1sJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4aHRtbCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm9uX2V4dCUyMiUyMGlkJTNEJTIyJTJGOFJCTkE3XyUzRilRdjIzS2Jfc3JDJTIyJTIweCUzRCUyMjExMyUyMiUyMHklM0QlMjI2MyUyMiUzRSUzQ211dGF0aW9uJTIwaXRlbXMlM0QlMjIxJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDT05ESVRJT04lMjIlM0VuZSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQUNLX0NPTkRJVElPTiUyMiUzRSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyT0lEMCUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJmaWVsZF9vaWQlMjIlMjBpZCUzRCUyMnRqJTYwNTJnJTJGbTlzQ1R2Z3IlNUV6VzF1JTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyb2lkJTIyJTNFamF2YXNjcmlwdC4wLnRlc3RwdW5rdCUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDJTJGdmFsdWUlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyU1RBVEVNRU5UJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIycHJvY2VkdXJlc19jYWxsY3VzdG9tbm9yZXR1cm4lMjIlMjBpZCUzRCUyMn44JTIzaCUyQjdoJTdCbW8qNkxZJTJGRGJvLnklMjIlM0UlM0NtdXRhdGlvbiUyMG5hbWUlM0QlMjJhdXNsZXNlbiUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0MlMkZibG9jayUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnByb2NlZHVyZXNfZGVmY3VzdG9tbm9yZXR1cm4lMjIlMjBpZCUzRCUyMjNTVjdLJTVEJTNBNHdsdX4lN0IlN0NFZSUyNEI5JTJCJTIyJTIweCUzRCUyMjQ4OCUyMiUyMHklM0QlMjIxNjMlMjIlM0UlM0NtdXRhdGlvbiUyMHN0YXRlbWVudHMlM0QlMjJmYWxzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTkFNRSUyMiUzRWF1c2xlc2VuJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJTQ1JJUFQlMjIlM0VMeTkwY21sbloyVnlJSFZtSUhOMFlYUmxJR05vWVc1blpTQmtaWE1nVFZGVVZDQmxhVzVuWVc1bmN5QjFibVFnYkdWelpTQjNaWEowWlNCcGJpQjJZWEpwWVdKc1pTQjZMbUl1SUdOb1lXNXVaV3dzSUhOMFlYUmxMQ0JrWlhacFkyVWdZbVZwSUcxcGNnb0tDZ29nQ2dvSkx5OTJZWEpwWVdKbGJHVWdaWEp6ZEdWc2JHVnVJR1oxWlhJZ2JXVnBibVVnTXlCaVpXbHpjR2xsYkNCdlltcGxZM1JsQ2dvZ0lDQWdJQ0FnSUhaaGNpQkJiR1ZwYzNSMWJtYzdDZ29nSUNBZ0lDQWdJSFpoY2lCRloyVnpZVzEwT3lBZ0Nnb2dJQ0FnSUNBZ0lIWmhjaUIyWlhKaWNtRjFZMmc3SUFvS0lBb0tDUzh2WkdWeUlIUnllU0JwYzNRZ2QybGphSFJwWnlCa1lYTWdaR1Z5SUdGa1lYQjBaWElnYm1samFIUWdZV0p6WTJodGFXVnlkQ0JpWldrZ1pXbHVaVzBnWm1Wb2JHVnlMQ0JvYVdWeWJXbDBJSEJoYzJWdUlIZHBjbVFnWkdsbElHcHpiMjRnYVc0Z1pXbHVJRzlpYW1WamRBb0tDWFJ5ZVNCN2RtRnlJRzlpYWlBOUlFcFRUMDR1Y0dGeWMyVW9aMlYwVTNSaGRHVW9KMjF4ZEhRdU1DNTBaV3hsTGtSeWRXTnJaWEpIWlhOaGJYUXVVMFZPVTA5U0p5a3VkbUZzS1RzS0lDQWdJQ0FnSUFvSmZTQmpZWFJqYUNBb1pTa2dld29LSUNBZ0lDQWdJQ0FKYkc5bktDZERZVzV1YjNRZ2NHRnljMlU2SUNjZ0t5Qm5aWFJUZEdGMFpTZ25iWEYwZEM0d0xuUmxiR1V1UkhKMVkydGxja2RsYzJGdGRDNVRSVTVUVDFJbktTNTJZV3dwT3dvS0lDQWdJQ0FnSUNBSmNtVjBkWEp1T3dvS0lBbDlDZ29nQ1M4dmFHbGxjaUJ6WTJoeVpXbGxiaUIzYVhJZ1pHbGxJR1JoZEdWdUlHUmxjeUJxYzI5dUlITjBjbWx1WjNNZ2FXNGdaR2xsSUhaaGNtbGhZbVZzWlc0c0lHeHBibXR6SUdScFpTQjJZWEpwWVdKc1pTQjFibVFnY21WamFIUnpJR1JsY2lCdVlXMWxJR2x0SUdwemIyNHVJRzlpYWlCaVpXUmxkWFJsYmlCb1lXeDBJR3hsYzJVZ1pHVnVJSGRsY25RZ2JtRmphQ0E2Q2dvZ0NTOHZJR0psYVNCa2FYSWdkMkZsY21VZ1pHRnpJSG91WWk0Z2IySnFMblJwYldVZ0x5QnZZbW91ZVdWemRHVnlaR0Y1SUhWemR3b2dRV3hsYVhOMGRXNW5JRDBnYjJKcUxrVk9SVkpIV1M1UWIzZGxjanNLYkc5bktDQnZZbW91VkdsdFpTazdDaTh2ZG1GeUlIWmxjbk4xWXlBOUNnbHNiMmNvYjJKcUxrVk9SVkpIV1NrN0NpQWdJQ0JzYjJjb2IySnFMa1ZPUlZKSFdTNVViM1JoYkNrN0NpQWdJQ0JzYjJjb2IySnFMa1ZPUlZKSFdTNVFiM2RsY2lrN0NpQWdJQ0JzYjJjb0lsOWZYMTlmWDE5Zlh5SXBDaThxQ21OeVpXRjBaVk4wWVhSbEtDSnFZWFpoYzJOeWFYQjBMakF1UkhKMVkydGxja1Z1WlhKbmFXVXVSVzVsY21kcFpYWmxjbUp5WVhWamFDSXBPd3BqY21WaGRHVlRkR0YwWlNnaWFtRjJZWE5qY21sd2RDNHdMa1J5ZFdOclpYSkZibVZ5WjJsbExrRnJkSFZsYkd4bElFeGxhWE4wZFc1bklpeDdibUZ0WlRvZ0lrRnJkSFZsYkd4bFRHVnBjM1IxYm1jaUxIUjVjR1U2SUhOMFlYUmxMQ0J5WldGa09pQjBjblZsTEhkeWFYUmxPaUIwY25WbExISnZiR1U2SUhaaGNtbGhZbXhsZlNrN0NtTnlaV0YwWlZOMFlYUmxLQ0pxWVhaaGMyTnlhWEIwTGpBdVJISjFZMnRsY2tWdVpYSm5hV1V1Ulc1bGNtZHBaWFpsY21KeVlYVmphQ0lzZTNSNWNHVTZJSE4wWVhSbExDQnVZVzFsT2lBaVZtVnlZbkpoZFdOb0lHaGxkWFJsSWl3Z2NtVmhaRG9nZEhKMVpTeDNjbWwwWlRvZ2RISjFaU3h5YjJ4bE9pQW5kbUZzZFdVbmZTazdDbU55WldGMFpWTjBZWFJsS0NKcVlYWmhjMk55YVhCMExqQXVSSEoxWTJ0bGNrVnVaWEpuYVdVdVJXNWxjbWRwWlhabGNtSnlZWFZqYURJaUxIdDBlWEJsT2lCemRHRjBaU3dnYm1GdFpUb2dJbFpsY21KeVlYVmphQ0JuWlhOMFpYSnVJaXdnY21WaFpEb2dkSEoxWlN4M2NtbDBaVG9nZEhKMVpTeHliMnhsT2lBbmRtRnNkV1VuZlNrN0NtTnlaV0YwWlZOMFlYUmxLQ0pxWVhaaGMyTnlhWEIwTGpBdVJISjFZMnRsY2tWdVpYSm5hV1V1Ulc1bGNtZHBaWFpsY21KeVlYVmphRE1pTEh0MGVYQmxPaUJ6ZEdGMFpTd2dibUZ0WlRvZ0lsWmxjbUp5WVhWamFDQkhaV1ZsWlhOaGJYUWlMQ0J5WldGa09pQjBjblZsTEhkeWFYUmxPaUIwY25WbExISnZiR1U2SUNkMllXeDFaU2Q5S1RzS0tpOEtDUzh2WkdWMmFXTmxJRDBnYjJKcUxsUnZaR0Y1T3dvS0lITmxkRk4wWVhSbEtDSnFZWFpoYzJOeWFYQjBMakF1UkhKMVkydGxja1Z1WlhKbmFXVXVRV3QwZFdWc2JHVWdUR1ZwYzNSMWJtY2lMQ0JCYkdWcGMzUjFibWNwT3dvS0NTOHZhbVYwZW5RZ2JHRnpjeUIxYm5NZ2JXRnNJR2x0SUd4dlp5QjZaV2xuWlc0Z2QyRnpJSGRwY2lCaVpXdHZiVzFsYmlCb1lXSmxiZ29LQ1M4dmJHOW5LR05vWVc1dVpXd3BPd29LQ1M4dmJHOW5LR1JsZG1salpTazdDZ29KTHk5c2IyY29jM1JoZEdVcE93b0tPdyUzRCUzRCUzQyUyRmZpZWxkJTNFJTNDY29tbWVudCUyMHBpbm5lZCUzRCUyMmZhbHNlJTIyJTIwaCUzRCUyMjgwJTIyJTIwdyUzRCUyMjE2MCUyMiUzRUJlc2NocmVpYmUlMjBkaWVzZSUyMEZ1bmt0aW9uJTIwJUUyJTgwJUE2JTNDJTJGY29tbWVudCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGeG1sJTNF
-
Danke!!!! Jetzt funktionierts!
Puhhhh, gibts da ne deutsche Seite wo man sowas mal nachlesen kann?
Danke erst mal für die Hilfe!!!!!!!!
MfG Fritz -
Hey,
werden die Datenpunkte denn angelegt oder wird nur der Wert nicht gesetzt?
Ich kann es gerade nicht test, aber ich glaube, dass das Leerzeichen beim State ein Problem sein kann.
-
ja, die Datenpunkte werden angelegt (wurden) deshalb hab ich die auch erst mal auskommentiert.
Ich hab sie jetzt mal bei den Objekten gelöscht und die Kommentare aus dem Script wieder entzfernt.
Die leerzeichen hab ich auch mal rausgenommen, aber ich glaube nicht das duie was mit dem Fehler zu tun haben.
Jetzt kommt ein Fehler in folgender Zeile:createState("javascript.0.DruckerEnergie.AktuelleLeistung",{name: "AktuelleLeistung",type: state, read: true,write: true,role: 'variable'});
Im Log steht: at auslesen (script.js.common.test:45:96)
das ist die aufgeführte Zeile. (96 ist so etwa bei 'type: state')
Keine Ahnung was da falsch sein soll?
Mfg Fritz -
-
Danke!!!! Jetzt funktionierts!
Puhhhh, gibts da ne deutsche Seite wo man sowas mal nachlesen kann?
Danke erst mal für die Hilfe!!!!!!!!
MfG Fritz -
@kleinfritzchen es gibt eine Doku für Entwickler wo das festgehlaten ist, die ist ins Deutsche Übersetzt.
Da das Eingangsthema erledigt ist Schließe ich hier.