Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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. ioBroker Allgemein
  4. WIFFI-WZ

NEWS

  • Neues YouTube-Video: Visualisierung im Devices-Adapter
    BluefoxB
    Bluefox
    11
    1
    526

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    1.9k

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    11
    1
    854

WIFFI-WZ

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
javascriptadapter
33 Beiträge 3 Kommentatoren 981 Aufrufe 1 Beobachtet
  • Ä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.
  • paul53P paul53

    @homoran
    Mache die Änderung in Zeile 45 wieder rückgängig: Ich habe übersehen, dass das Parsen in der Funktion parseJson(text) erfolgt.

    HomoranH Nicht stören
    HomoranH Nicht stören
    Homoran
    Global Moderator Administrators
    schrieb am zuletzt editiert von
    #24

    @paul53
    Danke - json sah auch im online-viewer sauber aus ;-)
    Hab es rückgängig gemacht jetzt ist der Fehler bei "name" 20 und 21 wieder da

    kein Support per PN! - Fragen im Forum stellen -
    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
    Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

    1 Antwort Letzte Antwort
    0
    • HomoranH Homoran

      @klassisch sagte in WIFFI-WZ:

      keine Einheit. Sollte zumindest nicht stören.

      das ist korrekt, aber bei homematic_name steht auch nur ""
      und das fehlt dann hier: dPname = pfad + myJson.vars[i].homematic_name;

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

      @homoran
      Ergänze im Skript eine Abfrage (Zeile 49 ff):

                  if(myJson.vars[i].homematic_name) {
                     dPname = pfad + myJson.vars[i].homematic_name;
                     init = myJson.vars[i].value;
                     setState(dPname, init,"true");
                  }
      

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB

      HomoranH 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @homoran
        Ergänze im Skript eine Abfrage (Zeile 49 ff):

                    if(myJson.vars[i].homematic_name) {
                       dPname = pfad + myJson.vars[i].homematic_name;
                       init = myJson.vars[i].value;
                       setState(dPname, init,"true");
                    }
        
        HomoranH Nicht stören
        HomoranH Nicht stören
        Homoran
        Global Moderator Administrators
        schrieb am zuletzt editiert von Homoran
        #26

        @paul53 sagte:

        Zeile 49 ff

        Also mitten in das for (18..52)?

        Hatte ich gemacht und "true"-> true geändert - blieb bei dem Fehler

        EDIT:
        Firmware 106 ist anscheinend die neueste

        kein Support per PN! - Fragen im Forum stellen -
        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
        Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
        der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

        paul53P 1 Antwort Letzte Antwort
        0
        • HomoranH Homoran

          @paul53 sagte:

          Zeile 49 ff

          Also mitten in das for (18..52)?

          Hatte ich gemacht und "true"-> true geändert - blieb bei dem Fehler

          EDIT:
          Firmware 106 ist anscheinend die neueste

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

          @homoran sagte: Also mitten in das for

          Ja, Ersatz für Zeilen 49-51.
          Blendet den Leerstring für homematic_name aus.

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB

          HomoranH 2 Antworten Letzte Antwort
          0
          • paul53P paul53

            @homoran sagte: Also mitten in das for

            Ja, Ersatz für Zeilen 49-51.
            Blendet den Leerstring für homematic_name aus.

            HomoranH Nicht stören
            HomoranH Nicht stören
            Homoran
            Global Moderator Administrators
            schrieb am zuletzt editiert von
            #28

            @paul53

            Blendet den Leerstring für homematic_name aus.

            Das hatte ich gedacht
            abe r ich hatte es zusätzlich drin

            kein Support per PN! - Fragen im Forum stellen -
            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
            Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
            der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

            1 Antwort Letzte Antwort
            0
            • paul53P paul53

              @homoran sagte: Also mitten in das for

              Ja, Ersatz für Zeilen 49-51.
              Blendet den Leerstring für homematic_name aus.

              HomoranH Nicht stören
              HomoranH Nicht stören
              Homoran
              Global Moderator Administrators
              schrieb am zuletzt editiert von
              #29

              @paul53

              sieht jetzt so aus:

              var myJson = json;
                          var dPname, init;
                          var anzahlVars = myJson.vars.length;
                          for (var i = 1; i < anzahlVars; i++) {
                              if(myJson.vars[i].homematic_name) {
                             dPname = pfad + myJson.vars[i].homematic_name;
                             init = myJson.vars[i].value;
                             setState(dPname, init,true);
                          }
                          }
                          for (var sys....
              

              Der Error ist weg, jetzt kommt noch ein WARN, aber nur im großen log :-(

              javascript.1
              2021-12-30 20:16:30.411	warn	Cannot set object "javascript.1.WIFFI.": Error: The id "javascript.1.WIFFI." is invalid. Ids are not allowed to end in "."
              
              javascript.1
              2021-12-30 20:16:30.410	warn	Cannot set object "javascript.1.WIFFI.": Error: The id "javascript.1.WIFFI." is invalid. Ids are not allowed to end in "."
              

              wie es scheint aber nur einmalig beim Skriptstart

              DANKE

              kein Support per PN! - Fragen im Forum stellen -
              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
              Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
              der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

              paul53P 1 Antwort Letzte Antwort
              0
              • HomoranH Homoran

                @paul53

                sieht jetzt so aus:

                var myJson = json;
                            var dPname, init;
                            var anzahlVars = myJson.vars.length;
                            for (var i = 1; i < anzahlVars; i++) {
                                if(myJson.vars[i].homematic_name) {
                               dPname = pfad + myJson.vars[i].homematic_name;
                               init = myJson.vars[i].value;
                               setState(dPname, init,true);
                            }
                            }
                            for (var sys....
                

                Der Error ist weg, jetzt kommt noch ein WARN, aber nur im großen log :-(

                javascript.1
                2021-12-30 20:16:30.411	warn	Cannot set object "javascript.1.WIFFI.": Error: The id "javascript.1.WIFFI." is invalid. Ids are not allowed to end in "."
                
                javascript.1
                2021-12-30 20:16:30.410	warn	Cannot set object "javascript.1.WIFFI.": Error: The id "javascript.1.WIFFI." is invalid. Ids are not allowed to end in "."
                

                wie es scheint aber nur einmalig beim Skriptstart

                DANKE

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

                @homoran sagte: nur einmalig beim Skriptstart

                Ändere

                   var forceCreation = false;
                

                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB

                HomoranH 1 Antwort Letzte Antwort
                0
                • paul53P paul53

                  @homoran sagte: nur einmalig beim Skriptstart

                  Ändere

                     var forceCreation = false;
                  
                  HomoranH Nicht stören
                  HomoranH Nicht stören
                  Homoran
                  Global Moderator Administrators
                  schrieb am zuletzt editiert von Homoran
                  #31

                  @paul53 sagte:

                  Ändere

                  Zeile 83? (jetzt)

                  function createDpFromJson(myJson) {
                      var dPname = "";
                      var name = "";
                      var forceCreation = false;
                      var common;
                      var init;
                      var type, desc, unit;
                      var anzahlVars = myJson.vars.length;
                      for (var i = 1; i < anzahlVars; i++) {
                          dPname = pfad + myJson.vars[i].homematic_name;
                  

                  Hier Zeile 4

                  kam trotzdem wieder, und auch die DPs wurden neu angelegt (??) zumindest laut log "neuer Datenpunkt"

                  Hab inzwischen auch den Wiffi-Adapter ans laufen bekommen, da sind Fehler in der Doku, und dort gibt es genau die selben Fehlermeldungen beim Erststart
                  Da scheint das Skript unter der Haube zu stecken

                  kein Support per PN! - Fragen im Forum stellen -
                  Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                  Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
                  der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                  paul53P 1 Antwort Letzte Antwort
                  0
                  • HomoranH Homoran

                    @paul53 sagte:

                    Ändere

                    Zeile 83? (jetzt)

                    function createDpFromJson(myJson) {
                        var dPname = "";
                        var name = "";
                        var forceCreation = false;
                        var common;
                        var init;
                        var type, desc, unit;
                        var anzahlVars = myJson.vars.length;
                        for (var i = 1; i < anzahlVars; i++) {
                            dPname = pfad + myJson.vars[i].homematic_name;
                    

                    Hier Zeile 4

                    kam trotzdem wieder, und auch die DPs wurden neu angelegt (??) zumindest laut log "neuer Datenpunkt"

                    Hab inzwischen auch den Wiffi-Adapter ans laufen bekommen, da sind Fehler in der Doku, und dort gibt es genau die selben Fehlermeldungen beim Erststart
                    Da scheint das Skript unter der Haube zu stecken

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

                    @homoran sagte: die DPs wurden neu angelegt (??) zumindest laut log "neuer Datenpunkt"

                    Der Log (Zeile 99) wird immer ausgegeben.

                    @homoran sagte in WIFFI-WZ:

                    kam trotzdem wieder

                    Dann erweitere Zeile 97 um eine Abfrage:

                           if(myJson.vars[i].homematic_name) createState(dPname, init , forceCreation, common);
                    

                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                    Produktiv: Asus PN 42 / N100 / 8 GB / 500 GB

                    HomoranH 1 Antwort Letzte Antwort
                    0
                    • paul53P paul53

                      @homoran sagte: die DPs wurden neu angelegt (??) zumindest laut log "neuer Datenpunkt"

                      Der Log (Zeile 99) wird immer ausgegeben.

                      @homoran sagte in WIFFI-WZ:

                      kam trotzdem wieder

                      Dann erweitere Zeile 97 um eine Abfrage:

                             if(myJson.vars[i].homematic_name) createState(dPname, init , forceCreation, common);
                      
                      HomoranH Nicht stören
                      HomoranH Nicht stören
                      Homoran
                      Global Moderator Administrators
                      schrieb am zuletzt editiert von Homoran
                      #33

                      @paul53

                      Wenn ich es richtig gemacht habe

                      var request = require("request");
                      
                      var pfad    = "WIFFI" + ".";
                      var url     = 'http://192.168.138.57/?json:';
                      
                      
                      
                      // TODO:
                      //
                      
                      
                      function timeLastData() {
                         return formatDate(new Date(), "DD.MM, hh:mm:ss");
                      }
                      
                      function parseJson(text) {
                         if (text === "") return {};
                         try {
                             json = JSON.parse(text);
                         } catch (ex) {
                             json = {};
                         }
                         if(!json) json = {};
                         return json;
                      }
                      
                      function readJson(url, callback) {
                         request(url, function (err, state, body){
                             if (body) {
                                 var json = parseJson(body);
                                 callback(null, json);
                             } else {
                                 var error = "(" + err + ") ERROR bei Abfrage von: " + url;
                                 log(error, "warn");  
                                 callback(error, null);
                             }
                         });
                      }
                      
                      
                      
                      function readVars() {
                         readJson(url, function(err,json) {
                             if(!err) {
                                 var myJson = json;
                                 var dPname, init;
                                 var anzahlVars = myJson.vars.length;
                                 for (var i = 1; i < anzahlVars; i++) {
                                     if(myJson.vars[i].homematic_name) {
                                    dPname = pfad + myJson.vars[i].homematic_name;
                                    init = myJson.vars[i].value;
                                    setState(dPname, init,true);
                                 }
                                 }
                                 for (var systeminfo in myJson.Systeminfo) {
                                     dPname = pfad + "Systeminfo." + systeminfo;
                                     init = myJson.Systeminfo[systeminfo];
                                     setState(dPname, init ,true);
                                 }
                                 setState(pfad + "LetzteAbfrage",timeLastData(),true);
                                 var statusNe = getState(pfad + "Last_State_Count").val;
                                 if (statusNe < 0) {
                                     setState(pfad + "Last_State_Count",0,true);
                                 } else {
                                     setState(pfad + "Last_State_Count",statusNe + 1,true);
                                 }
                                 log("WIFFI Daten aktualisiert: " + url,"debug");
                             } else {
                                 log("Fehler beim Auslesen des JSON. Keine Daten erhalten.","warn");
                                 if (statusNe > 0) {
                                     setState(pfad + "Last_State_Count",0,true);
                                 } else {
                                     setState(pfad + "Last_State_Count",statusNe - 1,true);
                                 }
                             }
                         });
                      }
                      
                      
                      function createDpFromJson(myJson) {
                         var dPname = "";
                         var name = "";
                         var forceCreation = false;
                         var common;
                         var init;
                         var type, desc, unit;
                         var anzahlVars = myJson.vars.length;
                         for (var i = 1; i < anzahlVars; i++) {
                             dPname = pfad + myJson.vars[i].homematic_name;
                             init = myJson.vars[i].value;
                             type = myJson.vars[i].type;
                             desc = myJson.vars[i].desc;
                             name = desc;
                             unit = myJson.vars[i].unit.replace('grad','°');
                             common = '{"desc":"' + desc + '","type":"' + type + '","unit":"' + unit + '","role":"value"' +',"name":"' + name + '"}'; 
                             common = JSON.parse(common);
                             //createState(dPname, init , forceCreation, common);
                             if(myJson.vars[i].homematic_name) createState(dPname, init , forceCreation, common);
                             //createState(dPname, init);
                             log("neuer Datenpunkt: " + dPname + ": " + init +", common: " + common,"info");
                         }
                         for (var systeminfo in myJson.Systeminfo) {
                             dPname = pfad + "Systeminfo." + systeminfo;
                             init = myJson.Systeminfo[systeminfo];
                             common = '{"name":"'+systeminfo+'","desc":"'+systeminfo+'","role":"value"}';
                             common = JSON.parse(common);
                             log("neuer Datenpunkt: " + dPname + ": " + init +", common: " + common,"info");
                             createState(dPname, init , forceCreation, common);
                         }
                         createState(pfad + "System.Modultyp",myJson.modultyp);
                         createState(pfad + "System.url",url.replace("json:","xpert:0:"));
                         createState(pfad + "Last_State_Count",0,true);
                         createState(pfad + "LetzteAbfrage"  ,timeLastData());
                         createState(pfad + "Skriptstart"    ,timeLastData()),true;
                         createState(pfad + "Control_GetData",false,true,        {"name":"Daten mit true manuell abrufen","type":"boolean","role":"value"});
                      }
                      
                      
                      
                      function createDp() {
                         readJson(url, function (err,json) {
                             if(!err) {
                                 var myJson = json;
                                 createDpFromJson(myJson);
                                 log("WIFFI Datenpunkte angelegt/aktualisiert");
                             } else {
                                 log("Fehler beim Auslesen des JSON. Keine Daten erhalten.","error");
                                 log("Keine Datenpunkte angelegt. Skript beendet","error");
                                 return;
                             }
                         });
                      }
                      
                      function createOn() {
                         var dpId = "javascript." + instance + "." + pfad + "Control_GetData"; 
                         on({id: dpId ,change:'any'}, function (obj) {
                             log(obj.state.val,"warn");
                             if(obj.state.val) {
                                 readVars();
                             }
                         });
                      
                         schedule("*/4 * * * *", function () { // alle 4 Minute die Werte abfragen
                             readVars();
                         });
                      
                      }
                      
                      
                      function main() {
                         readVars();
                      }
                      
                      
                      // Skriptstart
                      
                      createDp();
                      setTimeout(createOn,    3000);
                      setTimeout(main,        3000);
                      
                      

                      alte #97 auskommentiert und deinen Vorschlag eingefügt
                      war es das

                      kein Support per PN! - Fragen im Forum stellen -
                      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                      Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
                      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                      1 Antwort Letzte Antwort
                      0

                      Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                      Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                      Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                      Registrieren Anmelden
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate
                      FAQ Cloud / IOT
                      HowTo: Node.js-Update
                      HowTo: Backup/Restore
                      Downloads
                      BLOG

                      532

                      Online

                      32.9k

                      Benutzer

                      83.0k

                      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