YESLY Smart Home

Startseite Foren Fibaro Forum (Z-Wave) Fibaro LUA Scripts für HC2 Und noch ein Rollladen Script

Dieses Thema enthält 104 Antworten und 17 Teilnehmer. Es wurde zuletzt aktualisiert von dirkg173 dirkg173 vor 1 Monat.

Ansicht von 15 Beiträgen - 16 bis 30 (von insgesamt 105)
  • Autor
    Beiträge
  • #94802

    jeep
    Teilnehmer

    @Dreibits
    Hi, ist schon OK so, ich setze den Wert auf posOpen gleich für den Lauf am nächsten morgen. Es kann ja sein dass dann die Temperatur kleiner als 20° ist und dann würden die Rollläden trotzdem wieder auf 60% öffnen. So gehen sie wieder voll auf.
    Trotzdem Danke dass Du Dir das Script so genau anschaust.


    Grüße, Jeep
    #94844

    Guido
    Teilnehmer

    Hallo Jeep,

    mal wieder ein schönes Script von Dir. Schau mir es gerade mal an und es reizt mich es gleich mal aus zu probieren. Finde es schön das man es auch leicht erweitern kann. In der Zeile 64 hast du noch ein Schreibfehler drin. Das „f“ fehlt bei Fibaro ! Nur für die, welche Lua gar nicht beherrschen.

    Den door sensor, der im Script mit angegeben ist, ist aber noch beachtet worden ! Im alten Rollladen Script ist dort die sperre drin, welche verhindert das bei geöffneter Tür die Rolladen runterfahren. Baust du den sensor noch ein ?

    Grüße

    Guido

    • Diese Antwort wurde geändert vor 1 Jahr, 2 Monate von  Guido.
    #94847

    jeep
    Teilnehmer

    Hallo Guido,

    vielen Dank für den Hinweis, da ist vermutlich beim copy/paste das ‚f‘ verlorengegangen. Und da ich meine Helligkeit aus der globalen Variable beziehe ist es mir nicht aufgefallen. Also Zeile 64 so einbauen:
    brightness = tonumber(fibaro:getValue(luxSensorID, 'value')); --Wert des Luxsensors
    Für den doorsensor kann ich mal eine Beispielfunktion liefern. Was mich da aber stört ist, dass das Script dann solange pausieren muss und eventuelle Bedingungen versäumt werden könnten und gegen die Vollautomatisierung wehrt sich meine Frau mit recht. Die sagt dann einfach gegen später(wenn wir das Terrassenlicht und Mondschein genug betrachtet haben) – „Alexa Terrassentür 0%“ und alles ist gut.
    Darum hab ich ja zwei Rollläden-Arrays für morgens öffnen und für abends schließen. Einfach die Terrassentür nicht im array „rollerIDsE“ hinzufügen.


    Grüße, Jeep
    #94853

    Guido
    Teilnehmer

    Abend,

    bei mir ist es genau anders rum. Mein Frau weigert sich Alexa einzuführen und wenn wir dann Abends auf der Terrasse den Mond betrachten und die Zeit verfliegt und dann schließen die Rolladen, oh das wäre schlecht ! Wenn Du Lust und Zeit hast fände ich es schön wenn du mal eine Routine baust wo der door sensor mit eingebaut ist ! Deine Ideen wie du es umsetzt sind für ein „Lua-Lerner“ immer sehr interessant.

    Grüße, Guido

    #94891

    jeep
    Teilnehmer

    Hallo Guido,

    ich habe mal was gebastelt so dass Ihr die Nacht nicht draußen verbringen müsst. 😏 Ich stelle es hier nur als ausführbares Beispiel ein so dass Du einen
    Trockenlauf machen kannst.
    Damit man sich nicht ausschießt gibt es jetzt 3 Möglichkeiten.
    1. Man trägt einen Rolladen NICHT in der Variable ‚rollerIDsE‘, steht für „roller IDs Evening“ ein. Dann wird nichts passieren aber er muss manuell geschlossen werden.
    2. Man trägt den/die Rollläden in der Variablen ‚rollerIDsNC‘, steht für „Roller Ids Not Close“ ein.
    3. Eine Kombination aus 1. und 2. wäre auch möglich.

    Du kannst im unteren Script eine gültige Door ID eintragen, aber beliebige IDs für Rollläden. Die kannst auch so lassen. Das Script macht dann einen Trockenlauf.
    Einfach auf Start klicken.
    Werde die Beispiele und Änderungen am Wochenende ins Hauptscript übertragen.


    Grüße, Jeep
    • Diese Antwort wurde geändert vor 1 Jahr, 2 Monate von  jeep.
    #94896

    Guido
    Teilnehmer

    Guten Morgen,

    hab mir mal deine Lösung angesehen. Ist wirklich etwas kompliziert zu verstehen (für mich). Leider hab ich dieses WE nicht genug Zeit alles genauer an zusehen. Aber für deine Mühe erstmal vielen Dank. Mal sehen wir du es im Hauptscript integrierst. Aber deine Herangehensweise an Lua gefällt mir sehr. Ist alles einfacher im Nachhinein was dazu zu integrieren. Was ich beim Hauptscript nicht verstehen ist, wie du zum Bespiel die local runEarly = true wieder auf false setzt (oben hast du auch runCloseAll benutzt). Ein Neustart der Scene zu einer bestimmten Zeit hast du nicht eingebaut und trotzdem ändert sie dielocal runEarly von true wieder auf false. Ich habe auch einige Scenen wo ich Bedingungen mit >= habe und die Lösung mit true und false gerne einbauen möchte. Leider setzt er bei mir die Variable nicht wieder auf false ! Muss ich immer ein Neustart der Scene zu einer bestimmten Zeit einbauen ??

    Grüße und nochmals vielen Dank
    und ein schönes WE

    • Diese Antwort wurde geändert vor 1 Jahr, 2 Monate von  Guido.
    #94919

    jeep
    Teilnehmer

    Hi Guido,
    also einen Neustart einer Szene gibt es in LUA ja nicht. Ich kenne nur killScene und startScene. Aber das ist jetzt nicht von Belang.
    Zur Variablenänderung: Die Funktion rollershutter() prüft ja jede Minute alle Bedingungen, durch setTimeout(rollershutter, 60*1000) wird die Funktion ja wieder aufgerufen.
    Bei der Initialisierung des Scripts werden ja alle runXX Variablen auf false gesetzt.
    Trifft eine Bedingung zu, (z.B earlymorning) wird sofort die zugehörige Variable auf true gesetzt und die Funktion earlymorning wird nicht mehr ausgeführt.
    Durch die Variable
    local checkTime = "03:15" -- Uhrzeit zur Feststellug des Sonnenauf- und untergangs für den nächsten Tag
    und der Variablen
    local checkSUN = false -- Die Variable stellt sich um 'checktime' auf true

    wird um 03:15 eine Überprüfung von checkSUN in der Hauptfunktion ausgelöst

    und alle Variablen wieder auf false gesetzt, so das sich das Spiel am nächsten morgen wiederholen kann.
    Schönen Sonntag.


    Grüße, Jeep
    #94924

    Guido
    Teilnehmer

    Hallo Jeep,

    stimmt du hast recht. Ich hab die kleine Zeile im Script überlesen und ich kannst die Schreibweise von runEarly, runMorning, runEvening,runNight = false,false,false,false so nicht. Ich lerne Lua nur Anhand von Scripten die hier im Forum gezeigt werden. Irgendwann hoffe ich doch das ich meine Ideen auch so schnell umsetzen kann wie du.

    Danke

    Grüße Guido

    #94953

    jeep
    Teilnehmer

    Hallo zusammen,

    in dieser Version gibt es jetzt die versprochene doorcheck Funktion. Wobei ich sagen muss dass die nicht ganz ungefährlich ist. Was passiert wenn jemand Abends im Sommer auf der Terrasse geht und instinktiv die Tür hinter sich zuzieht??? Richtig, nach einer Minute geht der letzte Rolladen runter. Aber das darf jeder selbst entscheiden ob er die Funktion nutzt.
    Auf jeden Fall ist es so programmiert dass das Script nicht (eventuell stundenlang) in einer Endlosschleife verharrt, sondern weiterhin minütlich seine Bedingungen prüft.
    Bis die Dokumentation fertig ist, mal kurz die Funktionsweise.
    Die Funktion ‚goodNightWdoorCheck()‘ prüft alle Rollläden aus dem lokalen Array ‚rollerIDsN‘, in der alle Rollläden eingetragen sind die nächtens geschlossen werden sollen und vergleicht mit der Funktion ‚check4NC()‘ die Rollläden die im lokalen Array ‚rollerIDsNC‘ (NC steht hier für NotClose) stehen. Wird eine Übereinstimmung gefunden und eine Tür ist noch offen, geht der/die Rollläden nicht zu. Ist keine Tür offen, werden alle Rollläden geschlossen.
    Das script prüft jetzt weiterhin jede Minute ob die Tür geschlossen wurde. Wenn ja ruft es die Funktion ‚closeAllNC()‘ auf und schließt alle Rollläden aus dem lokalen Array ‚rollerIDsNC‘. Zum Spielen und ein Gefühl damit zu bekommen kann man gut das obige kleine Script verwenden.
    Klingt komplizierter als es ist. Der Vorteil, man muss nichts im Script umstellen, sondern kann alles mit den Variablen und den Bedingungen lösen. Dass vereinfacht die Pflege und das update. Jeder Benutzer kann seine Variablen die er mal eingestellt hat behalten. Ich werde, wenn keine Bugs auftreten auf Wunsch nur neue Funktionen hinzufügen, die muss man dann, oder auch nicht hinzufügen und muss nicht das ganze Script ersetzen. ;-)

    Also mal die hier die Komplette Version: 1.2.8
    –Changelog für Version 1.2.8
    — DoorCheck function hinzugefügt
    — Kleinere Codeoptimierungen


    Grüße, Jeep
    • Diese Antwort wurde geändert vor 1 Jahr, 2 Monate von  jeep.
    • Diese Antwort wurde geändert vor 1 Jahr, 2 Monate von  jeep.
    #94974

    Guido
    Teilnehmer

    Hallo Jeep,

    vielen Dank für das tolle Script. Ich werde es diese Woche mal intensiv testen. Ist wirklich gut gelungen und hat alles was man braucht. Für mich ist der Doorcheck echt sinnvoll. Gestern waren ich noch draußen und war froh das meine Rolladen noch nicht runtergefahren sind! (die Tür war ja noch offen);-)

    Also ich teste und werde dir berichten.

    Grüße und schönen Abend

    #95602

    jeep
    Teilnehmer

    Hallo zusammen,

    Dank der hochsommerlichen Temperaturen habe ich noch einen Bug im Sonnenschutz entdeckt. Ist die Temperatur nach 20:00 Uhr immer noch höher als die eingestellte für den Sonnenschutz ausschalten, wird der Sonnenschutz nicht beendet.
    Ich habe schon die nächste Version seit ein paar Tagen fertig und werde sie spätestens morgen einstellen.
    Bis dann ist das PDF (Dokumentation) auch soweit.


    Grüße, Jeep
    #95653

    jeep
    Teilnehmer

    Ich stelle mal alle Änderungen hier rein, für den Fall das jemand updaten will.

    1. neue Variablen einfügen

    2. Function check4sunProtect austauschen.

    3. Die Bedingung am Ende des Scripts ersetzen

    Das war’s und damit beendet sich der Sonnenschutz auch wenn es um 19:30 noch über 26° sein sollten. Konnte die letzte Woche gut Testen, so das ich keine Probleme erwarte.
    Das komplette Script mit Anleitung folgt morgen.


    Grüße, Jeep
    • Diese Antwort wurde geändert vor 1 Jahr, 1 Monat von  jeep.
    #95664

    jeep
    Teilnehmer

    Hallo Guido,
    bist Du schon dazu gekommen zu Testen. Bin neugierig auf Dein feedback.


    Grüße, Jeep
    #95677

    Guido
    Teilnehmer

    Hallo Jeep,

    du bist einfach schneller mit programmieren als ich mit testen.;-) Bin noch nicht zum intensiven testen gekommen. Ich versuche gerade mein Zipato Keypad und meine Alarmanlage ordentlich einzubinden. Das Script was hier im Forum bzw. auf der Siio Seite angeboten wird ist nicht perfekt und funktioniert nur teilweise. Habe ein Script gefunden was nicht nur das Keypad besser einbindet mit Nutzernamen und sogar Zeiten wo Nutzer freigeschaltet werden sonderen auch gleich das Danalock Schloss schaltet. Da bastle ich gerade ein wenig rum.Es gibt auch dazu eine ordentlich Einbindung der Nutzer Key´s bzw. Codes !

    Habe mir aber die kommende Woche vorgenommen meine Rolläden mit deinem Script zu füttern. Und dann werde ich dir wie schon mal berichten.

    Ich werde dein neues Script gleich nutzen um intensiv zu testen. Dafür auch schon mal Dank für das bereitstellen

    Schönes WE

    Grüße Guido

    #95679

    jeep
    Teilnehmer

    Hi Guido,
    Danke für die Rückmeldung. Nächste Woche soll es ja noch mal richtig warm werden so das Du bestimmt auch den Sonnenschutz testen kannst. Aber die Alarmanlage ist natürlich wichtiger. Viel Erfolg.


    Grüße, Jeep
Ansicht von 15 Beiträgen - 16 bis 30 (von insgesamt 105)

Du musst angemeldet sein, um auf dieses Thema antworten zu können.