Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Javascript Adapter V7

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.3k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    957

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Javascript Adapter V7

Geplant Angeheftet Gesperrt Verschoben JavaScript
4 Beiträge 2 Kommentatoren 348 Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • cashC Offline
    cashC Offline
    cash
    Most Active
    schrieb am zuletzt editiert von
    #1

    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.
    paul53P 1 Antwort Letzte Antwort
    0
    • cashC cash

      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.
      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2

      @cash
      Deine Skripte sollten funktionieren, da kein Jsonata verwendet wurde.

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      cashC 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @cash
        Deine Skripte sollten funktionieren, da kein Jsonata verwendet wurde.

        cashC Offline
        cashC Offline
        cash
        Most Active
        schrieb am zuletzt editiert von
        #3

        @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.

        paul53P 1 Antwort Letzte Antwort
        0
        • cashC cash

          @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.

          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von paul53
          #4

          @cash sagte: JSONata ist eine leistungsstarke Daten-Transformations-Sprache

          ..., in die man sich erst einmal einarbeiten muss, um sie nutzen zu können.

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          1 Antwort Letzte Antwort
          0
          Antworten
          • In einem neuen Thema antworten
          Anmelden zum Antworten
          • Älteste zuerst
          • Neuste zuerst
          • Meiste Stimmen


          Support us

          ioBroker
          Community Adapters
          Donate

          324

          Online

          32.6k

          Benutzer

          82.2k

          Themen

          1.3m

          Beiträge
          Community
          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
          ioBroker Community 2014-2025
          logo
          • Anmelden

          • Du hast noch kein Konto? Registrieren

          • Anmelden oder registrieren, um zu suchen
          • Erster Beitrag
            Letzter Beitrag
          0
          • Home
          • Aktuell
          • Tags
          • Ungelesen 0
          • Kategorien
          • Unreplied
          • Beliebt
          • GitHub
          • Docu
          • Hilfe