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. Wie einfache Zeitschaltung?

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.7k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.1k

Wie einfache Zeitschaltung?

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
34 Beiträge 7 Kommentatoren 9.1k Aufrufe
  • Ä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.
  • rantanplanR Offline
    rantanplanR Offline
    rantanplan
    schrieb am zuletzt editiert von
    #12

    @noxx:

    trotzdem eine Frage zum Digramm: Schaltet die Pumpe immer nach 30 Minuten ab? `

    Wie paul53 bereits geschrieben hat, Ja.

    Wenn die Bedingungen weiter erfüllt werden, schaltet sich die Pumpe aber nach einer Minute wieder für 30 Min. ein.

    Grüße

    Rantanplan

    CCU3 / MS Server 2019(VM) / Scripten mit Blockly

    1 Antwort Letzte Antwort
    0
    • N Offline
      N Offline
      noxx
      schrieb am zuletzt editiert von
      #13

      ok, hatte ich mir fast gedacht.

      ich probiere es mal aus. evtl macht es mehr sinn, sofern

      man keine Mindestlaufzeit definieren kann, auf

      WENN (ZWISCHEN 12:00 und 17:00) UND (T>25,0) PUMPE AN

      WENN (ZWISCHEN 12:00 und 17:00) UND (T<24,5) PUMPE AUS

      anzupassen. Ich probiere es mal aus…

      1 Antwort Letzte Antwort
      0
      • paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von
        #14

        @noxx:

        …sofern man keine Mindestlaufzeit definieren kann `
        Kann man (siehe mein 2. Skript).

           } else if(aktor && !minOn) setState(idAktor, false);
        

        schaltet nur aus, wenn der Aktor "Ein" und die Mindestlaufzeit (minOn) bereits abgelaufen ist.

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        1 Antwort Letzte Antwort
        0
        • rantanplanR Offline
          rantanplanR Offline
          rantanplan
          schrieb am zuletzt editiert von
          #15

          @paul53:

          @noxx:

          …sofern man keine Mindestlaufzeit definieren kann `
          Kann man (siehe mein 2. Skript).

             } else if(aktor && !minOn) setState(idAktor, false);
          

          schaltet nur aus, wenn der Aktor "Ein" und die Mindestlaufzeit (minOn) bereits abgelaufen ist. `
          Ginge auch in Blockly ;)

          Das Thema lautet doch "wie EINFACHE Zeitschaltung" :D

          Und möchte noxx ein fertiges Script von uns oder möchte er auch noch etwas tun? ;)

          Liebe Grüße

          Rantanplan

          CCU3 / MS Server 2019(VM) / Scripten mit Blockly

          1 Antwort Letzte Antwort
          0
          • N Offline
            N Offline
            noxx
            schrieb am zuletzt editiert von
            #16

            Schon gut :-)

            Ich werde es mal versuchen…

            Gruß

            Gesendet von meinem GT-I9195 mit Tapatalk

            1 Antwort Letzte Antwort
            0
            • M Offline
              M Offline
              Master77
              schrieb am zuletzt editiert von
              #17

              Hallo zusammen….

              Ich hoffe für noxx ist es OK wenn ich mich mal mit in das Thema einklinken da ich ebenfalls auf der Suche nach einer ganz einfachen Zeitschaltuhr bin. Befasse mich erst seit kurzem mit IoBroker und allem was dazu gehört. Bisher habe ich auch schon einiges hin bekommen. Woran ich jedoch verzweifel ist Java Skript und Blockly. Ich bin jetzt schon ein paar Tage an dem Thema und bekomme es einfach nicht hin. Ich habe die Blocks wie ich der Meinung war wie sie richtig zusammen gesetzt werden abgespeichert und in Vis habe ich das Skript dann dem entsprechenden Schalter zugewiesen. Ohne Erfolg. Kann sich das mal einer von euch anschauen? Es geht um eine Pumpe die zwischen 10.00 Uhr und 18.00 laufen soll. Wenn ich sie von Hand vorher anschalte, soll sie an bleiben in dem vorgegebenen Zeitraum und dann aus gehen. Der letzte Versuch sah wie folgt aus. Danke im voraus für eure Hilfe.~~![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201707 ... 3ebc4a.jpg">https://uploads.tapatalk-cdn.com/20170706/17cd392fdb0c032cd924fcc3833ebc4a.jpg</link_text>" />

              Gesendet von meinem HUAWEI NXT-L29 mit Tapatalk~~

              1 Antwort Letzte Antwort
              0
              • D Offline
                D Offline
                dna909
                schrieb am zuletzt editiert von
                #18

                @Master77:

                Hallo zusammen….

                Ich hoffe für noxx ist es OK wenn ich mich mal mit in das Thema einklinken da ich ebenfalls auf der Suche nach einer ganz einfachen Zeitschaltuhr bin. Befasse mich erst seit kurzem mit IoBroker und allem was dazu gehört. Bisher habe ich auch schon einiges hin bekommen. Woran ich jedoch verzweifel ist Java Skript und Blockly. Ich bin jetzt schon ein paar Tage an dem Thema und bekomme es einfach nicht hin. Ich habe die Blocks wie ich der Meinung war wie sie richtig zusammen gesetzt werden abgespeichert und in Vis habe ich das Skript dann dem entsprechenden Schalter zugewiesen. Ohne Erfolg. Kann sich das mal einer von euch anschauen? Es geht um eine Pumpe die zwischen 10.00 Uhr und 18.00 laufen soll. Wenn ich sie von Hand vorher anschalte, soll sie an bleiben in dem vorgegebenen Zeitraum und dann aus gehen. Der letzte Versuch sah wie folgt aus. Danke im voraus für eure Hilfe.~~![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201707 ... 3ebc4a.jpg">https://uploads.tapatalk-cdn.com/20170706/17cd392fdb0c032cd924fcc3833ebc4a.jpg</link_text>" />

                Gesendet von meinem HUAWEI NXT-L29 mit Tapatalk~~ ` ~~Dein Trigger macht keinen Sinn. Benutze dafür den Zeitplan und lasse das in bestimmten Intervallen ausführen.

                MfG

                dna909~~

                Intel NUC7PJYH mit Proxmox, Odroid U2, CCU2, Philips Hue, ESP8266, Xiaomi Robot, Google Chromecast Audio, Instar 6012HD, Bosch HNG6764S6

                1 Antwort Letzte Antwort
                0
                • M Offline
                  M Offline
                  Master77
                  schrieb am zuletzt editiert von
                  #19

                  Hallo

                  Kannst du mir bei der Zusammenstellung der Blöcke behilflich sein? Wie gesagt, ich tue mich noch ein wenig schwer damit….

                  Gesendet von meinem HUAWEI NXT-L29 mit Tapatalk

                  1 Antwort Letzte Antwort
                  0
                  • D Offline
                    D Offline
                    dna909
                    schrieb am zuletzt editiert von
                    #20

                    @Master77:

                    Hallo

                    Kannst du mir bei der Zusammenstellung der Blöcke behilflich sein? Wie gesagt, ich tue mich noch ein wenig schwer damit….

                    Gesendet von meinem HUAWEI NXT-L29 mit Tapatalk `

                    Probiers mal so, Datenpunkte musst Du natürlich anpassen:
                    2269_unbenannt2.png

                    Intel NUC7PJYH mit Proxmox, Odroid U2, CCU2, Philips Hue, ESP8266, Xiaomi Robot, Google Chromecast Audio, Instar 6012HD, Bosch HNG6764S6

                    1 Antwort Letzte Antwort
                    0
                    • M Offline
                      M Offline
                      Master77
                      schrieb am zuletzt editiert von
                      #21

                      Vielen Dank. Werde ich nachher direkt mal testen und dann berichten.

                      Gesendet von meinem HUAWEI NXT-L29 mit Tapatalk

                      1 Antwort Letzte Antwort
                      0
                      • lobomauL Offline
                        lobomauL Offline
                        lobomau
                        schrieb am zuletzt editiert von
                        #22

                        @dna909:

                        @Master77:

                        Hallo zusammen….

                        Ich hoffe für noxx ist es OK wenn ich mich mal mit in das Thema einklinken da ich ebenfalls auf der Suche nach einer ganz einfachen Zeitschaltuhr bin. Befasse mich erst seit kurzem mit IoBroker und allem was dazu gehört. Bisher habe ich auch schon einiges hin bekommen. Woran ich jedoch verzweifel ist Java Skript und Blockly. Ich bin jetzt schon ein paar Tage an dem Thema und bekomme es einfach nicht hin. Ich habe die Blocks wie ich der Meinung war wie sie richtig zusammen gesetzt werden abgespeichert und in Vis habe ich das Skript dann dem entsprechenden Schalter zugewiesen. Ohne Erfolg. Kann sich das mal einer von euch anschauen? Es geht um eine Pumpe die zwischen 10.00 Uhr und 18.00 laufen soll. Wenn ich sie von Hand vorher anschalte, soll sie an bleiben in dem vorgegebenen Zeitraum und dann aus gehen. Der letzte Versuch sah wie folgt aus. Danke im voraus für eure Hilfe.~~![](</s><URL url=)<link_text text="https://uploads.tapatalk-cdn.com/201707 ... 3ebc4a.jpg">https://uploads.tapatalk-cdn.com/20170706/17cd392fdb0c032cd924fcc3833ebc4a.jpg</link_text>" />

                        Gesendet von meinem HUAWEI NXT-L29 mit Tapatalk~~ ` ~~Dein Trigger macht keinen Sinn. Benutze dafür den Zeitplan und lasse das in bestimmten Intervallen ausführen.

                        MfG

                        dna909~~ ` ~~Stimmt. Dein Trigger macht keinen Sinn.

                        Das Bespiel von dna909 konnte ich nicht ganz nachvollziehen, deswegen nochmal eine andere Möglichkeit, falls die nicht laufen sollte.

                        Ich würde einfach um 18 Uhr prüfen ob die Pumpe aus ist -> dann einschalten; und um 18 Uhr prüfen ob sie läuft -> dann ausschalten.

                        Zusätzlich soll man die Pumpe zwischen 10 und 18 Uhr nicht ausschalten dürfen, d.h. sie schaltet immer in diesem Zeitraum an, falls man sie (aus Versehen) ausschaltet:

                        EDIT: in dem Beispiel würde die Pumpe nach 18 Uhr natürlich durchlaufen bis 18 Uhr, es sei denn man schaltet sie aus, wenn es nicht zw. 10 und 18 Uhr ist. Also das könnte man noch abfangen.

                        1146_unbenannt.jpg

                        Blockly Code:

                        ! <xml 1999/xmlns="<URL url=" http:/www.w3.org/xhtml"="">http://www.w3.org/1999/xhtml">
                        ! <block type="schedule" id="tg]HB5dw=O)Y:ThO4e_i" x="138" y="87"><field name="SCHEDULE">0 10 * * </field>
                        ! <statement name="STATEMENT"><block type="controls_if" id=";B4MZTZs)?584%[:Hrqz"><value name="IF0"><block type="logic_compare" id="ITMwFh
                        CL{+8I-gxdeL#"><field name="OP">EQ</field>
                        ! <value name="A"><block type="get_value" id="QWkcfS0Xt@1-|4JX`p~"><field name="ATTR">val</field>
                        ! <field name="OID">hm-rpc.0.LEQ0183615.1.STATE</field></block></value>
                        ! <value name="B"><block type="logic_boolean" id="M
                        ]/5X28i)cB-xKzvxc"><field name="BOOL">FALSE</field></block></value></block></value>
                        ! <statement name="DO0"><block type="control" id="b^mJ2E#@h%pv#=P2(uF7"><mutation delay_input="false"></mutation>
                        ! <field name="OID">hm-rpc.0.LEQ0183615.1.STATE</field>
                        ! <field name="WITH_DELAY">FALSE</field>
                        ! <value name="VALUE"><block type="logic_boolean" id="%^|XcteMCnsJ{F`o,GXW"><field name="BOOL">TRUE</field></block></value></block></statement></block></statement>
                        ! <next><block type="schedule" id="%3w-`2Y;EBEk6OQf6Fz-"><field name="SCHEDULE">0 18 * * </field>
                        ! <statement name="STATEMENT"><block type="controls_if" id="[RrY9:vooU9Cq_e#^lYp"><value name="IF0"><block type="logic_compare" id="T2bO8;w3zS%)kcp@;c3"><field name="OP">EQ</field>
                        ! <value name="A"><block type="get_value" id="xNh)O:FOtk;Sj1J.hMtF"><field name="ATTR">val</field>
                        ! <field name="OID">hm-rpc.0.LEQ0183615.1.STATE</field></block></value>
                        ! <value name="B"><block type="logic_boolean" id="mS8TX!w
                        ~7)tL_BP7k)"><field name="BOOL">TRUE</field></block></value></block></value>
                        ! <statement name="DO0"><block type="control" id=")5cv|.F`1aAqM~f%b=#"><mutation delay_input="false"></mutation>
                        ! <field name="OID">hm-rpc.0.LEQ0183615.1.STATE</field>
                        ! <field name="WITH_DELAY">FALSE</field>
                        ! <value name="VALUE"><block type="logic_boolean" id="ko+r3aF|nR;DCl8rp4Ym"><field name="BOOL">FALSE</field></block></value></block></statement></block></statement>
                        ! <next><block type="on_ext" id="*cI4N9R^w+
                        `a.=0vBjR"><mutation items="1"></mutation>
                        ! <field name="CONDITION">ne</field>
                        ! <value name="OID0"><shadow type="field_oid" id="#juxne4;52U=J:ZC-Kj."><field name="oid">hm-rpc.0.LEQ0183615.1.STATE</field></shadow></value>
                        ! <statement name="STATEMENT"><block type="controls_if" id="+]3bM6JXd`/AqQ.b[6DZ"><value name="IF0"><block type="logic_operation" id="A!k=5mNd;.)Kq-T,WChz" inline="false"><field name="OP">AND</field>
                        ! <value name="A"><block type="time_compare" id="c!`3#wtN8Bm.my7i+vD)"><mutation end_time="true"></mutation>
                        ! <field name="OPTION">between</field>
                        ! <field name="START_TIME">10:00</field>
                        ! <field name="END_TIME">18:00</field></block></value>
                        ! <value name="B"><block type="logic_compare" id="7nX3f[f)M%Q#/PZn}Q-1"><field name="OP">EQ</field>
                        ! <value name="A"><block type="get_value" id="^x-kBOauN;)6es6aHrU_"><field name="ATTR">val</field>
                        ! <field name="OID">hm-rpc.0.LEQ0183615.1.STATE</field></block></value>
                        ! <value name="B"><block type="logic_boolean" id="mAY
                        ^v?7W%l[6?OQ6to1"><field name="BOOL">FALSE</field></block></value></block></value></block></value>
                        ! <statement name="DO0"><block type="control" id="x:m~n]#dINvw4:Ym.uag"><mutation delay_input="false"></mutation>
                        ! <field name="OID">hm-rpc.0.LEQ0183615.1.STATE</field>
                        ! <field name="WITH_DELAY">FALSE</field>
                        ! <value name="VALUE"><block type="logic_boolean" id="HX[U9~bgI?14H|/yEs2^"><field name="BOOL">TRUE</field></block></value></block></statement></block></statement></block></next></block></next></block></xml>~~

                        Host: NUC8i3 mit Proxmox:

                        • ioBroker CT Debian 13, npm 10.9.4, nodejs 22.21.0
                        • Slave: Pi4
                        1 Antwort Letzte Antwort
                        0
                        • rantanplanR Offline
                          rantanplanR Offline
                          rantanplan
                          schrieb am zuletzt editiert von
                          #23

                          Hallo Master77

                          dna909 hat Recht. Dein Trigger macht keinen Sinn. Sein Vorschlag geht in die richtige Richtung.

                          Du musst immer überlegen, was ein Trigger macht.

                          Ein Trigger reagiert auf Ereignisse.

                          Erst wenn das gewünschte/überwachte Ereignis eintritt, werden die Bausteine innerhalb der Triggers (einmalig) ausgeführt.

                          Dann wird auf das nächste Ereignis gewartet.

                          Dein Trigger wartet auf die Änderung eines Schalters.

                          Tritt das Ereignis ein, fragst Du die Zeit ab und schaltest den Schalter nochmal.

                          Blocklys kann man gut von oben nach unten lesen.

                          Machen wir das doch mal.

                          Dein Trigger überwacht den Schalter auf "Änderung".

                          Der Trigger startet wenn der Zustand des Schalters "wahr" und "unwahr" wird.

                          Jetzt muss man nur noch einige Möglichkeiten durchspielen.

                          Schalter wird eingeschaltet (wahr)

                          Falls Zeit zwischen 18 und 24 Uhr , wird er nochmal eingeschaltet (wahr)

                          Sonst wird er wieder ausgeschaltet (unwahr)

                          Das macht nicht wirklich Sinn. Ausser Du möchtest den Schalter nur zu bestimmten Zeiten schalten können.

                          Du möchtest aber den Schalter zu bestimmten Zeiten automatisch schalten.

                          Also musst Du die Zeit triggern und dann überprüfen ob der Zeitpunkt stimmt.

                          So wie Dir dna909 das vorgeschlagen hat.

                          Ganz wichtig ist auch in seinem Beispiel, die vorherige Abfrage des aktuellen Schalterzustands.

                          Wenn der Schalter schon "wahr" ist, muss er nicht nochmal eingeschaltet werden. Oder umgekehrt.

                          Das macht zwar nichts kaputt, erhöht aber unnötig den Funkverkehr (DutyCycle).

                          Also nichts schalten, was nicht geschaltet werden muss.

                          Grüße

                          Rantanplan

                          CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                          1 Antwort Letzte Antwort
                          0
                          • rantanplanR Offline
                            rantanplanR Offline
                            rantanplan
                            schrieb am zuletzt editiert von
                            #24

                            So wie lobomau das gemacht hat geht es natürlich auch.

                            (ist aber etwas umständlicher)

                            Viele Wege führen nach Rom.

                            Grüße

                            Rantanplan

                            CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                            1 Antwort Letzte Antwort
                            0
                            • M Offline
                              M Offline
                              Master77
                              schrieb am zuletzt editiert von
                              #25

                              Vielen Dank für die hilfreichen Tipps und die zusammengestellten Skripte. Wie gesagt, ich bin gerade erst am Anfang mit IoBroker. Habe bereits einiges hin bekommen, nur die Sache mit Blockly macht mir zu schaffen. Nachdem ich eure Zusammenstellung sehe kommt langsam Licht ins Dunkel. Werde die ganze Sache mal testen und dann wie gesagt sofort berichten. Nochmals vielen Dank…..

                              Gruß Markus

                              Gesendet von meinem HUAWEI NXT-L29 mit Tapatalk

                              1 Antwort Letzte Antwort
                              0
                              • N Offline
                                N Offline
                                noxx
                                schrieb am zuletzt editiert von
                                #26

                                @paul53:

                                Bessere Lösung, da hier das Senden nach einer Minute wiederholt wird, falls es nicht erfolgreich (Ack = true) war:

                                var idTemp = 'rflink.0.channels.Cresta_1.TEMP';
                                var idAktor = 'fritzdect.0.DECT200_087610163304.state';
                                
                                var minOn = false;
                                var temp = getState(idTemp).val;
                                var aktor = getState(idAktor).val;
                                
                                function Zeitschaltung() {
                                   var morgen = compareTime('08:00', '09:00', 'between');
                                   var mittag = compareTime('12:00', '17:00', 'between');
                                   var abend = compareTime('18:00', '20:00', 'between');
                                   if(morgen || (mittag && temp > 25) || abend) {
                                      if(!aktor) setState(idAktor, true);
                                   } else if(aktor && !minOn) setState(idAktor, false);
                                }
                                
                                schedule('* * * * *', Zeitschaltung);  // jede Minute
                                
                                on(idTemp, function(dp) {
                                   temp = dp.state.val;
                                });
                                
                                on({id: idAktor, ack: true}, function(dp) {
                                   aktor = dp.state.val;
                                   if(aktor) {
                                      minOn = true;
                                      setTimeout(function() {minOn = false;}, 1800000);  // 30 Minuten
                                   }
                                }); 
                                ```` `  
                                

                                Hallo,

                                bin gerade zufällig zuhause und sehe das die Pumpe läuft.

                                fritzdect.0	2017-07-07 13:08:02.327	info	polling! fritzdect is alive
                                fritzdect.0	2017-07-07 13:06:00.916	info	Turned switch 087610163304 on
                                fritzdect.0	2017-07-07 13:06:00.157	info	SWITCH ID: 087610163304 identified for command
                                fritzdect.0	2017-07-07 13:03:02.314	info	polling! fritzdect is alive
                                fritzdect.0	2017-07-07 13:03:00.920	info	Turned switch 087610163304 off
                                fritzdect.0	2017-07-07 13:03:00.158	info	SWITCH ID: 087610163304 identified for command
                                fritzdect.0	2017-07-07 13:02:00.921	info	Turned switch 087610163304 off
                                fritzdect.0	2017-07-07 13:02:00.157	info	SWITCH ID: 087610163304 identified for command
                                fritzdect.0	2017-07-07 13:00:01.320	info	Turned switch 087610163304 off
                                fritzdect.0	2017-07-07 13:00:00.166	info	SWITCH ID: 087610163304 identified for command
                                fritzdect.0	2017-07-07 12:59:00.905	info	Turned switch 087610163304 off
                                fritzdect.0	2017-07-07 12:59:00.156	info	SWITCH ID: 087610163304 identified for command
                                fritzdect.0	2017-07-07 12:58:02.307	info	polling! fritzdect is alive
                                fritzdect.0	2017-07-07 12:58:00.912	info	Turned switch 087610163304 on
                                fritzdect.0	2017-07-07 12:58:00.156	info	SWITCH ID: 087610163304 identified for command
                                fritzdect.0	2017-07-07 12:57:01.332	info	Turned switch 087610163304 on
                                fritzdect.0	2017-07-07 12:57:00.155	info	SWITCH ID: 087610163304 identified for command
                                fritzdect.0	2017-07-07 12:56:00.925	info	Turned switch 087610163304 on
                                fritzdect.0	2017-07-07 12:56:00.156	info	SWITCH ID: 087610163304 identified for command
                                fritzdect.0	2017-07-07 12:55:00.915	info	Turned switch 087610163304 on
                                fritzdect.0	2017-07-07 12:55:00.155	info	SWITCH ID: 087610163304 identified for command
                                

                                ID der Temp Sensors:

                                rflink.0.channels.Cresta_1.TEMP

                                Aktuell 23,2°. Normal dürfte die doch nicht angehen, oder?
                                2880_1.png

                                1 Antwort Letzte Antwort
                                0
                                • paul53P Offline
                                  paul53P Offline
                                  paul53
                                  schrieb am zuletzt editiert von
                                  #27

                                  @noxx:

                                  Aktuell 23,2°. Normal dürfte die doch nicht angehen, oder? `
                                  War es vielleicht zwischen 12:45 und 13:00 mal über 25 °C und die Pumpe läuft noch aufgrund der Mindestlaufzeit ?

                                  Um zu sehen, was wann passiert, helfen zum Testen ein par Logs, z.B. am Ende der Funktion Zeitschaltung

                                      log('morgen: ' + morgen + ', mittag: ' + mittag + ', Temperatur: ' + temp + ', abend: ' + abend + ', Mindestlaufzeit: ' + minOn);
                                  

                                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                  Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                  1 Antwort Letzte Antwort
                                  0
                                  • N Offline
                                    N Offline
                                    noxx
                                    schrieb am zuletzt editiert von
                                    #28

                                    Nein, habe gerade Pumpe ausgeschaltet und nun ist die wieder

                                    an

                                    fritzdect.0	2017-07-07 14:43:02.520	info	polling! fritzdect is alive
                                    fritzdect.0	2017-07-07 14:40:01.339	info	Turned switch 087610163304 on
                                    fritzdect.0	2017-07-07 14:40:00.157	info	SWITCH ID: 087610163304 identified for command
                                    fritzdect.0	2017-07-07 14:38:02.509	info	polling! fritzdect is alive
                                    fritzdect.0	2017-07-07 14:36:00.924	info	Turned switch 087610163304 off
                                    fritzdect.0	2017-07-07 14:36:00.156	info	SWITCH ID: 087610163304 identified for command
                                    fritzdect.0	2017-07-07 14:35:00.923	info	Turned switch 087610163304 off
                                    fritzdect.0	2017-07-07 14:35:00.157	info	SWITCH ID: 087610163304 identified for command
                                    fritzdect.0	2017-07-07 14:34:01.457	info	Turned switch 087610163304 off
                                    fritzdect.0	2017-07-07 14:34:00.156	info	SWITCH ID: 087610163304 identified for command
                                    fritzdect.0	2017-07-07 14:33:02.500	info	polling! fritzdect is alive
                                    fritzdect.0	2017-07-07 14:32:00.935	info	Turned switch 087610163304 on
                                    fritzdect.0	2017-07-07 14:32:00.158	info	SWITCH ID: 087610163304 identified for command
                                    fritzdect.0	2017-07-07 14:31:00.954	info	Turned switch 087610163304 on
                                    fritzdect.0	2017-07-07 14:31:00.158	info	SWITCH ID: 087610163304 identified for command
                                    fritzdect.0	2017-07-07 14:30:00.933	info	Turned switch 087610163304 on
                                    fritzdect.0	2017-07-07 14:30:00.156	info	SWITCH ID: 087610163304 identified for command
                                    

                                    Beim LOG gibts nen Fehler

                                    14:45:06.350	[info]	javascript.0 Stop script script.js.common.PoolPumpe
                                    14:45:06.389	[info]	javascript.0 Start javascript script.js.common.PoolPumpe
                                    14:45:06.391	[error]	javascript.0 script.js.common.PoolPumpe: ReferenceError: morgen is not defined at script.js.common.PoolPumpe:29:18 at ContextifyScript.Script.runInContext (vm.js:35:29)
                                    
                                    var idTemp = 'rflink.0.channels.Cresta_1.TEMP';
                                    var idAktor = 'fritzdect.0.DECT200_087610163304.state';
                                    
                                    var minOn = false;
                                    var temp = getState(idTemp).val;
                                    var aktor = getState(idAktor).val;
                                    
                                    schedule('* * * * *', function() {  // jede Minute
                                       var morgen = compareTime('08:00', '09:00', 'between');
                                       var mittag = compareTime('12:00', '17:00', 'between');
                                       var abend = compareTime('18:00', '20:00', 'between');
                                       if(morgen || (mittag && temp > 25) || abend) {
                                          if(!aktor) setState(idAktor, true);
                                       } else if(aktor && !minOn) setState(idAktor, false);
                                    });
                                    
                                    on(idTemp, function(dp) {
                                       temp = dp.state.val;
                                    });
                                    
                                    on({id: idAktor, ack: true}, function(dp) {
                                       aktor = dp.state.val;
                                       if(aktor) {
                                          minOn = true;
                                          setTimeout(function() {minOn = false;}, 1800000);  // 30 Minuten
                                       }
                                    }); 
                                    
                                    log('morgen: ' + morgen + ', mittag: ' + mittag + ', Temperatur: ' + temp + ', abend: ' + abend + ', Mindestlaufzeit: ' + minOn);
                                    

                                    EDIT

                                    Sehe gerade, das die Temp Anzeige manchmal auf 26°C springt, warum auch immer. Na wird wohl der "Fehler" liegen. Evtl

                                    empfange ich auf dem selben Kanal auch einen Sensor vom Nachbarn….

                                    1 Antwort Letzte Antwort
                                    0
                                    • paul53P Offline
                                      paul53P Offline
                                      paul53
                                      schrieb am zuletzt editiert von
                                      #29

                                      Am Ende des Skripts wird das Log nur einmal bei Skriptstart ausgeführt. Richtig:

                                      var idTemp = 'rflink.0.channels.Cresta_1.TEMP';
                                      var idAktor = 'fritzdect.0.DECT200_087610163304.state';
                                      
                                      var minOn = false;
                                      var temp = getState(idTemp).val;
                                      var aktor = getState(idAktor).val;
                                      
                                      schedule('* * * * *', function() {  // jede Minute
                                         var morgen = compareTime('08:00', '09:00', 'between');
                                         var mittag = compareTime('12:00', '17:00', 'between');
                                         var abend = compareTime('18:00', '20:00', 'between');
                                         if(morgen || (mittag && temp > 25) || abend) {
                                            if(!aktor) setState(idAktor, true);
                                         } else if(aktor && !minOn) setState(idAktor, false);
                                         log('morgen: ' + morgen + ', mittag: ' + mittag + ', Temperatur: ' + temp + ', abend: ' + abend + ', Mindestlaufzeit: ' + minOn);
                                      });
                                      
                                      on(idTemp, function(dp) {
                                         temp = dp.state.val;
                                      });
                                      
                                      on({id: idAktor, ack: true}, function(dp) {
                                         aktor = dp.state.val;
                                         if(aktor) {
                                            minOn = true;
                                            setTimeout(function() {minOn = false;}, 1800000);  // 30 Minuten
                                         }
                                      });
                                      
                                      

                                      Dann kommt auch die Fehlermeldung nicht, denn die Variable morgen ist lokal innerhalb der Funktion.

                                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                      1 Antwort Letzte Antwort
                                      0
                                      • M Offline
                                        M Offline
                                        Master77
                                        schrieb am zuletzt editiert von
                                        #30

                                        Hallo zusammen. Habe am Wochenende wieder ein wenig Zeit zum bastel und ausprobieren gehabt. Das Skript von dna909 funktioniert super. Habe nur noch eine Frage dazu. Wenn ich bei laufender Zeitschaltuhr das Bauteil aus der Reihe schalte ( Zeitschaltuhr Statur Bauteil aus und ich schalte per Schalter in Vis das Bauteil an) ändert die Zeitschaltuhr das relativ schnell wieder. Kann man diese Zeitspanne nicht ein wenig verlängern? Habe schon versucht bei Blocky unter Zeitplan auf alle zwei Stunden zu ändern. Hatte gedacht das durch diese Einstellung der Status der Zeitschaltuhr alle zwei Stunden geprüft wird. Ist dem nicht so? Danke im voraus für eure Hilfe. Im Anhang nochmal das Blocky Diagramm.

                                        Gruß Markus

                                        Gesendet von meinem HUAWEI NXT-L29 mit Tapatalk
                                        2754_screenshot_20170710-220715.png

                                        1 Antwort Letzte Antwort
                                        0
                                        • rantanplanR Offline
                                          rantanplanR Offline
                                          rantanplan
                                          schrieb am zuletzt editiert von
                                          #31

                                          @Master77:

                                          Hallo zusammen. Habe am Wochenende wieder ein wenig Zeit zum bastel und ausprobieren gehabt. Das Skript von dna909 funktioniert super. Habe nur noch eine Frage dazu. Wenn ich bei laufender Zeitschaltuhr das Bauteil aus der Reihe schalte ( Zeitschaltuhr Statur Bauteil aus und ich schalte per Schalter in Vis das Bauteil an) ändert die Zeitschaltuhr das relativ schnell wieder. Kann man diese Zeitspanne nicht ein wenig verlängern? Habe schon versucht bei Blocky unter Zeitplan auf alle zwei Stunden zu ändern. Hatte gedacht das durch diese Einstellung der Status der Zeitschaltuhr alle zwei Stunden geprüft wird. Ist dem nicht so? Danke im voraus für eure Hilfe. Im Anhang nochmal das Blocky Diagramm. `
                                          Hallo Master77

                                          Bilder bitte NIE als Link sondern als ".png" hier einbetten.

                                          Ich konnte mir Dein Bild also nicht genau anschauen.

                                          Bitte Deinen Beitrag editieren und Screenshot ändern.

                                          Grundsätzlich ist es schwierig in eine automatik manuell einzugreifen.

                                          Woher soll das Script den wissen, dass Du etwas manuell geändert hast?

                                          Das würde nur über eine zusätzliche Variable gehen.

                                          Grüße

                                          Rantanplan

                                          CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                                          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

                                          441

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          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