Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Einfaches Script wird nicht ausgeführt

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Einfaches Script wird nicht ausgeführt

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

      Hallo Zusammen

      Ich möchte ein Entfeuchtungsgerät welches an einer Homematic Schaltsteckdose ist bei folgenden Parametern anschalten:

      • Die Luftfeuchtigkeit (Hm-Sensor) ist über 55%
        und
      • Die Schaltsteckdose ist ausgeschaltet (um unnötige Signale zu senden falls das ganze bereits läuft)
        und
      • Die PV-Anlage erzeugt mehr als 1000W Strom

      Das ganze soll im Zeitraum zwischen 10 Uhr und 18 Uhr erfolgen.

      Wenn einer der o.g. Parameter nicht mehr zutrifft soll der Entfeuchter ausgeschaltet werden.

      Bildschirmfoto 2023-04-02 um 13.38.11.png

      Aktuell sind alle Parameter erfüllt, aber das Script schaltet die Steckdose nicht an.

      Wo liegt mein Fehler?

      Gruß

      miwi

      1 Reply Last reply Reply Quote 0
      • Thomas Braun
        Thomas Braun Most Active last edited by

        @miwi sagte in Einfaches Script wird nicht ausgeführt:

        Wo liegt mein Fehler?

        Man nutzt nicht einen Zeitplan als Trigger sondern hier die Luftfeuchtigkeit auf Veränderung und prüft dann die zusätzlichen Bedingungen. Und dann baut man noch eine Hysterese ein.

        Kann gerade kein Beispiel-Blockly zusammenschustern, bin unterwegs.

        Thomas Braun miwi 2 Replies Last reply Reply Quote 0
        • Thomas Braun
          Thomas Braun Most Active @Thomas Braun last edited by

          um unnötige Signale zu senden falls das ganze bereits läuft)

          Und so hämmerst du die 'unnötigen Signale' alle 10 Sekunden durch die Gegend. 🙂

          1 Reply Last reply Reply Quote 0
          • miwi
            miwi @Thomas Braun last edited by

            @thomas-braun said in Einfaches Script wird nicht ausgeführt:

            Man nutzt nicht einen Zeitplan als Trigger sondern hier die Luftfeuchtigkeit auf Veränderung und prüft dann die zusätzlichen Bedingungen. Und dann baut man noch eine Hysterese ein.

            Wie würde ich denn, wenn ich die Luftfeuchtigkeit als Trigger (wenn >55%) nutze, zusätzlich ein Zeitfenster definieren? Der Entfeuchter soll nur zwischen 10 und 18 Uhr laufen und dies auch nur wenn genügend PV-Strom zur Verfügung steht.

            Es müsste also denn als 2 Trigger der PV-Strom geprüft werden?

            Gruß

            miwi

            Thomas Braun 2 Replies Last reply Reply Quote 0
            • Thomas Braun
              Thomas Braun Most Active @miwi last edited by Thomas Braun

              @miwi

              Ungefähr so:
              362fa1e9-92a3-49d1-95d1-f9e5d492a43a-grafik.png

              1 Reply Last reply Reply Quote 0
              • Thomas Braun
                Thomas Braun Most Active @miwi last edited by

                @miwi sagte in Einfaches Script wird nicht ausgeführt:

                Es müsste also denn als 2 Trigger der PV-Strom geprüft werden?

                Ja, aber nicht als Trigger, sondern als Bedingung.
                Ein Trigger ist immer ein eintretendes Ereignis. Bei dir die Änderung der Luftfeuchtigkeit auf einen Wert > 55%.

                miwi 1 Reply Last reply Reply Quote 0
                • miwi
                  miwi @Thomas Braun last edited by

                  @thomas-braun
                  Bildschirmfoto 2023-04-02 um 19.08.10.png

                  Hoffe, dass das so läuft. Jedoch ist der Trigger ja jetzt der Feuchtigkeitssensor. Das bedeutet, dass sich der Wert ändern muss, damit der Trigger auslöst. Was ist denn, wenn der Wert sich den ganzen Tag nicht ändert, aber so hoch ist, dass das Script ausgeführt werden soll?

                  Gruß,

                  miwi

                  Thomas Braun paul53 5 Replies Last reply Reply Quote 0
                  • Thomas Braun
                    Thomas Braun Most Active @miwi last edited by

                    @miwi sagte in Einfaches Script wird nicht ausgeführt:

                    Was ist denn, wenn der Wert sich den ganzen Tag nicht ändert

                    Das ist aber höchst unwahrscheinlich, dass sich der Wert über eine so lange Zeit rein gar nicht ändert. Oder ist das eine Klimakammer da?

                    1 Reply Last reply Reply Quote 0
                    • Thomas Braun
                      Thomas Braun Most Active @miwi last edited by

                      @miwi
                      Und du kannst auch zu bestimmten Zeitpunkten schauen, ob ein Status gegeben ist.
                      Dafür werden dann Zeitpläne eingesetzt.

                      d010ee38-150e-4ca2-a2ce-806a69f42cfa-grafik.png

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

                        @miwi sagte: Hoffe, dass das so läuft.

                        Nicht "aktualisiere" sondern "steuere" verwenden!

                        1 Reply Last reply Reply Quote 0
                        • Thomas Braun
                          Thomas Braun Most Active @miwi last edited by

                          @miwi

                          Der Blockly-Magier @paul53 ist da. 🙂
                          Da bist du in besseren Händen als bei mir.

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

                            @miwi sagte: Was ist denn, wenn der Wert sich den ganzen Tag nicht ändert, aber so hoch ist, dass das Script ausgeführt werden soll?

                            Dann verwende eine Funktion, die auch bei Skriptstart aufgerufen wird.

                            Blockly_temp.JPG

                            Allerdings sollte besser eine Hysterese verwendet eingebaut werden, damit nicht im Grenzbereich ständig ein- und ausgeschaltet wird.

                            Blockly_temp.JPG

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

                              @paul53

                              Hab das Script gerade nachgebaut. Melde mich morgen Nachmittag und berichte ob es läuft.

                              Vielen lieben Dank für die Hilfe,

                              miwi

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

                                @paul53
                                Funktioniert perfekt.

                                Vielen Lieben Dank nochmal für die Hilfe.

                                Frage zum Verständnis: Warum wird im Skript mit internen Variablen gearbeitet und nicht direkt mit den Datenpunkten der Geräte?

                                Gruß

                                miwi

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

                                  @miwi sagte: Warum wird im Skript mit internen Variablen gearbeitet und nicht direkt mit den Datenpunkten

                                  Wenn im Skript ein Wert mehr als einmal verwendet wird, ist der Gebrauch von Variablen effizienter.

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

                                    Das Skript läuft jetzt seit ein paar Tagen problemlos, jedoch habe ich 2 Dinge die ich verbessern möchte.

                                    1. Der Trigger PV-Leistung ist die aktuelle Leistung welche die Photovoltaikanlage erzeut. Dieser Wert ändert sich alle paar Sekunden. Somit wird das Skript andauern ausgeführt. Mir würde es reichen, wenn alle 10 Minuten das Skript ausgeführt wird. Der Trigger Humidity ist leider zu träge. Dieser verändert sich bei ausgeschalteter Entfeuchtung (was vor erstem Betrieb am Morgen der Fall ist) so gut wie gar nicht.
                                      Sind die beiden "Falls Objekt"-Triggerobjekte "UND" oder "ODER" ?
                                      Wie kann ich anstelle eines PV-Leistungstriggers eine Zeitgesteuerte Auslösung alle 10 Minuten zwischen 10 und 18 Uhr realisieren?

                                    2. Es kann vorkommen, dass an Tagen an denen nicht ausreichen Strom von der PV Anlage kommt trotzdem der Entfeuchter (steht im Hauswirtschaftsraum wo auch Wäsche getrocknet wird) laufen soll.
                                      Hierzu drücken wir am Homematic Zwischenstecker in der Steckdose im Hauswirtschaftraum den AN/AUS Knopf.
                                      Da das Skript aber feststellt, dass die PV Anlage keine ausreichende Strommenge produziert schaltet das Skript den händisch auf AN gestellten Entfeuchter sofort wieder aus.
                                      Kann man über das physische Drücken des Schalters am Zwischenstecker auf AN das Skript solange stoppen bis a) der Schalter am Zwischenstecker physisch auf AUS gestellt wird oder b) es nach 18 Uhr ist und das Skript für den nächsten Tag wieder aktiv ist.

                                    Langsam wird aus "Einfaches Skript" das ganze etwas komplexer.

                                    Schöne Ostern,

                                    miwi

                                    paul53 2 Replies Last reply Reply Quote 0
                                    • paul53
                                      paul53 @miwi last edited by paul53

                                      @miwi sagte: Kann man über das physische Drücken des Schalters am Zwischenstecker auf AN das Skript solange stoppen bis a) der Schalter am Zwischenstecker physisch auf AUS gestellt wird

                                      Blockly_temp.JPG

                                      @miwi sagte in Einfaches Script wird nicht ausgeführt:

                                      Der Trigger Humidity ist leider zu träge. Dieser verändert sich bei ausgeschalteter Entfeuchtung (was vor erstem Betrieb am Morgen der Fall ist) so gut wie gar nicht.

                                      Das muss er auch nicht, denn das ist die Zielgröße. Oder ist der Sensor im Entfeuchter verbaut und braucht den Lüfter, um aktuelle Werte zu erfassen?

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

                                        @miwi sagte: an Tagen an denen nicht ausreichen Strom von der PV Anlage kommt trotzdem der Entfeuchter (steht im Hauswirtschaftsraum wo auch Wäsche getrocknet wird) laufen soll.

                                        Diese Version überbrückt nur die PV-Auswertung bei manuellem Einschalten, lässt aber die Feuchte-Regelung in Betrieb:

                                        Blockly_temp.JPG

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

                                          @paul53 said in Einfaches Script wird nicht ausgeführt:

                                          Oder ist der Sensor im Entfeuchter verbaut und braucht den Lüfter, um aktuelle Werte zu erfassen?

                                          Der Luftfeuchtesensor ist ein separates Homematicgerät. Somit werden die Werte unabhängig vom Zustand des Entfeuchters aufgezeichnet.

                                          Was ist denn system.adapter.javascript ?

                                          Gruss

                                          miwi

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

                                            @miwi sagte: Was ist denn system.adapter.javascript ?

                                            "system.adapter.javascript.0" ist die Quelle der Wertänderung, wenn sie vom Skript verursacht wird (Block "steuere").

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            584
                                            Online

                                            32.0k
                                            Users

                                            80.5k
                                            Topics

                                            1.3m
                                            Posts

                                            4
                                            25
                                            886
                                            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