Lichtsteuerung bei Abwesenheit

  • Hallo zusammen,


    ich habe leider ein kleines Skriptproblem und hoffe, dass ihr mir dabei helfen könnt.


    Hintergrund:

    Ich schalte beim Verlassen des Hauses den Alarmstatus auf 1 und damit ist die Alarmanlage aktiv.
    Damit einhergehend soll nun folgendes geschehen:

    • Alle 10 Minuten soll überprüft werden, ob die aktuelle Zeit sich zwischen dem Sonnenuntergang und 23:30 Uhr befindet und sich gleichzeitig noch der Alarmstatus auf 1 befindet. (funktioniert)
      • Wenn dem so ist, soll die Steckdose 4 angeschaltet werden (funktioniert)
      • Außerdem soll das Badezimmerlicht in SCHEINBAR unregelmäßigen Zeiten an un wieder aus geschaltet werden (funktioniert)
        --> daher auch der Zeitplan mit den verschiedenen Minuten und kein Timeout
      • Wenn die obige Regel nicht mehr greift, dann soll die Steckdose 4 um 23:31 Uhr wieder ausgeschaltet werden.

    Hierzu hatte ich es im ersten Versuch mit folgendem Blockly getestet (hmmm, mir ist gerade gar nicht klar, wie ich das Bild hochladen kann, ist es nur über eine Quelle möglich, muss ich es also irgendwo im Netz hinterlegen?):



    Das Problem:

    Auch wenn der Alarmstatus nicht mehr auf 1 gesetzt war, hat das Licht im Badezimmer weiterhin fröhlich geschaltet.

    Ich habe mich also gefragt, wie ich diese Zeitpläne abbrechen kann und kam auf den Zeitplan mit Bezeichnung und CRON-Regel, damit ich ein entspechenden stop einbauen kann:


    Leider ist die Zeitsteuerung auch hierbei nicht abgebrochen und das Badezimmerlicht schaltet an und aus, obwohl ich bereits zu Hause bin.


    Bestimmt fällt euch auf Anhieb der Fehler auf 8o


    Beste Grüße

  • ich würde es mal so probieren


  • Ich kann das Script bei mir momentan nicht einlesen, aber über Blockly sollte das doch mühelos realisierbar sein und das ohne irgendwelche wilden CRON Jobs. Dazu kann man die Zeitfunktionen nutzen und die lassen sich über TimeOuts ggf. auch sauber abbrechen. Ein Cron hat eigentlich nicht die Funktionalität gestoppt zu werden.

  • wenn man brutal ist einfach bei jedem Schaltvorgang die Alarmanlage abfragen. Oder im Skript nicht direkt die Steckdose schalten, sondern einen Hilfspunkt. Dann kann ein eigener Skript schalten, oder auch nicht.


    Das hat auch den Vorteil dass man bei Gerätetausch nur an einer Stelle das Gerät ändern muß.

  • Bau dir doch einfach mal eine Debug-Info ein welcher Teil überhaupt ausgeführt wird und ob dein unterer "sonst-falls" Trigger zur Abfrage überhaupt funktioniert. Wie definiert sich dein "Alarmstatus 1" Trigger? Ist das ein Datenpunkt?

  • Ja, ein Datenpunkt (Typ state), der auch in allen anderen Skripten zuverlässig funktioniert.

    Ich werde in den nächsten Tagen einfach mal ein GANZ simples Blockly ohne Schnickschnack quasi nur auf Grundlage des Zeitplans mit cron Regel und entsprechendem stop versuchen ... ich habe das Gefühl, dass ein stop bei mir gar nicht funktioniert (warum auch immer). Melde mich dann nochmal.

  • Ok, habe es nun ganz simpel versucht und ... es funktioniert - nach dem stop bleibt hierbei der Zustand bestehen und wechselt nicht mehr.

    Allerdings habe ich heute früh ein Adapterupdate für Java und [definition='25','0']Sonoff[/definition] durchgeführt.

    Versuche es also mit dem Alten weiter ... ?(

    Zeitplantestsimpel.png

  • Habe es nun getestet. Ich habe quasi das gleiche alte Skript genutzt (Einschalten hierbei zum Testen jede ungerade Minute und Ausschalten jede gerade Minute) --> es hat funktioniert (hoffentlich war das nicht nur eine Ausnahme ^^).

    Ich gehe davon aus, dass es etwas mit dem Javaadapterupdate zu tun hatte. :rolleyes:

    Ärgerlich, deshalb die ganze Zeit an der Logik herumgefuckelt zu haben.

    Danke für trotzdem für die Ideen und Tipps.

    AbwesenheitssteuerungMinuten.png

  • Frohes neues Jahr!


    Zur Info: Irgendwie scheint der stop bei mir doch nicht zuverlässig zu funktionieren. ;(

    Heute früh war plötzlich das Licht wieder an.


    Im Log steht u. a. genau zu den Schaltzeiten:

    Client [shellybadezimmer] reconnected. Old secret 1546411885490_4510. New secret 1546412366250_9539

    Client [shellybadezimmer] reconnected. Old secret 1546411170770_4517. New secret 1546411885490_4510

    Client [shellybadezimmer] reconnected. Old secret 1546410926212_3340. New secret 1546411170770_4517

    ...

    teilweise auch in orange:

    Old client shellybadezimmer with secret 1546416985431_4269 sends publish. Ignore! Actual secret is 1546418136194_7567

    Old client shellybadezimmer with secret 1546416985431_4269 sends publish. Ignore! Actual secret is 1546418136194_7567

    Old client shellybadezimmer with secret 1546416985431_4269 sends publish. Ignore! Actual secret is 1546418136194_7567

  • Hallo Ralph,


    danke für die Info. Ja, es betrifft genau meinen bisher einzigen Shelly, aber selbst wenn die W-LAN-Verbindung abbricht ... müsste das Skript nicht trotzdem beendet werden durch den stop?

    Gerade eben hat mir meine Frau berichtet, dass vorhin das Licht wieder an und aus gegangen ist obwohl ich das alte Skript beendet habe und ein neues über timeouts realisiert und gestoppt habe.

    Bin ratlos. Die Alarmanlagenskripte funktionieren per timeouts und stop per Blockly tadellos und die sind deutlich komplexer. :rolleyes:

    Weiß leider nicht was ich noch versuchen kann. Habe jetzt mal alle Skripte beendet und warte, ob es wieder auftritt ... dann würde nur ein reboot weiterhelfen - es lässt sich irgendwie nicht stoppen.


    PS: Ich habe irgendwo mal gelesen, dass die stops unter global eingetragen werden müssen, kenne leider aber nicht mehr den genauen Kontext.

  • hi mc fly,

    kann dir da leider nicht helfen da ich selbst noch anfänger bin und von einem "problem" in das nächste laufe ;-). erst die shelly story wo ich verzweifelt bin, jetzt habe ich einen broadlink gekauft der nicht gefunden wird :( .... und schon melden sich zu dem thema mehrer leute wo es auch nicht geht mit dem aktuellen model, das beruhigt dann immer.

    lg

    ralph