Skip to content
  • Home
  • 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
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Trigger zum einschalten -nur 1x

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    3.3k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

Trigger zum einschalten -nur 1x

Scheduled Pinned Locked Moved JavaScript
11 Posts 3 Posters 674 Views 2 Watching
  • 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.
  • O ostseeskipper

    Hallo Zusammen,

    Ich würde gern je nach zuerst eintretender Bedingung
    Einspeisung > 3 KW oder
    Speicherladung > 2 KW wenn Speicher mind 30%
    oder wenn der Sonnenhöchststand erreicht ist

    einen Trigger z.B. zur Warmwassererwärmung auslösen.

    Da muss es doch was im on() geben um nicht jede Änderung abzufangen und zu prüfen ob oder ob nicht was getan werden muss?
    Soll ja nur 1x am Tag eingeschaltet werden.
    Also nicht bei jedem mal wenn eine Bedingungen erreicht ist.

    Der Vollständigkeit halber wird Abends zum Beginn Sonnenuntergang wieder ausgeschaltet, ist aber kein Thema.

    cashC Offline
    cashC Offline
    cash
    Most Active
    wrote on last edited by
    #2

    @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
    0
    • O ostseeskipper

      Hallo Zusammen,

      Ich würde gern je nach zuerst eintretender Bedingung
      Einspeisung > 3 KW oder
      Speicherladung > 2 KW wenn Speicher mind 30%
      oder wenn der Sonnenhöchststand erreicht ist

      einen Trigger z.B. zur Warmwassererwärmung auslösen.

      Da muss es doch was im on() geben um nicht jede Änderung abzufangen und zu prüfen ob oder ob nicht was getan werden muss?
      Soll ja nur 1x am Tag eingeschaltet werden.
      Also nicht bei jedem mal wenn eine Bedingungen erreicht ist.

      Der Vollständigkeit halber wird Abends zum Beginn Sonnenuntergang wieder ausgeschaltet, ist aber kein Thema.

      CodierknechtC Online
      CodierknechtC Online
      Codierknecht
      Developer Most Active
      wrote on last edited by
      #3

      @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.

      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

      Proxmox 9.1.1 LXC|8 GB|Core i7-6700
      HmIP|ZigBee|Tasmota|Unifi
      Zabbix Certified Specialist
      Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

      1 Reply Last reply
      0
      • cashC cash

        @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 Offline
        O Offline
        ostseeskipper
        wrote on last edited by
        #4

        @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.

        CodierknechtC O 2 Replies Last reply
        0
        • O ostseeskipper

          @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.

          CodierknechtC Online
          CodierknechtC Online
          Codierknecht
          Developer Most Active
          wrote on last edited by Codierknecht
          #5

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

          "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

          Proxmox 9.1.1 LXC|8 GB|Core i7-6700
          HmIP|ZigBee|Tasmota|Unifi
          Zabbix Certified Specialist
          Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

          1 Reply Last reply
          1
          • O ostseeskipper

            @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.

            O Offline
            O Offline
            ostseeskipper
            wrote on last edited by
            #6

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

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

            CodierknechtC 2 Replies Last reply
            0
            • O ostseeskipper

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

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

              CodierknechtC Online
              CodierknechtC Online
              Codierknecht
              Developer Most Active
              wrote on last edited by
              #7

              @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);
                }
              });
              

              "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

              Proxmox 9.1.1 LXC|8 GB|Core i7-6700
              HmIP|ZigBee|Tasmota|Unifi
              Zabbix Certified Specialist
              Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

              1 Reply Last reply
              0
              • O ostseeskipper

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

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

                CodierknechtC Online
                CodierknechtC Online
                Codierknecht
                Developer Most Active
                wrote on last edited by
                #8

                @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.

                "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                HmIP|ZigBee|Tasmota|Unifi
                Zabbix Certified Specialist
                Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                1 Reply Last reply
                0
                • O Offline
                  O Offline
                  ostseeskipper
                  wrote on last edited by
                  #9

                  @codierknecht :+1:
                  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.

                  CodierknechtC 1 Reply Last reply
                  0
                  • O ostseeskipper

                    @codierknecht :+1:
                    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.

                    CodierknechtC Online
                    CodierknechtC Online
                    Codierknecht
                    Developer Most Active
                    wrote on last edited by
                    #10

                    @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.

                    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                    Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                    HmIP|ZigBee|Tasmota|Unifi
                    Zabbix Certified Specialist
                    Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                    O 1 Reply Last reply
                    0
                    • CodierknechtC Codierknecht

                      @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 Offline
                      O Offline
                      ostseeskipper
                      wrote on last edited by ostseeskipper
                      #11

                      @codierknecht :+1:
                      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
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      675

                      Online

                      32.7k

                      Users

                      82.3k

                      Topics

                      1.3m

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

                      • Don't have an account? Register

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