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. Blockly
  5. [Gelöst] Diverse Werte aus einem Objekt auslesen

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    324

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.5k

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

[Gelöst] Diverse Werte aus einem Objekt auslesen

Geplant Angeheftet Gesperrt Verschoben Blockly
ventilation
57 Beiträge 7 Kommentatoren 18.5k Aufrufe 7 Watching
  • Ä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.
  • ChaotC Chaot

    @smile Vielleicht hilft dir das Script das ich für meine Heizungsüberwachung verwende.
    Ich erhalte als Datenpunkt eine JSON (wie scheinbar du auch).
    der sieht im Original so aus:

    {"heatingActive":"0","tapwaterActive":"0","selFlowTemp":31,"selBurnPow":100,"curBurnPow":0,"pumpMod":55,"outdoorTemp":16.4,"curFlowTemp":27.5,"retTemp":27.2,"switchTemp":0,"sysPress":1.2,"boilTemp":27.6,"burnGas":"0","flameCurr":0,"heatPump":"1","fanWork":"0","ignWork":"0","heatingActivated":"1","heatingTemp":90,"pumpModMax":100,"pumpModMin":55,"pumpDelay":10,"burnMinPeriod":10,"burnMinPower":0,"burnMaxPower":100,"boilHystOn":-6,"boilHystOff":6,"UBAuptime":4780321,"burnStarts":81276,"burnWorkMin":1793578,"heatWorkMin":1529665,"serviceCode":"0Y","serviceCodeNumber":204}
    

    Jetzt wird das Ganze zerlegt und in einzelne Datenpunkte geschrieben die ich dann in der VIS dastelle:

    //Script zur Zerlegung der JSON Daten in einzelne Datenpunkte
    //Idee: Chaot
    // Umsetzung: paul53
    
    
    var json = "mqtt.0.ems-esp.boiler_data"/*BoilerDaten*/;
    var Vorl = "javascript.0.Heizung.Vorlauf"/*Vorlauf*/;
    var Rueckl = "javascript.0.Heizung.Ruecklauf"/*Ruecklauf*/;
    var Druck = "javascript.0.Heizung.Systemdruck"/*Systemdruck*/;
    var GasAn = "javascript.0.Heizung.GasAn"/*Gas aktiv*/;
    var Leistung = "javascript.0.Heizung.Leistung"/*Leistung*/;
    var OutTemp = "javascript.0.Heizung.OutTemp"/*Aussentemperatur*/;
    var BoilTemp = "javascript.0.Heizung.BoilTemp"/*Boilertemperatur*/;
    var BurnStarts = "javascript.0.Heizung.BurnStarts"/*Brennerstarts*/;
    var LaufzeitBrenner = "javascript.0.Heizung.LaufzeitBrenner"/*LaufzeitBrenner*/;
    var LaufzeitGesamt = "javascript.0.Heizung.LaufzeitGesamt"/*LaufzeitGesamt*/;
    var LaufzeitHeizung = "javascript.0.Heizung.LaufzeitHeizung"/*LaufzeitHeizung*/;
    
    
    on(json, function(dp) {
       var obj = JSON.parse(dp.state.val);
       setState(Vorl, parseFloat(obj.curFlowTemp));
       setState(Rueckl, parseFloat(obj.retTemp)); 
       setState(Druck, parseFloat(obj.sysPress));  
       setState(GasAn, obj.burnGas);
       setState(Leistung, obj.curBurnPow);
       setState(OutTemp, obj.outdoorTemp);
       setState(BoilTemp, obj.boilTemp);
       setState(BurnStarts, obj.burnStarts);
       setState(LaufzeitBrenner, obj.burnWorkMin);   
       setState(LaufzeitGesamt, obj.UBAuptime);
       setState(LaufzeitHeizung, obj.heatWorkMin);
    });
    

    var json ist dabei der Datenpunkt wo die Daten liegen. alle anderen var sind die Zielorte der Datenpunkte (die aber manuell erstellt werden müssen).
    In der zweiten Hälfte erfolgt dann die Zerlegung der json Tabelle. Hier werden die Daten ausgelesen und geschrieben.

    smileS Offline
    smileS Offline
    smile
    schrieb am zuletzt editiert von
    #11

    @Chaot Hey danke, cooles Script, das sieht ja auch total simpel aus!
    Ich schaue mal wie gut ich mit der Blockly Lösung zurechtkomme, und probiere sonst alternativ nochmal deins.
    Sehr cool.


    io.broker @ debian @ virtualbox @ Windows 10 Pro / Node 18.17.1, npm 9.6.7 / CCU3 / IR.Trans Server / Daslight 4 / Mobotix IP Cams / Qnap NAS / Sonos /

    Mein Rolladen - Blockly: https://forum.iobroker.net/topic/6442/das-ultimative-markisen-rolladen-blockly-script

    ChaotC 1 Antwort Letzte Antwort
    0
    • smileS smile

      @Chaot Hey danke, cooles Script, das sieht ja auch total simpel aus!
      Ich schaue mal wie gut ich mit der Blockly Lösung zurechtkomme, und probiere sonst alternativ nochmal deins.
      Sehr cool.

      ChaotC Offline
      ChaotC Offline
      Chaot
      schrieb am zuletzt editiert von
      #12

      @smile Oh, Danke. Das hat vor einiger Zeit paul53 mal grob zusammengeschrieben und ich habe das dann für mich so erweitert. Im Grunde ganz einfach und flexibel.

      ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

      1 Antwort Letzte Antwort
      1
      • ChaotC Offline
        ChaotC Offline
        Chaot
        schrieb am zuletzt editiert von
        #13

        Wow! Der Preis ist aber heftig für eine Sensorbox:
        https://shop.air-q.com/air-Q-kaufen

        Meine Sensoren an den Wemos schauen zwar nicht so stylish aus, aber dafür sind sie vermutlich bei gerade mal 10% des Preises

        ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

        smileS 1 Antwort Letzte Antwort
        0
        • ChaotC Chaot

          Wow! Der Preis ist aber heftig für eine Sensorbox:
          https://shop.air-q.com/air-Q-kaufen

          Meine Sensoren an den Wemos schauen zwar nicht so stylish aus, aber dafür sind sie vermutlich bei gerade mal 10% des Preises

          smileS Offline
          smileS Offline
          smile
          schrieb am zuletzt editiert von
          #14

          @Chaot Ja der Preis ist ordentlich. Aber ich habe wirklich nach vielen Sensoren gesucht, die all diese Werte abdecken. Da wird die Luft echt dünn (Wortspiel). Gerade Wenn z.B. auch noch Sauerstoffgehalt mit gemessen werden soll und auch zusammen mit den anderen Werten, habe ich nichts vergleichbares gefunden. Zuzüglich eben der Möglichkeit die Daten auch per MQTT rauszugeben und nicht nur auf nem kleinen LCD Display von Zeit zu Zeit abzulesen.


          io.broker @ debian @ virtualbox @ Windows 10 Pro / Node 18.17.1, npm 9.6.7 / CCU3 / IR.Trans Server / Daslight 4 / Mobotix IP Cams / Qnap NAS / Sonos /

          Mein Rolladen - Blockly: https://forum.iobroker.net/topic/6442/das-ultimative-markisen-rolladen-blockly-script

          ChaotC 1 Antwort Letzte Antwort
          0
          • smileS smile

            @Chaot Ja der Preis ist ordentlich. Aber ich habe wirklich nach vielen Sensoren gesucht, die all diese Werte abdecken. Da wird die Luft echt dünn (Wortspiel). Gerade Wenn z.B. auch noch Sauerstoffgehalt mit gemessen werden soll und auch zusammen mit den anderen Werten, habe ich nichts vergleichbares gefunden. Zuzüglich eben der Möglichkeit die Daten auch per MQTT rauszugeben und nicht nur auf nem kleinen LCD Display von Zeit zu Zeit abzulesen.

            ChaotC Offline
            ChaotC Offline
            Chaot
            schrieb am zuletzt editiert von
            #15

            @smile Aber wenn ich mir die Sensorik so durchschaue sind das alles ganz normale Sensoren die auch einzeln erhältlich sind und die auch bei mir zum Teil verbaut sind.

            PMS5003 - ca 25 € - Feinstaub PM1, 2,5, 10
            BME680 - ca. 3 € - Temp., Druck, Feuchte, VOC, CO2
            Xadow (Grove) Mutichannel Gas Sensor - ca. 40 € - für verschiedene andere Gase
            WemosD1 - ca. 3 € - als Basis der ganzen Geschichte mit Tasmota bespielt.

            Dazu kannst du dir aus der ganzen Liste noch deine Lieblingssensoren (Genauigkeit) auswählen:
            https://tasmota.github.io/docs/Supported-Peripherals/

            ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

            smileS 1 Antwort Letzte Antwort
            0
            • ChaotC Chaot

              @smile Vielleicht hilft dir das Script das ich für meine Heizungsüberwachung verwende.
              Ich erhalte als Datenpunkt eine JSON (wie scheinbar du auch).
              der sieht im Original so aus:

              {"heatingActive":"0","tapwaterActive":"0","selFlowTemp":31,"selBurnPow":100,"curBurnPow":0,"pumpMod":55,"outdoorTemp":16.4,"curFlowTemp":27.5,"retTemp":27.2,"switchTemp":0,"sysPress":1.2,"boilTemp":27.6,"burnGas":"0","flameCurr":0,"heatPump":"1","fanWork":"0","ignWork":"0","heatingActivated":"1","heatingTemp":90,"pumpModMax":100,"pumpModMin":55,"pumpDelay":10,"burnMinPeriod":10,"burnMinPower":0,"burnMaxPower":100,"boilHystOn":-6,"boilHystOff":6,"UBAuptime":4780321,"burnStarts":81276,"burnWorkMin":1793578,"heatWorkMin":1529665,"serviceCode":"0Y","serviceCodeNumber":204}
              

              Jetzt wird das Ganze zerlegt und in einzelne Datenpunkte geschrieben die ich dann in der VIS dastelle:

              //Script zur Zerlegung der JSON Daten in einzelne Datenpunkte
              //Idee: Chaot
              // Umsetzung: paul53
              
              
              var json = "mqtt.0.ems-esp.boiler_data"/*BoilerDaten*/;
              var Vorl = "javascript.0.Heizung.Vorlauf"/*Vorlauf*/;
              var Rueckl = "javascript.0.Heizung.Ruecklauf"/*Ruecklauf*/;
              var Druck = "javascript.0.Heizung.Systemdruck"/*Systemdruck*/;
              var GasAn = "javascript.0.Heizung.GasAn"/*Gas aktiv*/;
              var Leistung = "javascript.0.Heizung.Leistung"/*Leistung*/;
              var OutTemp = "javascript.0.Heizung.OutTemp"/*Aussentemperatur*/;
              var BoilTemp = "javascript.0.Heizung.BoilTemp"/*Boilertemperatur*/;
              var BurnStarts = "javascript.0.Heizung.BurnStarts"/*Brennerstarts*/;
              var LaufzeitBrenner = "javascript.0.Heizung.LaufzeitBrenner"/*LaufzeitBrenner*/;
              var LaufzeitGesamt = "javascript.0.Heizung.LaufzeitGesamt"/*LaufzeitGesamt*/;
              var LaufzeitHeizung = "javascript.0.Heizung.LaufzeitHeizung"/*LaufzeitHeizung*/;
              
              
              on(json, function(dp) {
                 var obj = JSON.parse(dp.state.val);
                 setState(Vorl, parseFloat(obj.curFlowTemp));
                 setState(Rueckl, parseFloat(obj.retTemp)); 
                 setState(Druck, parseFloat(obj.sysPress));  
                 setState(GasAn, obj.burnGas);
                 setState(Leistung, obj.curBurnPow);
                 setState(OutTemp, obj.outdoorTemp);
                 setState(BoilTemp, obj.boilTemp);
                 setState(BurnStarts, obj.burnStarts);
                 setState(LaufzeitBrenner, obj.burnWorkMin);   
                 setState(LaufzeitGesamt, obj.UBAuptime);
                 setState(LaufzeitHeizung, obj.heatWorkMin);
              });
              

              var json ist dabei der Datenpunkt wo die Daten liegen. alle anderen var sind die Zielorte der Datenpunkte (die aber manuell erstellt werden müssen).
              In der zweiten Hälfte erfolgt dann die Zerlegung der json Tabelle. Hier werden die Daten ausgelesen und geschrieben.

              haselchenH Offline
              haselchenH Offline
              haselchen
              Most Active
              schrieb am zuletzt editiert von haselchen
              #16

              @Chaot
              @paul53
              @fastfoot

              Eigentlich genau das, was ich gesucht habe.
              Ich bekomme aus meinem Regensensor ein paar Werte. Ich will nur den Regenerkennungswert ON oder OFF haben.

              {"idx":10,"RSSI":10,"command":"switchlight","switchcmd":"Off"}
              

              Script sieht so aus:

              //Script zur Zerlegung der JSON Daten in einzelne Datenpunkte
              //Idee: Chaot
              // Umsetzung: paul53
               
              var json = "mqtt.0.Wetterstation.in"/*Regenerkennung*/;
              var Switch = "javascript.0.Wetterstation.Regenerkennung"/*AN oder AUS*/;
              
              
              on(json, function(dp) {
                 var obj = JSON.parse(dp.state.val);
                 setState(Switch, parseFloat(obj.switchcmd));
              });
              

              Datenpunkt ist angelegt als Logikwert.
              Fehlermeldung im Log und Datenpunkt ist leer.

              2020-11-03 13:08:30.193 - warn: javascript.0 (18363) Wrong type of javascript.0.Wetterstation.Regenerkennung: "number". Please fix, while deprecated and will not work in next versions.
              2020-11-03 13:08:30.194 - warn: javascript.0 (18363) at Object. (script.js.Regenerkennung:11:4)
              

              d10f3f4e-8964-495a-89c3-8493dcdd80c8-image.png

              Synology DS218+ & 2 x Fujitsu Esprimo (VM/Container) + FritzBox7590 + 2 AVM 3000 Repeater & Homematic & HUE & Osram & Xiaomi, NPM 10.9.4, Nodejs 22.21.0 ,JS Controller 7.0.7 ,Admin 7.7.19

              paul53P 1 Antwort Letzte Antwort
              0
              • haselchenH haselchen

                @Chaot
                @paul53
                @fastfoot

                Eigentlich genau das, was ich gesucht habe.
                Ich bekomme aus meinem Regensensor ein paar Werte. Ich will nur den Regenerkennungswert ON oder OFF haben.

                {"idx":10,"RSSI":10,"command":"switchlight","switchcmd":"Off"}
                

                Script sieht so aus:

                //Script zur Zerlegung der JSON Daten in einzelne Datenpunkte
                //Idee: Chaot
                // Umsetzung: paul53
                 
                var json = "mqtt.0.Wetterstation.in"/*Regenerkennung*/;
                var Switch = "javascript.0.Wetterstation.Regenerkennung"/*AN oder AUS*/;
                
                
                on(json, function(dp) {
                   var obj = JSON.parse(dp.state.val);
                   setState(Switch, parseFloat(obj.switchcmd));
                });
                

                Datenpunkt ist angelegt als Logikwert.
                Fehlermeldung im Log und Datenpunkt ist leer.

                2020-11-03 13:08:30.193 - warn: javascript.0 (18363) Wrong type of javascript.0.Wetterstation.Regenerkennung: "number". Please fix, while deprecated and will not work in next versions.
                2020-11-03 13:08:30.194 - warn: javascript.0 (18363) at Object. (script.js.Regenerkennung:11:4)
                

                d10f3f4e-8964-495a-89c3-8493dcdd80c8-image.png

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

                @haselchen sagte:

                Datenpunkt ist angelegt als Logikwert.

                Dann:

                   setState(Switch, obj.switchcmd == "On", true);
                

                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

                haselchenH 1 Antwort Letzte Antwort
                0
                • paul53P paul53

                  @haselchen sagte:

                  Datenpunkt ist angelegt als Logikwert.

                  Dann:

                     setState(Switch, obj.switchcmd == "On", true);
                  
                  haselchenH Offline
                  haselchenH Offline
                  haselchen
                  Most Active
                  schrieb am zuletzt editiert von haselchen
                  #18

                  @paul53

                  Geändert, aber trotzdem erscheint kein on oder off im Datenpunkt :(

                  //Script zur Zerlegung der JSON Daten in einzelne Datenpunkte
                  //Idee: Chaot
                  // Umsetzung: paul53
                   
                  var json = "mqtt.0.Wetterstation.in"/*Regenerkennung*/;
                  var Switch = "javascript.0.Wetterstation.Regenerkennung"/*AN oder AUS*/;
                  
                  
                  on(json, function(dp) {
                     var obj = JSON.parse(dp.state.val);
                     setState(Switch, obj.switchcmd == "On", true);
                  });
                  

                  Synology DS218+ & 2 x Fujitsu Esprimo (VM/Container) + FritzBox7590 + 2 AVM 3000 Repeater & Homematic & HUE & Osram & Xiaomi, NPM 10.9.4, Nodejs 22.21.0 ,JS Controller 7.0.7 ,Admin 7.7.19

                  paul53P 1 Antwort Letzte Antwort
                  0
                  • haselchenH haselchen

                    @paul53

                    Geändert, aber trotzdem erscheint kein on oder off im Datenpunkt :(

                    //Script zur Zerlegung der JSON Daten in einzelne Datenpunkte
                    //Idee: Chaot
                    // Umsetzung: paul53
                     
                    var json = "mqtt.0.Wetterstation.in"/*Regenerkennung*/;
                    var Switch = "javascript.0.Wetterstation.Regenerkennung"/*AN oder AUS*/;
                    
                    
                    on(json, function(dp) {
                       var obj = JSON.parse(dp.state.val);
                       setState(Switch, obj.switchcmd == "On", true);
                    });
                    
                    paul53P Offline
                    paul53P Offline
                    paul53
                    schrieb am zuletzt editiert von paul53
                    #19

                    @haselchen sagte:

                    trotzdem erscheint kein on oder off im Datenpunkt

                    Ein Datenpunkt vom Typ "Logikwert" kennt nur false und true.
                    Wenn Du "On" oder "Off" haben möchtest, muss der Datenpunkt vom Typ "Zeichenkette" sein.

                    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

                    haselchenH 1 Antwort Letzte Antwort
                    0
                    • paul53P paul53

                      @haselchen sagte:

                      trotzdem erscheint kein on oder off im Datenpunkt

                      Ein Datenpunkt vom Typ "Logikwert" kennt nur false und true.
                      Wenn Du "On" oder "Off" haben möchtest, muss der Datenpunkt vom Typ "Zeichenkette" sein.

                      haselchenH Offline
                      haselchenH Offline
                      haselchen
                      Most Active
                      schrieb am zuletzt editiert von
                      #20

                      @paul53

                      Und wie bekomme ich das jetzt hin, dass dort der Wert aus dem Json erscheint (On,Off)?

                      Synology DS218+ & 2 x Fujitsu Esprimo (VM/Container) + FritzBox7590 + 2 AVM 3000 Repeater & Homematic & HUE & Osram & Xiaomi, NPM 10.9.4, Nodejs 22.21.0 ,JS Controller 7.0.7 ,Admin 7.7.19

                      paul53P 1 Antwort Letzte Antwort
                      0
                      • haselchenH haselchen

                        @paul53

                        Und wie bekomme ich das jetzt hin, dass dort der Wert aus dem Json erscheint (On,Off)?

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

                        @haselchen sagte:

                        Wert aus dem Json erscheint (On,Off)?

                        Datenpunkt-Typ ändern in "Zeichenkette" und

                           setState(Switch, obj.switchcmd, true);
                        

                        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

                        haselchenH 1 Antwort Letzte Antwort
                        1
                        • paul53P paul53

                          @haselchen sagte:

                          Wert aus dem Json erscheint (On,Off)?

                          Datenpunkt-Typ ändern in "Zeichenkette" und

                             setState(Switch, obj.switchcmd, true);
                          
                          haselchenH Offline
                          haselchenH Offline
                          haselchen
                          Most Active
                          schrieb am zuletzt editiert von
                          #22

                          @paul53

                          Schon der Hammer, wie Du das so aus dem Ärmel schüttelst.
                          Noch eine Verständnisfrage, wenn ich den Datenpunkt im Blockly triggern will, ist wahrscheinlich true oder false doch am Sinnvollsten oder?

                          Synology DS218+ & 2 x Fujitsu Esprimo (VM/Container) + FritzBox7590 + 2 AVM 3000 Repeater & Homematic & HUE & Osram & Xiaomi, NPM 10.9.4, Nodejs 22.21.0 ,JS Controller 7.0.7 ,Admin 7.7.19

                          paul53P 1 Antwort Letzte Antwort
                          0
                          • haselchenH haselchen

                            @paul53

                            Schon der Hammer, wie Du das so aus dem Ärmel schüttelst.
                            Noch eine Verständnisfrage, wenn ich den Datenpunkt im Blockly triggern will, ist wahrscheinlich true oder false doch am Sinnvollsten oder?

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

                            @haselchen sagte:

                            wenn ich den Datenpunkt im Blockly triggern will, ist wahrscheinlich true oder false doch am Sinnvollsten oder?

                            Man kann innerhalb des Triggers auch einen String-Vergleich machen.

                            falls Wert == "On"
                            mache ...
                            sonst ...
                            

                            Allerdings sollte Standard sein, dass Datenpunkte, die nur zwei Zustände annehmen können, vom Typ "Logikwert" sind. Es gibt ja noch die Zustandstexte (common.states).

                            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

                            haselchenH F 2 Antworten Letzte Antwort
                            1
                            • paul53P paul53

                              @haselchen sagte:

                              wenn ich den Datenpunkt im Blockly triggern will, ist wahrscheinlich true oder false doch am Sinnvollsten oder?

                              Man kann innerhalb des Triggers auch einen String-Vergleich machen.

                              falls Wert == "On"
                              mache ...
                              sonst ...
                              

                              Allerdings sollte Standard sein, dass Datenpunkte, die nur zwei Zustände annehmen können, vom Typ "Logikwert" sind. Es gibt ja noch die Zustandstexte (common.states).

                              haselchenH Offline
                              haselchenH Offline
                              haselchen
                              Most Active
                              schrieb am zuletzt editiert von
                              #24

                              @paul53

                              Hab mir beide Varianten offen gehalten....true/false on/off.
                              Danke für die schnelle Hilfe.

                              Synology DS218+ & 2 x Fujitsu Esprimo (VM/Container) + FritzBox7590 + 2 AVM 3000 Repeater & Homematic & HUE & Osram & Xiaomi, NPM 10.9.4, Nodejs 22.21.0 ,JS Controller 7.0.7 ,Admin 7.7.19

                              1 Antwort Letzte Antwort
                              0
                              • paul53P paul53

                                @haselchen sagte:

                                wenn ich den Datenpunkt im Blockly triggern will, ist wahrscheinlich true oder false doch am Sinnvollsten oder?

                                Man kann innerhalb des Triggers auch einen String-Vergleich machen.

                                falls Wert == "On"
                                mache ...
                                sonst ...
                                

                                Allerdings sollte Standard sein, dass Datenpunkte, die nur zwei Zustände annehmen können, vom Typ "Logikwert" sind. Es gibt ja noch die Zustandstexte (common.states).

                                F Offline
                                F Offline
                                fastfoot
                                schrieb am zuletzt editiert von
                                #25

                                @paul53 sagte in [Gelöst] Diverse Werte aus einem Objekt auslesen:

                                Es gibt ja noch die Zustandstexte (common.states).

                                wozu dienen die genau, soweit ich verstanden habe wirken die sich nur auf die Ansicht im Objektbaum aus? Für eine entsprechende Ansicht/Ausgabe im Skript oder VIS müsste man die extra abfragen(mit getObject())?

                                iobroker läuft unter Docker auf QNAP TS-451+
                                SkriptRecovery: https://forum.iobroker.net/post/930558

                                paul53P 1 Antwort Letzte Antwort
                                0
                                • F fastfoot

                                  @paul53 sagte in [Gelöst] Diverse Werte aus einem Objekt auslesen:

                                  Es gibt ja noch die Zustandstexte (common.states).

                                  wozu dienen die genau, soweit ich verstanden habe wirken die sich nur auf die Ansicht im Objektbaum aus? Für eine entsprechende Ansicht/Ausgabe im Skript oder VIS müsste man die extra abfragen(mit getObject())?

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

                                  @fastfoot sagte:

                                  Für eine entsprechende Ansicht/Ausgabe im Skript oder VIS müsste man die extra abfragen(mit getObject())?

                                  Ja.

                                  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
                                  1
                                  • ChaotC Chaot

                                    @smile Aber wenn ich mir die Sensorik so durchschaue sind das alles ganz normale Sensoren die auch einzeln erhältlich sind und die auch bei mir zum Teil verbaut sind.

                                    PMS5003 - ca 25 € - Feinstaub PM1, 2,5, 10
                                    BME680 - ca. 3 € - Temp., Druck, Feuchte, VOC, CO2
                                    Xadow (Grove) Mutichannel Gas Sensor - ca. 40 € - für verschiedene andere Gase
                                    WemosD1 - ca. 3 € - als Basis der ganzen Geschichte mit Tasmota bespielt.

                                    Dazu kannst du dir aus der ganzen Liste noch deine Lieblingssensoren (Genauigkeit) auswählen:
                                    https://tasmota.github.io/docs/Supported-Peripherals/

                                    smileS Offline
                                    smileS Offline
                                    smile
                                    schrieb am zuletzt editiert von
                                    #27

                                    @Chaot Klar, man kann fast immer mit diversen einzelnen China Sensoren alles günstiger hinbekommen. Wobei ich Sauerstoff Wert jetzt noch bei keinem von den von dir genannten gesehen habe.

                                    Für mich ist es aber mittlerweile auch ein gewisser Luxus wenn ich weniger Geräte verwalten / einbinden / pflegen muss. Und wenn ich hier ein Gerät habe, mit einer App dazu, und einer MQTT Anbindung, eine Firmware die geupdatet wird etc.. dann ist das für mich sehr angenehm.
                                    Aber natürlich wie immer: Jeder wie er lieber mag / das Budget ermöglicht.


                                    io.broker @ debian @ virtualbox @ Windows 10 Pro / Node 18.17.1, npm 9.6.7 / CCU3 / IR.Trans Server / Daslight 4 / Mobotix IP Cams / Qnap NAS / Sonos /

                                    Mein Rolladen - Blockly: https://forum.iobroker.net/topic/6442/das-ultimative-markisen-rolladen-blockly-script

                                    ChaotC 1 Antwort Letzte Antwort
                                    0
                                    • smileS smile

                                      @Chaot Klar, man kann fast immer mit diversen einzelnen China Sensoren alles günstiger hinbekommen. Wobei ich Sauerstoff Wert jetzt noch bei keinem von den von dir genannten gesehen habe.

                                      Für mich ist es aber mittlerweile auch ein gewisser Luxus wenn ich weniger Geräte verwalten / einbinden / pflegen muss. Und wenn ich hier ein Gerät habe, mit einer App dazu, und einer MQTT Anbindung, eine Firmware die geupdatet wird etc.. dann ist das für mich sehr angenehm.
                                      Aber natürlich wie immer: Jeder wie er lieber mag / das Budget ermöglicht.

                                      ChaotC Offline
                                      ChaotC Offline
                                      Chaot
                                      schrieb am zuletzt editiert von
                                      #28

                                      @smile Da hast du natürlich Recht wenn du die Sensorik als AllInOne Gerät haben möchtest ist das eine wohl teure aber elegante Lösung.
                                      Ich kann zwar nicht nachvollziehen was der Sauerstoffwert bringt, aber das ist an der Stelle auch nicht so wichtig.
                                      Es scheint auch tatsächlich keinen wirklichen Sauerstoffsensor zu geben.

                                      In meinem Fall ist es halt so, das ich die Sensoren nur dort einsetze wo sie auch gebraucht werden. Also der Feinstaubsensor oberhalb der Haustür zur Straße hin, der CO Sensor an der Heizungsanlage und diverse Luftqualitätssensoren BME680 bzw. CCS811 in den Wohnräumen.
                                      Das wären dann auf die Geräte hochgerechnet so um die knapp 3000 € und das ist mir auch mit Mengenrabatt zu heftig.
                                      Zudem ist dann auch der DIY Spaß weg der zum ioBroker nach meiner Meinung zwingend dazugehört :blush:

                                      ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

                                      smileS 1 Antwort Letzte Antwort
                                      1
                                      • ChaotC Chaot

                                        @smile Da hast du natürlich Recht wenn du die Sensorik als AllInOne Gerät haben möchtest ist das eine wohl teure aber elegante Lösung.
                                        Ich kann zwar nicht nachvollziehen was der Sauerstoffwert bringt, aber das ist an der Stelle auch nicht so wichtig.
                                        Es scheint auch tatsächlich keinen wirklichen Sauerstoffsensor zu geben.

                                        In meinem Fall ist es halt so, das ich die Sensoren nur dort einsetze wo sie auch gebraucht werden. Also der Feinstaubsensor oberhalb der Haustür zur Straße hin, der CO Sensor an der Heizungsanlage und diverse Luftqualitätssensoren BME680 bzw. CCS811 in den Wohnräumen.
                                        Das wären dann auf die Geräte hochgerechnet so um die knapp 3000 € und das ist mir auch mit Mengenrabatt zu heftig.
                                        Zudem ist dann auch der DIY Spaß weg der zum ioBroker nach meiner Meinung zwingend dazugehört :blush:

                                        smileS Offline
                                        smileS Offline
                                        smile
                                        schrieb am zuletzt editiert von
                                        #29

                                        @Chaot Alles gut, kann ich auch total verstehen die Herangehensweise.
                                        Für mich ist das Gesamtpaket hier angenehmer alles in einem zu haben, was nicht heißt dass ich den Preis nicht auch gehoben finde.
                                        Der Hersteller hat mir gesagt dass die Summe an Sensoren wirklich nicht günstig in der Produktion sind und sie sollen auch sehr genau sein - hier ein Vergleich zu starten wird aber wohl sicherlich schwierig ;-)

                                        Nundenn, trotzdem nun ein Gerät mehr welches mit iobroker wunderbar harmoniert - darüber freue ich mich :-)


                                        io.broker @ debian @ virtualbox @ Windows 10 Pro / Node 18.17.1, npm 9.6.7 / CCU3 / IR.Trans Server / Daslight 4 / Mobotix IP Cams / Qnap NAS / Sonos /

                                        Mein Rolladen - Blockly: https://forum.iobroker.net/topic/6442/das-ultimative-markisen-rolladen-blockly-script

                                        1 Antwort Letzte Antwort
                                        1
                                        • ChaotC Chaot

                                          @smile Vielleicht hilft dir das Script das ich für meine Heizungsüberwachung verwende.
                                          Ich erhalte als Datenpunkt eine JSON (wie scheinbar du auch).
                                          der sieht im Original so aus:

                                          {"heatingActive":"0","tapwaterActive":"0","selFlowTemp":31,"selBurnPow":100,"curBurnPow":0,"pumpMod":55,"outdoorTemp":16.4,"curFlowTemp":27.5,"retTemp":27.2,"switchTemp":0,"sysPress":1.2,"boilTemp":27.6,"burnGas":"0","flameCurr":0,"heatPump":"1","fanWork":"0","ignWork":"0","heatingActivated":"1","heatingTemp":90,"pumpModMax":100,"pumpModMin":55,"pumpDelay":10,"burnMinPeriod":10,"burnMinPower":0,"burnMaxPower":100,"boilHystOn":-6,"boilHystOff":6,"UBAuptime":4780321,"burnStarts":81276,"burnWorkMin":1793578,"heatWorkMin":1529665,"serviceCode":"0Y","serviceCodeNumber":204}
                                          

                                          Jetzt wird das Ganze zerlegt und in einzelne Datenpunkte geschrieben die ich dann in der VIS dastelle:

                                          //Script zur Zerlegung der JSON Daten in einzelne Datenpunkte
                                          //Idee: Chaot
                                          // Umsetzung: paul53
                                          
                                          
                                          var json = "mqtt.0.ems-esp.boiler_data"/*BoilerDaten*/;
                                          var Vorl = "javascript.0.Heizung.Vorlauf"/*Vorlauf*/;
                                          var Rueckl = "javascript.0.Heizung.Ruecklauf"/*Ruecklauf*/;
                                          var Druck = "javascript.0.Heizung.Systemdruck"/*Systemdruck*/;
                                          var GasAn = "javascript.0.Heizung.GasAn"/*Gas aktiv*/;
                                          var Leistung = "javascript.0.Heizung.Leistung"/*Leistung*/;
                                          var OutTemp = "javascript.0.Heizung.OutTemp"/*Aussentemperatur*/;
                                          var BoilTemp = "javascript.0.Heizung.BoilTemp"/*Boilertemperatur*/;
                                          var BurnStarts = "javascript.0.Heizung.BurnStarts"/*Brennerstarts*/;
                                          var LaufzeitBrenner = "javascript.0.Heizung.LaufzeitBrenner"/*LaufzeitBrenner*/;
                                          var LaufzeitGesamt = "javascript.0.Heizung.LaufzeitGesamt"/*LaufzeitGesamt*/;
                                          var LaufzeitHeizung = "javascript.0.Heizung.LaufzeitHeizung"/*LaufzeitHeizung*/;
                                          
                                          
                                          on(json, function(dp) {
                                             var obj = JSON.parse(dp.state.val);
                                             setState(Vorl, parseFloat(obj.curFlowTemp));
                                             setState(Rueckl, parseFloat(obj.retTemp)); 
                                             setState(Druck, parseFloat(obj.sysPress));  
                                             setState(GasAn, obj.burnGas);
                                             setState(Leistung, obj.curBurnPow);
                                             setState(OutTemp, obj.outdoorTemp);
                                             setState(BoilTemp, obj.boilTemp);
                                             setState(BurnStarts, obj.burnStarts);
                                             setState(LaufzeitBrenner, obj.burnWorkMin);   
                                             setState(LaufzeitGesamt, obj.UBAuptime);
                                             setState(LaufzeitHeizung, obj.heatWorkMin);
                                          });
                                          

                                          var json ist dabei der Datenpunkt wo die Daten liegen. alle anderen var sind die Zielorte der Datenpunkte (die aber manuell erstellt werden müssen).
                                          In der zweiten Hälfte erfolgt dann die Zerlegung der json Tabelle. Hier werden die Daten ausgelesen und geschrieben.

                                          K Offline
                                          K Offline
                                          kratzsch
                                          schrieb am zuletzt editiert von
                                          #30

                                          @Chaot Hallo kanst du mir ziegen wie die Datenpunkte konfiguriert werden müßen.
                                          Ich habe auch die EMS-ESP von BBQ Kees und Lese über Domoticz aus.
                                          Würde aber gern alles im Iobroker haben.
                                          Über MQ TT habe ich die Daten im Iobroker.
                                          MfG

                                          ChaotC 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

                                          591

                                          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