Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly rookie - PI Temperatur auslesen und im IOBroker Objekten als Temp anzeigen

    NEWS

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    Blockly rookie - PI Temperatur auslesen und im IOBroker Objekten als Temp anzeigen

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      swagner last edited by

      Hallo an Alle,

      Ich bin gerade am Anfang mit blockly und habe eher wenig Erfahrungen im Programmieren und habe mir deshalb ein einfaches Beispiel ausgesucht.

      Also ich möchte einfach nur die PiTemperatur auslesen und als Variable Temp angezeigt bekommen.

      Folgendes Blockly habe ich erstellt und bekomme aber keine Ausgabe, wenn mir jemand Zeigen könnte wie das funktioniert wäre ich sehr dankbar.

      …. aller Anfang ist schwer, deshalb danke für eure Hilfe....

      9439_scripte_pi_temp_blockly.jpg

      Im IOBroker - Objekte - Javascript habe ich folgendes Anzeige, Temp habe ich selber erstellt und die ist aber immer auf 0°C

      9439_iobroker_objekte_javascript0.jpg

      Danke für eure Hilfe,

      Stefan

      1 Reply Last reply Reply Quote 0
      • paul53
        paul53 last edited by

        1. Das Skript nicht unter der Gruppe global erstellen :!:

        2. Eigene Datenpunkt nicht unter javascript.0.scriptEnabled, sondern direkt unter javascript.0 erstellen :!:

        3. Mit setze Temp auf … wird nur eine Skriptvariable gesetzt. Um den Wert in den eigenen Datenpunkt zu schreiben, verwende aktualisiere.

        1 Reply Last reply Reply Quote 0
        • S
          swagner last edited by

          Hi Paul53,

          Ich habe jetzt mal versuch, soweit ich es verstanden habe, deine Informationen umzusetzen.

          Kannst du bitte bestätigen ob du das so gemeint hast bzw, mit sagen wo der Fehler liegt da der Wert noch immer 0 ist.

          9439_iobroker.jpg

          9439_aktualisiere.jpg

          Danke und mfg, Stefan

          1 Reply Last reply Reply Quote 0
          • paul53
            paul53 last edited by

            Ziel und Quelle sind identisch (rpi2.0.temperature.soc_temp). Die Datenpunkt-ID für aktualisiere muss javascript.0.Temp sein.

            1 Reply Last reply Reply Quote 0
            • S
              swagner last edited by

              Hi Paul53,

              Ich habe die Variable im Blocky von Temp auf Temperature geändert da es mich etwas verwirrt hat.
              9439_blockly.jpg

              Habe ich das richtig verstanden, wenn sich der Wert für rpi2.0.temperature.soc_temp ändert dann setzte die Variable Temperatur auf den Wert von rpi2.0.temperature.soc_temp danach aktualisiere javascript.0.Temp mit dem Wert von rpi2.0.temperature.soc_temp

              Leider funktioniert das noch immer nicht der Wert javascript0.Temp zeigt noch immer 0 an.
              9439_iobroker.jpg

              Ich habe mal den Code kopiert den blockly anzeigt.

              var Temperatur;
              
              on({id: getState("rpi2.0.temperature.soc_temp").val, change: "ne"}, function (obj) {
                var value = obj.state.val;
                var oldValue = obj.oldState.val;
                Temperatur = getState("rpi2.0.temperature.soc_temp").val;
                setState("javascript.0.Temp"/*Temp*/, Temperatur, true);
              });
              

              Danke und mfg, Stefan

              1 Reply Last reply Reply Quote 0
              • paul53
                paul53 last edited by

                @swagner:

                der Wert javascript0.Temp zeigt noch immer 0 an. `
                Die Temperatur muss sich erst einmal ändern, bevor sie in den neuen Datenpunkt geschrieben wird.

                1 Reply Last reply Reply Quote 0
                • S
                  swagner last edited by

                  Hi Paul53,

                  9439_temp.jpg

                  9439_soc_temp.jpg

                  9439_soc_temp__nderung.jpg

                  Die Temperatur von soc_temp hat sich verändert aber javascript.0.Temp hat sich nicht verändert.

                  Wo kann das Problem noch liegen ?

                  Danke und mfg,

                  Stefan

                  1 Reply Last reply Reply Quote 0
                  • paul53
                    paul53 last edited by

                    Hatte ich übersehen: Der Trigger darf nicht Wert von Objekt sein, sondern das Objekt selbst.

                    Falls Objekt Objekt ID rpi2.0.temperature.soc_temp

                    Es geht auch ohne Zwischenvariable:
                    493_blockly_dpwert_kopieren.jpg

                    Oder mit dem Wert des Trigger-Datenpunktes:
                    493_blockly_dpwert_kopieren.jpg
                    Oder mit der vordefiniereten Skriptvariablen value:
                    493_blockly_dpwert_kopieren.jpg

                    1 Reply Last reply Reply Quote 0
                    • S
                      swagner last edited by

                      Hi Paul53,

                      Danke für deine tolle Hilfe jetzt funktioniert es, ich werde mich jetzt damit weiter beschäftigen und sicher auch das eine oder andere mal wieder ein paar fragen ans Forum haben und auch die Suchfunktion verwenden 🙂

                      Zur Dokumentation und vielleicht auch als Hilfe für andere, anbei die Screenshots

                      9439_script.jpg

                      9439_blockly.jpg

                      9439_objekt.jpg

                      var Temperatur;
                      
                      on({id: 'rpi2.0.temperature.soc_temp', change: "ne"}, function (obj) {
                        var value = obj.state.val;
                        var oldValue = obj.oldState.val;
                        Temperatur = getState("rpi2.0.temperature.soc_temp").val;
                        setState("javascript.0.Temp"/*Temp*/, Temperatur, true);
                      });
                      
                      

                      mfg

                      Stefan

                      1 Reply Last reply Reply Quote 0
                      • First post
                        Last post

                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      988
                      Online

                      32.1k
                      Users

                      80.7k
                      Topics

                      1.3m
                      Posts

                      2
                      9
                      1866
                      Loading More Posts
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes
                      Reply
                      • Reply as topic
                      Log in to reply
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                      The ioBroker Community 2014-2023
                      logo