Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Anfängerfrage; Script regelmäßig wiederholen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Anfängerfrage; Script regelmäßig wiederholen

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

      Guten Abend wertes Forum.

      Ich habe eine PV-Anlage mit Batterie. Ich möchte nun die Werte der Batterie auslesen und grafisch die unterschiedlichen Ladezustände anzeigen lassen. Dazu habe ich Datenpunkte erzeugt (100, 80, 60 usw). Die DP haben den Zustandstyp Logikwert und die Rolle boolean.

      Nun liest das Scrip die Daten der Batterie aus (bspw. falls Wert Batterie kleiner als 80 und größer als 60 mache -> aktualiere DP 60 = wahr; DP 80 = falsch usw)

      Über die Sichtbarkeit im VIS2.0 steuere ich dann unterschiedliche Batterie - Icons.

      Nun die Frage: Läuft das Script automatisch immer wieder durch? (Vermtutlich nicht) Wie kann ich dafür sorgen, dass die Abfragen und Aktualisierungen regelmäßig durchlaufen?

      Danke

      Codierknecht paul53 2 Replies Last reply Reply Quote 0
      • Codierknecht
        Codierknecht Developer Most Active @RaSc last edited by

        @rasc
        Blockly oder JS?

        https://forum.iobroker.net/topic/70481/blockly-for-dummies-starthilfe-und-tipps

        Scripte werden nicht "gestartet" und "gestoppt". Jedenfalls nicht im hergebrachten Sinn.
        Ein Script wird in der Regel 1x gestartet und reagiert dann auf Änderungen an Datenpunkten oder zyklisch (CRON, Intervall).

        Viel einfacher wäre das Ganze, wenn es für Deine Geräte einen passenden Adapter gibt.
        Daher die wichtigste Frage: Was hast Du da am Start?

        R 1 Reply Last reply Reply Quote 0
        • R
          RaSc @Codierknecht last edited by

          @codierknecht Danke für die schnelle Antwort. Ich befasse mich erst seit Kurzem mit dem Thema und will mich langsam herantasten. Der Wechselrichter ist von Fronius. Ich kann die Daten direkt vom Gerät auslesen oder über die Webseite. Sind zwei verschiedene Adapter. und ich nutze Blockly.

          Codierknecht 1 Reply Last reply Reply Quote 0
          • Codierknecht
            Codierknecht Developer Most Active @RaSc last edited by

            @rasc

            Der Wechselrichter ist von Fronius. Ich kann die Daten direkt vom Gerät auslesen oder über die Webseite. Sind zwei verschiedene Adapter. und ich nutze Blockly.

            Dann solltest Du beim passenden Adapter doch bereits entsprechende Datenpunkte haben, oder?

            R 1 Reply Last reply Reply Quote 0
            • R
              RaSc @Codierknecht last edited by

              @codierknecht Es gibt jeweils einen DP, der die aktuelle Ladung in Prozent ausgibt. Bspw. 82%. Nun möchte ich visualisieren, wie voll die Batterie ist. Das heißt, ich habe mehrere Icons, die verschiedene Füllstände der Batterie symbolisieren. Da die Sichtbarkeit der Icons in VIS2.0 nur über eine Bedingung (größer oder kleiner oder gleich) gesteuert werden kann, habe ich sozusagen Hilfsdatenpunkte angelegt. Das Script sorgt nun dafür dass immer nur ein einziger Datenpunkt wahr ist. Und je nachdem, welcher dieser Hilfsdatenpunkte wahr ist, wird dann das entsprechende Batterie-Icon auf sichtbar gesetzt. Das heißt, im Laufe des Tages bzw. der Nacht sollte immer ein anderer Hilfdatenpunkt auf wahr und die anderen auf falsch gesetzt werden. Oder passiert das auch, wenn ich das Scrip einmal starte?

              1 Reply Last reply Reply Quote 0
              • Codierknecht
                Codierknecht Developer Most Active last edited by Codierknecht

                @rasc sagte in Anfängerfrage; Script regelmäßig wiederholen:

                Es gibt jeweils einen DP, der die aktuelle Ladung in Prozent ausgibt

                Dann brauchst Du einen Trigger auf diesen DP, wenn Du da unbedingt mit Blockly ran willst.

                Würde aber mit einem Alias noch deutlich einfacher gehen:
                Du legst Dir im Objektbaum unterhalb von alias.0 einen DP vom Typ "Zeichenkette" an.
                Den lässt Du auf den DP mit dem Ladezustand "gucken".

                Nun kommt die Lesekonvertierung ins Spiel:

                '/pfad/zum/icon/battery_' + parseInt(val/10) + '.png'
                

                Das liefert z.B. bei einem Ladezustand von 75% einen Pfad wie /pfad/zum/icon/battery_7.png
                Jenachdem wie viele Icons Du hast, müsste man das evtl. noch leicht anpassen.

                Sieht dann im Ergebnis so aus:
                9b960bbc-7429-478b-abd4-a64fb28e285e-grafik.png

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

                  @rasc sagte: Wert Batterie kleiner als 80 und größer als 60 mache -> aktualiere DP 60 = wahr; DP 80 = falsch usw)

                  Vorschlag:

                  Blockly_temp.JPG

                  R 1 Reply Last reply Reply Quote 0
                  • Schmakus
                    Schmakus Developer last edited by

                    Warum so kompliziert?
                    Für VIS2 gibt es nun die Inventwo Widgets als Beta. Hier das Universal Widget. Mit dessen kannst in Abhängigkeit eines Wertes entprechend reagieren und das passende Bild anzeigen lassen.

                    In VIS1 war es das Multiwidget.

                    R 1 Reply Last reply Reply Quote 0
                    • R
                      RaSc @Schmakus last edited by

                      @schmakus said in Anfängerfrage; Script regelmäßig wiederholen:

                      Warum so kompliziert?
                      Für VIS2 gibt es nun die Inventwo Widgets als Beta. Hier das Universal Widget. Mit dessen kannst in Abhängigkeit eines Wertes entprechend reagieren und das passende Bild anzeigen lassen.

                      In VIS1 war es das Multiwidget.

                      Das finde ich auf den ersten Blick auch nicht gerade einfach. Muss ich mich am Wochenende mal mit beschäftigen.

                      1 Reply Last reply Reply Quote 0
                      • R
                        RaSc @paul53 last edited by

                        @paul53 said in Anfängerfrage; Script regelmäßig wiederholen:

                        @rasc sagte: Wert Batterie kleiner als 80 und größer als 60 mache -> aktualiere DP 60 = wahr; DP 80 = falsch usw)

                        Vorschlag:

                        Blockly_temp.JPG

                        Dieses "Falls Objekt..." habe ich gefunden. Dieses "icon" leider nicht.

                        Ich probiere es jetzt mal mit "Ausführen Interwall 10 Minuten". Mal sehen, ob das klappt.

                        Codierknecht 1 Reply Last reply Reply Quote 0
                        • Codierknecht
                          Codierknecht Developer Most Active @RaSc last edited by Codierknecht

                          @rasc sagte in Anfängerfrage; Script regelmäßig wiederholen:

                          Dieses "icon" leider nicht.

                          So heißt die Funktion. Wenn die erstellt ist, hat man auch einen passenden Block dazu.

                          @rasc sagte in Anfängerfrage; Script regelmäßig wiederholen:

                          Ich probiere es jetzt mal mit "Ausführen Interwall 10 Minuten".

                          Nicht machen!
                          Sowas macht man mit dem von @paul53 gezeigten Trigger!

                          Beschäftige Dich mal mit den Grundlagen:
                          https://forum.iobroker.net/topic/70481/blockly-for-dummies-starthilfe-und-tipps

                          R 1 Reply Last reply Reply Quote 1
                          • R
                            RaSc @Codierknecht last edited by

                            Nicht machen!
                            Sowas macht man mit dem von @paul53 gezeigten Trigger!

                            Und mittels "Zeitplan" ist das auch nicht sinnvoll?

                            Codierknecht 1 Reply Last reply Reply Quote 0
                            • Codierknecht
                              Codierknecht Developer Most Active @RaSc last edited by Codierknecht

                              @rasc sagte in Anfängerfrage; Script regelmäßig wiederholen:

                              Und mittels "Zeitplan" ist das auch nicht sinnvoll?

                              Nein - eigentlich nicht.
                              Du willst doch vermutlich, dass das Icon sich ändert, sobald sich der Ladezustand der Batterie ändert, oder?
                              Das macht man mit einem Trigger.
                              Der "abonniert" sozusagen die Änderungen des Datenpunktes und reagiert dann entsprechend.
                              Ändert sich nix, reagiert er nicht. Er "schläft" quasi.
                              Ändert sich der Wert im Sekundentakt, reagiert auch der Trigger jedesmal.

                              Klär uns doch mal auf: Wie viele Icons hast Du und wie lauten die Dateinamen?

                              R 1 Reply Last reply Reply Quote 0
                              • R
                                RaSc @Codierknecht last edited by

                                Das macht man mit einem Trigger.

                                Probiere ich jetzt aus.

                                Der "abonniert" sozusagen die Änderungen des Datenpunktes und reagiert dann entsprechend.
                                Ändert sich nix, reagiert er nicht. Er "schläft" quasi.
                                Ändert sich der Wert im Sekundentakt, reagiert auch der Trigger jedesmal.

                                OK. Ich hatte bei BYDHVS - Adapter folgendes gelesen: " I am definitely not sure if you harm your battery with polling this data too often, so be aware: You are on your own risk!" Das hat mich etwas verunsichert. Den Adapter nutze ich aber nicht.

                                Klär uns doch mal auf: Wie viele Icons hast Du und wie lauten die Dateinamen?

                                Sechs. Die Icons sind aus Addictive flavour icon set as PNG

                                Ist alles noch etwas Spielerei. Ich versuche, ioBroker zu verstehen.

                                Danke erstmal soweit.

                                Codierknecht 1 Reply Last reply Reply Quote 0
                                • Codierknecht
                                  Codierknecht Developer Most Active @RaSc last edited by Codierknecht

                                  @rasc sagte in Anfängerfrage; Script regelmäßig wiederholen:

                                  Sechs. Die Icons sind aus Addictive flavour icon set as PNG

                                  Hmmmm, ich sehe dort 7.
                                  Das wird aufgrund der verwendeten Dateinamen als Alias tatsächlich kompliziert bzw. unübersichtlich.

                                  Du machst das über die "Signalbilder"?
                                  Dann würde ich nur eines davon verwenden und den Dateinamen über ein Binding bestimmen.

                                  81daf348-78a2-4580-b0e2-96eecdb9fcfc-grafik.png

                                  Den Dateinamen ermittelt ein Script über den Ladezustand.

                                  6c754f14-d3bc-4e69-a472-7f17d5646539-grafik.png

                                  Funktioniert wunderbar 😀

                                  13ef148a-e4ab-4c8c-b792-14b7b8774095-grafik.png

                                  R 1 Reply Last reply Reply Quote 0
                                  • R
                                    RaSc @Codierknecht last edited by

                                    Du machst das über die "Signalbilder"?
                                    Dann würde ich nur eines davon verwenden und den Dateinamen über ein Binding bestimmen.

                                    Danke. Das klingt für mich im Moment sehr logisch.

                                    81daf348-78a2-4580-b0e2-96eecdb9fcfc-grafik.png

                                    Hier komme ich ins Schlingern. 0.userdata.0 ist ein Objektordner. Und was ist "icon"? Ein state - Objekt? Bzw. "SoC"? Die Daten kann ich doch direkt aus dem Adapter des Wechselrichters ziehen, oder nicht?

                                    Den Dateinamen ermittelt ein Script über den Ladezustand.

                                    Das Script verstehe ich soweit.

                                    Danke bis hierhin.

                                    Codierknecht 1 Reply Last reply Reply Quote 0
                                    • Codierknecht
                                      Codierknecht Developer Most Active @RaSc last edited by

                                      @rasc
                                      Unterhalb von 0_userdata.0 legt man seine eigenen Datenpunkte an.
                                      Ich habe mir dort einen mit Namen "Icon" angelegt, um den Dateinamen zu speichern.

                                      SoC ist der Datenpunkt, der den Ladezustand (State of charge) der Batterie liefert.
                                      Wo das bei herkommt, solltest Du am besten wissen 😉

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

                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate

                                      923
                                      Online

                                      31.9k
                                      Users

                                      80.2k
                                      Topics

                                      1.3m
                                      Posts

                                      4
                                      17
                                      589
                                      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