Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Trigger zum einschalten -nur 1x

    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

    Trigger zum einschalten -nur 1x

    This topic has been deleted. Only users with topic management privileges can see it.
    • cash
      cash Most Active @ostseeskipper last edited by

      @ostseeskipper Grundsätzlich reagiert ein Script auf ein Trigger. In Deinem Fall also 3 Trigger. Immer wenn nun ein Wert von den 3 Objekten sich ändert läuft das Script. Ob es dann was macht oder nicht entscheidest Du mit der Programmierung.

      Wenn nun die Einspeisung von 1,0 auf 1,1 springt läuft das Script los:

      Wenn Einspeisung > 3kW schalte Warmwassererwärmung an.

      Wenn Du ihm nicht sagt was er bei Einspeisung < 3 Kw macht das Script einfach nichts. Alternativ könnte man z. B. ein log ausgeben.

      Wenn wir jetzt weitergehen wäre es besser zu sagen

      wenn Einspeisung > 3kw und Warmwassererwärmung ist noch nicht an schalte sie ein.
      Auch hier macht das Script nichts wenn Du ihm nicht sagt was es machen soll wenn die Einspeisung >3kw aber die Warmwassererwärmung bereits an ist

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

        @ostseeskipper
        3 Trigger (Einspeisung, Speicherladung, Sonnenmittag) und nur schalten wenn nicht "on".
        Das mit Gewalt in nur einen Trigger zu prügeln halte ich persönlich für suboptimal.
        Einspeisung und Speicherladung könnte man noch in einem Trigger zusammenfassen, aber dann müsste man auch wieder ermitteln, wer nun gerade ausgelöst hat.

        1 Reply Last reply Reply Quote 0
        • O
          ostseeskipper @cash last edited by

          @cash
          das bekomme ich ja hin, es ist nur so das dann das Script tagsüber jede Sekunde aufgerufen wird nur um festzustellen das nichts zu tun ist.
          Geht mir irgendwie gegen den Strich.
          Mittags wird ja auch nur 1x ausgelöst, das würde ich in einen zweiten Trigger nehmen wie @Codierknecht gerade empfohlen hat.

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

            @ostseeskipper
            Vorschlag:
            0364099e-9f94-406d-8258-b6e8305738c0-grafik.png

            1 Reply Last reply Reply Quote 1
            • O
              ostseeskipper @ostseeskipper last edited by

              @Codierknecht
              Danke für deine Mühe, ich weiss das wirklich zu schätzen👍 , falls du das noch wo auf hast, magst du bitte im blockly auf JS gehen und das posten.
              Blockly ist nicht meins😕

              Gibts im ioBroker/JS eigentlich ne Möglichkeit sich eine Funktionsbibliothek zu errichten um von mehreren Scripten aus darauf zuzugreifen?

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

                @ostseeskipper
                Da haste aber Glück 😉
                Da war übrigens noch ein Fehler drin. Habe ich oben korrigiert

                var warmwasserOn, value;
                
                // Beschreibe diese Funktion …
                async function einschalten(value) {
                  if (warmwasserOn != value) {
                    warmwasserOn = value;
                    setState("Object ID", value);
                  }
                }
                
                warmwasserOn = getState("ID auswählen").val;
                
                schedule({astro: "sunset", shift: 0}, async function () {
                  await einschalten(false);
                });
                
                schedule({astro: "solarNoon", shift: 0}, async function () {
                  await einschalten(true);
                });
                
                on({id: "Object ID", change: "ne"}, async function (obj) {
                  var value = obj.state.val;
                  var oldValue = obj.oldState.val;
                  if ((obj.state ? obj.state.val : "") >= 2000 && getState("ID auswählen").val >= 30) {
                    await einschalten(true);
                  }
                });
                
                on({id: "Object ID", change: "ne"}, async function (obj) {
                  var value = obj.state.val;
                  var oldValue = obj.oldState.val;
                  if ((obj.state ? obj.state.val : "") >= 5000) {
                    await einschalten(true);
                  }
                });
                
                1 Reply Last reply Reply Quote 0
                • Codierknecht
                  Codierknecht Developer Most Active @ostseeskipper last edited by

                  @ostseeskipper sagte in Trigger zum einschalten -nur 1x:

                  Gibts im ioBroker/JS eigentlich ne Möglichkeit sich eine Funktionsbibliothek zu errichten um von mehreren Scripten aus darauf zuzugreifen?

                  Ja - globale Scripte.
                  Die werden dann aber nicht von den anderen Scripten aufgerufen, sondern in die anderen Scripte "reinkopiert".
                  Sollte man auch vorsichtig mit sein. Wenn die mal Amok laufen, knallt's so richtig.

                  1 Reply Last reply Reply Quote 0
                  • O
                    ostseeskipper last edited by

                    @codierknecht 👍
                    Ich frag deshalb weil ich die Funktionen zum ein und ausschalten schon programmiert habe, prüfung ob Mensch nicht doch lieber die Automatik aus haben will.
                    Es gibt bereits in einem anderen Script ein Trigger der zum Sonnenuntergang läuft. Jetzt noch einen 2ten auch zum Sonnenuntergang soll ja nicht so wirklich gemacht werden. Will aber auch die ausschaltfunktion nicht in 2 Scripten haben.

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

                      @ostseeskipper
                      Ich würde das alles in einem einzigen Script zusammenfassen.
                      Alles zum gleichen Thema an einem Platz.
                      Dann braucht's auch keine "globale" Funktion. Die sind wie gesagt mit äußerster Vorsicht zu genießen.

                      O 1 Reply Last reply Reply Quote 0
                      • O
                        ostseeskipper @Codierknecht last edited by ostseeskipper

                        @codierknecht 👍
                        Versuch ich, alles zum gleichen Thema an einen Platz,
                        z.B. alles was beim sonnenuntergang passieren soll. einiges davon soll aber vorher schon durch Mensch oder andere Einflüsse ausgeschaltet werden können.
                        und die Scripte sollen ja auch nicht zu riesig werden und lesbar bleiben. Werd mir mal überlegen doch einige zusammenzulegen.
                        Alternativ mach ich shift -10 Minuten

                        schedule({astro: "solarNoon", shift: -10}, async function () {
                        
                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        584
                        Online

                        31.9k
                        Users

                        80.1k
                        Topics

                        1.3m
                        Posts

                        3
                        11
                        386
                        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