NEWS
Javascript Adapter V7
-
Ich nutze noch die Version 6.1.4. Mittlerweile ist die V7 ja im stable.
Als Breaking change steht dort: Breaking change: all usages of
jsonata
must be rewritten to use promises.Jetzt weiß ich nicht genau was mir das sagen will und wie ich meine Scripte anpassen muss damit die weiter laufen?
Ich habe z. B. ein Script wo ich das abfrage:
var data = JSON.parse(getState(id_iot_Homezone_Name).val); var motion = data.motion; var wifiSSID = data.wifiSSID
Läuft das Script noch oder muss ich was ändern?
Oder ein anders Beispiel:
//Pushover muss bestätigt werden if(pushover_acknowledged){ pushover_acknowledged = false; const axios = require('axios'); var URL = 'https://api.pushover.net/1/receipts/cancel_by_tag/'+pushover_tag +'.json'; axios({ method: 'post', url: URL, //headers: {'Content-Type':'application/x-www-form-urlencoded'} , data: { "token": 'ayp63m5oece58d86gdq1wwqy3try3i' }, timeout: 4500, responseType: 'json' }) .then((response) => { if(debugging){ log('data:' +JSON.stringify(response.data)); log('Status: ' +response.status); //log('Header:' +response.headers); } if(response.status = 200){ //Umwandeln in String var data_string = JSON.stringify(response.data) var data_split_1= data_string.split(","); var data_split_2= data_split_1[1].split(":"); var _result = parseInt(data_split_2[1],10); if(_result > 0){ log('Pushnachricht wurde automatisch bestätigt. --- Anzahl bestätigter Nachrichten: '+_result ); } else{ log('Pushnachricht konnte nicht bestätigt werden.' +data_string) } } else{ if(logging){ log('Es gibt ein Problem: ' +response.status,'warn'); } } }) .catch( (error) => { // handle error log('Es gibt einen Fehler: ' +error,'warn'); } ); }
Hier würde ich vermuten das es noch läuft?
Nächstes Beispiel:
//Schlafzimmer var Heizungsgruppe = 'INT0000001'; sendTo('hm-rpc.1', 'getParamset', {ID: Heizungsgruppe, paramType: 'MASTER'}, res => { if(debugging){ log('[DEBUG] '+JSON.stringify(res)); } if(logging){ if(res.error){ log('Something went wrong: ' + res.error.faultString, 'error'); } else{ setState(id_Wochenprogramm_Schlafzimmer,res.result.WEEK_PROGRAM_POINTER) Wochenprogramm_Schlafzimmer_Ist = res.result.WEEK_PROGRAM_POINTER; if(logging){ log('Aktuelles Wochenprogramm für das Schlafzimmer: '+res.result.WEEK_PROGRAM_POINTER) } } } }); Hier vermute ich das es nicht mehr läuft? Mehr Beispiele habe ich erstmal nicht. Das Problem ist halt das ich zwar mittlerweile für den Hausgebrauch Javascript schreiben kann aber was ein promise ist habe ich zwar gelesen aber nicht verstanden.
-
@cash
Deine Skripte sollten funktionieren, da kein Jsonata verwendet wurde. -
@paul53 was ist denn jsonata? Ich dachte das wäre irgendwas mit json Daten?
Im Netzt finde ich dazu:
JSONata ist eine leistungsstarke Daten-Transformations-Sprache, die zum Transformieren und Abfragen von JSON-Daten verwendet wird. Sie bietet eine einfache, aber flexible Syntax zum Filtern und Transformieren von Daten im JSON-Format.
-
@cash sagte: JSONata ist eine leistungsstarke Daten-Transformations-Sprache
..., in die man sich erst einmal einarbeiten muss, um sie nutzen zu können.