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. Verständnis parser Adapter und Script

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.3k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.3k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.6k

Verständnis parser Adapter und Script

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
7 Beiträge 2 Kommentatoren 415 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.
  • F Offline
    F Offline
    f0rd42
    schrieb am zuletzt editiert von
    #1

    Hi

    Ich habe hier glaube ich ein Verständnis Problem in Bezug auf den Parser Adapter und ein dazu passenden Script.

    Ich kann hier eine Pumpensteuerung per json auslesen. Ergebnis:

    {"modultyp":"wiffi-pump","vars":[{"name":"0","homematic_name":"wiffi_pump_ip","desc":"ip des wiffi-pump","type":"string","unit":"","value":"192.168.119.28"},{"name":"4","homematic_name":"wiffi_ntc","desc":"Temperatur_NTC","type":"number","unit":"%","value":22.54},{"name":"2","homematic_name":"wiffi_ww_temp","desc":"Temperatur_A","type":"number","unit":"gradC","value":21.3},{"name":"3","homematic_name":"wiffi_vorlauftemp","desc":"Temperatur_B","type":"number","unit":"gradC","value":21.6},{"name":"1","homematic_name":"wiffi_pump","desc":"Zirkulationspumpe","type":"boolean","unit":"","value":false}],"Systeminfo":{"MAC-Adresse":"91:b:47:e3:50:cc","Homematic_CCU_ip":"192.168.119.27","WLAN_ssid":"LAN-Solo","WLAN_Signal_dBm":-37,"sec_seit_reset":1610,"zeitpunkt":"2019-01-23 15:22:55","firmware":"wiffi_pump2_90"}}
    

    Dazu habe ich viewtopic.php?f=21&t=13812&hilit=wiffipump auch ein passendes Script gefunden, welches bei mir nun so aussieht:

    var idJson = "parser.0.WiffiPump";
    var state1 = "javascript.0.WiffiPump.T1";
    var state2 = "javascript.0.WiffiPump.T2"; 
    var state3 = "javascript.0.WiffiPump.T3"; 
    var state4 = "javascript.0.WiffiPump.On"; 
    
    createState(state1, {name: "T1", unit: "°C"});
    createState(state2, {name: "T2", unit: "°C"});
    createState(state3, {name: "T3", unit: "°C"});
    createState(state4, {name: "On",});
    
    function werteAuslesen(jsonStr) {
        var myJson = JSON.parse(jsonStr);
        var T1 = myJson.vars[1].value;
        var T2 = myJson.vars[2].value;
        var T3 = myJson.vars[3].value;
        var On = myJson.vars[4].value;
        log("wiffiPumpT1: " + T1 + "°C");
        log("wiffiPumpT2: " + T2 + "°C");
        log("wiffiPumpT3: " + T3 + "°C");
        log("wiffiPumpOn: " + On);
        setState(state1, T1); 
        setState(state2, T2); 
        setState(state3, T3);
        setState(state4, On);
    }
    
    on({id:idJson,change:'ne'}, function (obj) {
        werteAuslesen(obj.state.val);
    });
    
    

    Soweit, so gut. Jedoch bin ich mir ziemlich sicher, dass ich dazu im Parser auch noch etwas konfigurieren muss ;) , einfach nur den Adapter installieren reicht ja nicht …..

    Kann mir da jemand von Euch auf die Sprünge helfen? Ich habe die Frage auch im o.g. Thread schon gepostet, aber man weiss ja, wie das ist mit den alten Threads .....

    PS: Die Variablen werden in den Objekten unter javascript.0.WiffiPump auch angelegt (macht ja das script), aber nicht mit "Leben" gefüllt.

    1 Antwort Letzte Antwort
    0
    • Lenny.CBL Online
      Lenny.CBL Online
      Lenny.CB
      Most Active
      schrieb am zuletzt editiert von
      #2

      @f0rd42:

      {"modultyp":"wiffi-pump","vars":[{"name":"0","homematic_name":"wiffi_pump_ip","desc":"ip des wiffi-pump","type":"string","unit":"","value":"192.168.119.28"},{"name":"4","homematic_name":"wiffi_ntc","desc":"Temperatur_NTC","type":"number","unit":"%","value":22.54},{"name":"2","homematic_name":"wiffi_ww_temp","desc":"Temperatur_A","type":"number","unit":"gradC","value":21.3},{"name":"3","homematic_name":"wiffi_vorlauftemp","desc":"Temperatur_B","type":"number","unit":"gradC","value":21.6},{"name":"1","homematic_name":"wiffi_pump","desc":"Zirkulationspumpe","type":"boolean","unit":"","value":false}],"Systeminfo":{"MAC-Adresse":"91:b:47:e3:50:cc","Homematic_CCU_ip":"192.168.119.27","WLAN_ssid":"LAN-Solo","WLAN_Signal_dBm":-37,"sec_seit_reset":1610,"zeitpunkt":"2019-01-23 15:22:55","firmware":"wiffi_pump2_90"}}
      ```` `  
      

      wo liegt dein JSON?

      sollte hier sein:

      "parser.0.WiffiPump"
      

      probier mal:

      `var idJson = getState("parser.0.WiffiPump").val;
      
      function werteAuslesen() {
          var myJson = JSON.parse(idJson);
      
          for (i=0; i<(myJson.vars.length); i++){
              log(myJson.vars[i].homematic_name + ": " + myJson.vars[i].value);
          }
      }
      
      on({id: 'javascript.0.WiffiPump.json', change: "ne"}, function (obj) {
          werteAuslesen();
      });`[/i][/i]
      
      1 Antwort Letzte Antwort
      0
      • F Offline
        F Offline
        f0rd42
        schrieb am zuletzt editiert von
        #3

        Hi Lenny

        ja, liegt da, aber was genau konfiguriere ich im Parser.0.WiffiPump?

        ~~![](</s><URL url=)https://cdn.pbrd.co/images/HXNgDYW.png" />

        bin mir ziemlich sicher, dass meine Konfiguration falsch ist und dort einiges fehlt …...~~

        1 Antwort Letzte Antwort
        0
        • Lenny.CBL Online
          Lenny.CBL Online
          Lenny.CB
          Most Active
          schrieb am zuletzt editiert von
          #4

          Ich arbeite nicht mit dem parse-Adapter. Aber müsste da nicht nen Intervall angegeben werden? Der Typ müsste auch "string" sein, denke ich.

          1 Antwort Letzte Antwort
          0
          • F Offline
            F Offline
            f0rd42
            schrieb am zuletzt editiert von
            #5

            @Lenny.CB:

            Ich arbeite nicht mit dem parse-Adapter. Aber müsste da nicht nen Intervall angegeben werden? Der Typ müsste auch "string" sein, denke ich. `

            Das war es … Typ String ..... mal wieder zu kompliziert gedacht, ich dachte ich müsste für jeden Wert eine RegEx anlegen ....

            Danke

            1 Antwort Letzte Antwort
            0
            • Lenny.CBL Online
              Lenny.CBL Online
              Lenny.CB
              Most Active
              schrieb am zuletzt editiert von
              #6

              @f0rd42:

              @Lenny.CB:

              Ich arbeite nicht mit dem parse-Adapter. Aber müsste da nicht nen Intervall angegeben werden? Der Typ müsste auch "string" sein, denke ich. `

              Das war es … Typ String ..... mal wieder zu kompliziert gedacht, ich dachte ich müsste für jeden Wert eine RegEx anlegen ....

              Danke `
              super, du kannst die Daten auch im Script holen. Den Parser brauchst dann nicht. Sind 2 Zeilen mehr im Script.

              Im Grunde fragt der Parser-Adapter im eingestellten Intervall die eingestellte IP ab und speichert das json. Mit dem Script triggertst du auf Änderung des Datenpunkt.

              Das hier sollte das Gleiche tun, ohne Parse-Adapter (kanns leider nicht testen):```
              `var request = require('request');
              var url = 'http://192.168.119.28/json';

              function abfrage() {
              request(url, function (error, response, body) {
              myJson = JSON.parse(body);
              });
              for (i=0; i<(myJson.vars.length); i++){
              log(myJson.vars[i].homematic_name + ": " + myJson.vars[i].value);
              // hier noch die setState Sachen rein...
              // setState('javascript.0.WiffiPump.' + myJson.vars[i].homematic_name, myJson.vars[i].value, true);
              }
              }
              schedule("*/1 * * * *", abfrage);
              abfrage();` Im Grunde fragt der Parser-Adapter im eingestellten Intervall die eingestellte IP ab und speichert das json. Mit dem Script triggertst du auf Änderung des Datenpunkt.

              Das kannst auch in dem Script zusammen machen.[/i][/i][/i][/i]

              1 Antwort Letzte Antwort
              0
              • F Offline
                F Offline
                f0rd42
                schrieb am zuletzt editiert von
                #7

                cool, danke!

                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

                722

                Online

                32.5k

                Benutzer

                81.7k

                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