Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
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
    2.6k

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.3k

Trigger zum einschalten -nur 1x

Geplant Angeheftet Gesperrt Verschoben JavaScript
11 Beiträge 3 Kommentatoren 662 Aufrufe 2 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • 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
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    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
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      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
        schrieb am zuletzt editiert von
        #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 Antworten Letzte Antwort
        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
          schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
          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
            schrieb am zuletzt editiert von
            #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 Antworten Letzte Antwort
            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
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              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
                schrieb am zuletzt editiert von
                #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 Antwort Letzte Antwort
                0
                • O Offline
                  O Offline
                  ostseeskipper
                  schrieb am zuletzt editiert von
                  #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 Antwort Letzte Antwort
                  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
                    schrieb am zuletzt editiert von
                    #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 Antwort Letzte Antwort
                    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
                      schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                      0
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      697

                      Online

                      32.6k

                      Benutzer

                      82.3k

                      Themen

                      1.3m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

                      • Anmelden oder registrieren, um zu suchen
                      • Erster Beitrag
                        Letzter Beitrag
                      0
                      • Home
                      • Aktuell
                      • Tags
                      • Ungelesen 0
                      • Kategorien
                      • Unreplied
                      • Beliebt
                      • GitHub
                      • Docu
                      • Hilfe