Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Bitte um kleines Testscript

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.0k

Bitte um kleines Testscript

Bitte um kleines Testscript

Scheduled Pinned Locked Moved Skripten / Logik
13 Posts 3 Posters 1.5k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • F Offline
    F Offline
    Fraenki23
    wrote on last edited by
    #1

    Hallo

    Ich habe Probleme mit IoBroker und weiß nicht ob vieleicht auch ein Fehler vorliegt.

    Ich bin irgendwie zu blöd um ein einfaches Script zum testen zu erstellen.

    Ich habe eine Variable die geloggt wird. Nun möchte ich den Wert dieser Variable zu einer anderen hinzufügen.

    Kann mir jemand weiterhelfen?

    Eigentlich der Wert vom Counter der Arbeitsvariable hinzugefügt werden bis 800 impulse gezählt wurden und dann auf Null gesetzt werden und dem Zählerstand 1 KW hinzugefügt werden.

    Leider bringe ich es nicht hin dass bei Veränderung von Counter nach 60 Sekunden der Wert zu Arbeitsvariable hinzugefügt wird.

    Das würde schon mal reichen.

    Danke Fränki

    Variable 1 = Count 60 imp vom Stromzähler

    Variable 2 = Zählerstand 23 KW/h wenn 800 bei Arbeitsvariable erreicht sind 1 dazu zählen

    Variable 3 = Arbeitsvariable 652 imp immer von Counter dazu addiert

    1 Reply Last reply
    0
    • metaxaM Online
      metaxaM Online
      metaxa
      wrote on last edited by
      #2

      Nachdem ich grad selbst mit einem Blockly "hänge", brauche ich Abwechslung :ugeek:

      Ich verstehe deine Aufgabenstellung nicht.

      • Du hast eine Variable die loggt einen ständig steigenden Wert (Zahl).
      • Du willst nach 60 Sekunden eine andere Variable um 1 erhöhen?
      • Wenn was genau mit der ersten Variaben ist?
      • Arbeitsvariable?

      Eventuell magst es irgendwie anders erklären?

      LG, mxa

      1 Reply Last reply
      0
      • paul53P Offline
        paul53P Offline
        paul53
        wrote on last edited by
        #3

        @Fraenki23:

        Ich habe eine Variable die geloggt wird. `
        Du meinst sicherlich einen Datenpunkt ?
        @Fraenki23:

        Eigentlich der Wert vom Counter der Arbeitsvariable hinzugefügt werden bis 800 impulse gezählt wurden `
        Du erhälst in einem Datenpunkt Impulse mit der Wertigkeit 800 Impulse = 1 kWh und möchtest diese zählen und in einem weiteren Datenpunkt in kWh darstellen ?

        Ein weiterer Datenpunkt, der die momentane Leistung anzeigt ?

        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 Reply Last reply
        0
        • F Offline
          F Offline
          Fraenki23
          wrote on last edited by
          #4

          Hallo

          Danke für die Mühe die Ihr euch für mich macht. Erst verstehe ich das Programmieren nicht und dann drücke ich mich dann auch noch unverständlich aus.

          Wie schon geschrieben habe ich einen Stromzähler der alle 60 Sekunden mit einen esp8266 die Impulse an meinen Raspi Iobroker weitergibt. Diese möchte ich zählen und wenn 800 Impulse erreicht sind eine ander Variable um 1 KW erhöhen und den Wert zurück auf 0 setzen . Ich habe auch ein Script das aber in Blockly nicht angenommen wird.

          Ich ahbe schon bedenken dass bei der Installation etwas schief gelaufen ist.

          Ich bekomme vom Stromzähler die Datenpunkte.

          1. Count Aktuelle Impulse vom Stromzähler

          2. Time

          3. Total

          Danke für Eure Hilfe

          Fränki
          7642_1.jpg

          1 Reply Last reply
          0
          • metaxaM Online
            metaxaM Online
            metaxa
            wrote on last edited by
            #5

            Wirkliche Hilfe kann ich noch nicht anbieten 8-)

            Ich verstehe das jetzt so:

            gesucht Blockly:

            trigger = datenpunkt "count"

            wenn Datenpunkt "count" > 800 (kann ja auch sein, dass nach 60 Sekunden der Stromzähler mehr als die offene Differenz auf 800 liefert, oder?)

            dann Datenpunkt "andere Variable" + 1

            Datenpunkt "count" = 0

            ende wenn

            Wenn das so gewünscht ist, sollt man in weiterer Folge sich überlegen, die Differenz zwischen 800 und dem realen Wert von "Count" in "Count" als Startpunkt zur nächsten Aufsummierung zu belassen. Damit wird es wohl genauer.

            Richtig?

            Wie sieht denn dein Blockly aus, dass nicht angenommen wird? Mach bitte einen Screen.

            LG, mxa

            1 Reply Last reply
            0
            • paul53P Offline
              paul53P Offline
              paul53
              wrote on last edited by
              #6

              Als erstes solltest Du die Maßeinheiten korrigieren:

              Zählerstand und alle Zähler: kWh

              Time: ms

              Deine Art, die Berechnung durchführen zu wollen, ist zu kompliziert. Vorschlag:

              const idCount = '...0.Stromzaehler.Count'; 
              const idTime = '...0.Stromzaehler.Time';
              const idStand = '...0.Stromzaehler.Zählerstand';
              
              var cnt = 800 * getState(idStand).val;
              
              on({id: idCount}, function(dp) { // triggert bei jeder Aktualisierung
                 cnt = cnt + dp.state.val;
                 setState(idStand, Math.round(cnt / 8) / 100, true); // 2 Nachkommastellen
              });
              
              on({id: idTime}, function(dp) {
                 var power = Math.round(1.25 * 3600000 / dp.state.val); // 1 Impuls = 1,25 Wh
                 log('Leistung: ' + power + ' W'); // Datenpunkt für aktuelle Leistung ist nicht vorgesehen
              });
              

              Der Anfangswert für "Zählerstand" muss vor Start des Skriptes per Hand eingegeben werden. Für die Ermittlung der Wochen-, Monats- und Jahreswerte gibt es Skripte im Forum.

              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 Reply Last reply
              0
              • metaxaM Online
                metaxaM Online
                metaxa
                wrote on last edited by
                #7

                @paul53:

                Deine Art, die Berechnung durchführen zu wollen, ist zu kompliziert. Vorschlag: `
                Der Aussage habe ich nichs hinzufügen. 1) weil ich nix von Javascript in Reinkultur verstehe, 2) paul53 mit Sicherheit weiß was professionell zu tun ist und 3) magels eines Stromzählers.

                Ich habe mich da eher an die einfache Aufgabenstellung von dir gehalten :-), da tue ich mir leichter. Und weil ich es inzwischen schon getestet habe, 488_fraenki23_1.jpg möchte ich es dir auch nicht vorenthalten 😐

                Du bist mit Sicherheit aber in Händen von paul53 besser aufgehoben!!

                LG, mxa

                1 Reply Last reply
                0
                • F Offline
                  F Offline
                  Fraenki23
                  wrote on last edited by
                  #8

                  Hallo alle

                  Ich vesrtehe leider ads Script von Paul53 nicht. Muss ich etwas an dem Script verändern

                  (const idCount = '…0.Stromzaehler.Count';

                  const idTime = '...0.Stromzaehler.Time';

                  const idStand = '...0.Stromzaehler.Zählerstand';)

                  und dann als Script speichern.

                  Wass passiert dann wenn ich es starte. Wird etwas verändert oder neu angelegt.

                  Ich hoffe dass Ihr mir noch ne Hilfestellung gebt wenn Ihr auch das Gefühl habt daß Hopfen und Malz verloren ist.

                  Gruß Fränki

                  Ich habe mal 2 Scripte als Word eingestellt die sich nicht in Blockly starten lassen.
                  7642_erstes_und_zweites_script_global.docx

                  1 Reply Last reply
                  0
                  • paul53P Offline
                    paul53P Offline
                    paul53
                    wrote on last edited by
                    #9

                    @Fraenki23:

                    Muss ich etwas an dem Script verändern `
                    Im Screenshot mit den Datenpunkten ist leider die Instanz nicht zu sehen.

                    const idCount = '...0.Stromzaehler.Count'; 
                    const idTime = '...0.Stromzaehler.Time';
                    const idStand = '...0.Stromzaehler.Zählerstand';
                    
                    

                    Es müssen jeweils die ersten zwei Punkte durch den Adapternamen ersetzt werden.
                    @Fraenki23:

                    Wass passiert dann wenn ich es starte. Wird etwas verändert oder neu angelegt. `
                    Neu angelegt wird nichts. Der Wert im Datenpunkt "Zählerstand" wird jede Minute verändert, da neu berechnet. Bitte vorher den Anfangswert (vom Zähler ablesen) per Hand im Reiter "Objekte" eingeben !

                    Es wird jede Minute ein Log-Eintrag mit der aktuellen Leistung in W erzeugt.

                    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 Reply Last reply
                    0
                    • F Offline
                      F Offline
                      Fraenki23
                      wrote on last edited by
                      #10

                      Hallo Paul53

                      Kannst Du mal die Bilder ansehen. Hab bistimmt was falsch gemacht.

                      Danke Fränki
                      7642_1.jpg
                      7642_2.jpg
                      7642_3.jpg
                      7642_4.jpg

                      1 Reply Last reply
                      0
                      • paul53P Offline
                        paul53P Offline
                        paul53
                        wrote on last edited by
                        #11

                        Die IDs sind Zeichenketten (Hochkomma) !

                        Eigene Datenpunkte (Zaehlerstand) sollten nicht in irgendeiner Instanz ("mqtt.0") erstellt werden, sondern unter "javascript.0", da die Adapter ihre eigenen Datenpunkte verwalten, also unter Umständen auch löschen.

                        const idCount = 'mqtt.0.StromzaehlerYouTuber.Stromzaehler_2.Count'; 
                        const idTime = 'mqtt.0.StromzaehlerYouTuber.Stromzaehler_2.Time';
                        const idStand = 'javascript.0.Stromzaehler_2.Zaehlerstand';
                        const idPower = 'javascript.0.Stromzaehler_2.Leistung';
                        

                        Die Datenpunkte vom Typ "Zahl" kannst Du im Reiter "Objekte" erstellen, indem Du javascript.0 selektierst und darunter z.B. den Datenpunkt mit dem Namen Stromzaehler_2.Zaehlerstand erstellst (Einheit: kWh).

                        Außerdem: Umlaute in IDs vermeiden.

                        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 Reply Last reply
                        0
                        • paul53P Offline
                          paul53P Offline
                          paul53
                          wrote on last edited by
                          #12

                          Alternativ können die eigenen Datenpunkte auch im Skript erzeugt werden.

                          const idCount = 'mqtt.0.StromzaehlerYouTuber.Stromzaehler_2.Count'; 
                          const idTime = 'mqtt.0.StromzaehlerYouTuber.Stromzaehler_2.Time';
                          const idStand = 'Stromzaehler_2.Zaehlerstand';
                          const idPower = 'Stromzaehler_2.Leistung';
                          
                          const startwert = 1234.5; // Anfangszählerstand (abgelesen)
                          
                          var cnt;
                          
                          // Erzeugung eigener Datenpunkte
                          createState(idStand, startwert, {type: 'number', unit: 'kWh'}, function() {
                             cnt = 800 * getState(idStand).val;
                          });
                          createState(idPower, 0, {type: 'number', unit: 'W'});
                          
                          on({id: idCount}, function(dp) { // triggert bei jeder Aktualisierung
                             cnt = cnt + dp.state.val;
                             setState(idStand, Math.round(cnt / 8) / 100, true); // 2 Nachkommastellen
                          });
                          
                          on({id: idTime}, function(dp) {
                             var power = Math.round(1.25 * 3600000 / dp.state.val); // 1 Impuls = 1,25 Wh
                             setState(idPower, power, 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

                          1 Reply Last reply
                          0
                          • F Offline
                            F Offline
                            Fraenki23
                            wrote on last edited by
                            #13

                            Hallo Paul53

                            Vielen Dank für deine Geduld und vor allem danke für das Skript.

                            Habe es einfach nicht verstanden. Jetzt wo es funktioniert kann ich versuchen es zu verstehen

                            was es macht.

                            Gruß aus Keltern Fränki

                            1 Reply Last reply
                            0
                            Reply
                            • Reply as topic
                            Log in to reply
                            • Oldest to Newest
                            • Newest to Oldest
                            • Most Votes


                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            558

                            Online

                            32.4k

                            Users

                            81.3k

                            Topics

                            1.3m

                            Posts
                            Community
                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                            ioBroker Community 2014-2025
                            logo
                            • Login

                            • Don't have an account? Register

                            • Login or register to search.
                            • First post
                              Last post
                            0
                            • Recent
                            • Tags
                            • Unread 0
                            • Categories
                            • Unreplied
                            • Popular
                            • GitHub
                            • Docu
                            • Hilfe