UPGRADE IP 9 verfügbar!
Timberwolf VISU jetzt mit NEUEM Layout Editor
Freie Anordnung, Reihenfolge und Größe der Widgets - viele weitere Verbesserungen
Infos im Wiki: https://elabnet.atlassian.net/l/cp/06SeuHRJ

NEU! Insider & Leistungsmerkmale FÜR ALLE freigeschaltet
Damit kann nun jeder das Upgrade vornehmen und VISU & IFTTT testen. Alle Info hier: viewtopic.php?f=8&t=5074

[Frage] [3.5.1] Gesucht: Logik für Lichtwecker

Hier stellen Foristen und Kunden Ihre EIGENEN Logikbausteine vor. Diese Logikbausteine stehen jedem im Rahmen der vom Autor eingeräumten / genannten Lizenz zur Verfügung.
Forumsregeln
  • Denke bitte an aussagekräftige Titel und gebe dort auch die [Firmware] an. Wenn ETS oder CometVisu beteiligt sind, dann auch deren Version
  • Bitte mache vollständige Angaben zu Deinem Server, dessen ID und dem Online-Status in Deiner Signatur. Hilfreich ist oft auch die Beschreibung der angeschlossener Hardware sowie die verwendeten Protokolle
  • Beschreibe Dein Projekt und Dein Problem bitte vollständig. Achte bitte darauf, dass auf Screenshots die Statusleiste sichtbar ist
  • Bitte sei stets freundlich und wohlwollend, bleibe beim Thema und unterschreibe mit deinem Vornamen. Bitte lese alle Regeln, die Du hier findest: https://wiki.timberwolf.io/Forenregeln
Antworten

Ersteller
Robosoc
Reactions:
Beiträge: 1876
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 635 Mal
Danksagung erhalten: 775 Mal

[3.5.1] Gesucht: Logik für Lichtwecker

#1

Beitrag von Robosoc »

Ich habe mich am Wochenende mal ein wenig mit der Rampe und dem Ziel "Lichtwecker" beschäftigt.

Ich habe im Forum insgesamt drei Diskussionen gefunden, die sich mit dem Thema in irgendeiner Form beschäftigen:
1. [3.5.1] Wie funktioniert das Logikmodul "die Rampe"? [hier]
2. [V1.6.0 IP1] Funktion Baustein "Rampe": [hier]
3. [NEUHEIT] Modul "Rampenfunktion" alias Softdimmer [hier]

Die dritte Fundstelle war die Ankündigung des damals neuen Logikmoduls "Rampe" und daraus haben wir den Knowledge-Base und letztlich den Wiki-Eintrag erzeugt. Darin steht beispielsweise:
S. Kolbinger hat geschrieben: Fr Feb 28, 2020 7:46 pm Mit diesem Modul lässt sich sehr einfach eine langsame Dimmung umsetzen (Lichtwecker)
Den Satz haben wir in der KB und in der Wiki einfach übernommen. Bis auf die Klammer stimmt er m.E. auch...aber einen Lichtwecker habe ich bisher nicht auf die Beine stellen können.

Die Anwendung fänd ich aber recht gut...zumindest sind autarke Lichtwecker nach meinem Gefühl aktuell recht gefragt. Wir haben in der Firma einen Wunschweihnachtsbaum, bei dem wir mit Einrichtungen zusammen arbeiten, die bedürfte Kinder unterstützen. Die Kinder wählen da aus einer Reihe von vorausgewählten Produktideen (damit es wertmässig einigere Maßen passt) einen Wunsch aus und Mitarbeiter unseres Unternehmens können einen der Wünsche dann erfüllen. -> 1/3 der Kinder hat dieses Jahr einen Lichtwecker gewählt... Das ist jetzt nichts empirisches und hängt natürlich auchvon den anderen Wunschmöglichkeiten ab...aber da waren solch Dinge wir ferngesteuertes Auto und so dabei...!

Okay, zurück zu eigentlich Thema:

Wer schafft es einen Lichtwecker zu programmieren?
Anforderungen (kann gerne ergänzt werden):
  • Einstellmöglichkeiten: Weck-Urzeit (am Liebsten als Cron-Syntax), Dauer, Anzahl Schritte, Startwert (default 0) und Endwert (default 100).
  • Man sollte die Ausführung verhindern können (Inhibit)
  • Man sollte die Ausführung auch durch einen eigenen Eingang triggern können (Szenario A: Am Wochenende im Kinderzimmer, der Lichtwecker ist deaktiviert und man möchte sein Kind soft wecken, Szenario B: Man stellt sich einen Wecker per Sprachbefehl an eine Alexa, Google-Home etc.)
  • Der Ausgang sendet ausschließlich zum Weckzeitpunkt und die Dauer des Weckens Werte.
Zuletzt geändert von Robosoc am Mo Nov 21, 2022 11:52 am, insgesamt 3-mal geändert.
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK

0lek
Reactions:
Beiträge: 170
Registriert: Di Jan 14, 2020 5:30 pm
Hat sich bedankt: 17 Mal
Danksagung erhalten: 80 Mal

#2

Beitrag von 0lek »

@Robosoc Ich bin da dran. Habe den erstmal als Jalousiewecker, aber da es eh Winter ist, hatte ich eh gedacht den als Lichtwecker zu machen.
Also in dem Sinne, irgendwann mache ich den, aber kann nicht versprechen wie lange es dauern wird, da ich - wie Du an meinen Fragen siehst - manchmal etwas an der Logik verzweifle. ;)
TWS 950Q ID:676, VPN offen, Reboot erlaubt

0lek
Reactions:
Beiträge: 170
Registriert: Di Jan 14, 2020 5:30 pm
Hat sich bedankt: 17 Mal
Danksagung erhalten: 80 Mal

#3

Beitrag von 0lek »

@Robosoc Und noch ein Gedanke: Wenn jetzt irgendwann (hoffentlich bald) die Logikengine kommt - dann ueberlege ich, ob es noch Sinn macht, sowas custom zu loesen. Bevor ich / wir da jetzt Tage/Wochen reinstecken und es womoeglich vielleicht bald eh schon Standard ist.

Weiss da jemand was dazu, ob man sowas mit 2 Klicks oder so in der Engine spaeter machen koennen wird?
TWS 950Q ID:676, VPN offen, Reboot erlaubt

Ersteller
Robosoc
Reactions:
Beiträge: 1876
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 635 Mal
Danksagung erhalten: 775 Mal

#4

Beitrag von Robosoc »

0lek hat geschrieben: Mo Nov 21, 2022 12:14 pm Habe den erstmal als Jalousiewecker,
Meiner Meinung nach ist es exakt das gleiche. Dem Logikmodul ist es egal, ob der Ausgang mit einem Dimm-Aktor oder einem Jalousie-Aktor verschaltet wird. Durch Deine Anwendung kam ich ja auch erst wieder auf den Gedanken.


Aber wie schon geschrieben, ich habe jetzt zwei verschiedene Ansetze gehabt und es mit der Rampe ausprobiert...das zurücksetzen der Rampe macht es echt schwer. Oder ich habe nur den einfachen Weg noch nicht bedacht :D. Manchmal braucht es ja nur ein clever-negiertes inhibit-bit um Dinge zu verhindern ... :confusion-scratchheadyellow:
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK

Ersteller
Robosoc
Reactions:
Beiträge: 1876
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 635 Mal
Danksagung erhalten: 775 Mal

#5

Beitrag von Robosoc »

0lek hat geschrieben: Mo Nov 21, 2022 12:35 pm Und noch ein Gedanke: Wenn jetzt irgendwann (hoffentlich bald) die Logikengine kommt - dann ueberlege ich, ob es noch Sinn macht, sowas custom zu loesen.
Ich glaube da liegt ein Missverständnis vor. Ich zumindest erwarte nicht, dass zeitnah eine komplett neue Logik-Engine herauskommt. Ich habe die Ankündigungen von Stefan dahingehend gedeutet, dass ElabNet an einer Ergänzung der aktuellen Logik-Engine arbeitet. so wie jetzt in der nächsten Version zwei weitere Logikmodule für Stringoperationen kommen. Aber ich denke nicht, dass unsere Arbeit hier wertlos wird.

Und selbst dann wäre es mir egal...dann würde es ja eh noch ein Weilchen dauern... und mir macht es eben auch Spaß eine Logik zu entwickeln.
Zuletzt geändert von Robosoc am Mo Nov 21, 2022 1:28 pm, insgesamt 1-mal geändert.
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK

0lek
Reactions:
Beiträge: 170
Registriert: Di Jan 14, 2020 5:30 pm
Hat sich bedankt: 17 Mal
Danksagung erhalten: 80 Mal

#6

Beitrag von 0lek »

Robosoc hat geschrieben: Mo Nov 21, 2022 1:27 pm zeitnah eine komplett neue Logik-Engine herauskommt
Shit. Ich meinte natuerlich die "Lichtengine"... :shifty:
TWS 950Q ID:676, VPN offen, Reboot erlaubt

0lek
Reactions:
Beiträge: 170
Registriert: Di Jan 14, 2020 5:30 pm
Hat sich bedankt: 17 Mal
Danksagung erhalten: 80 Mal

#7

Beitrag von 0lek »

Robosoc hat geschrieben: Mo Nov 21, 2022 1:26 pm ich habe jetzt zwei verschiedene Ansetze gehabt und es mit der Rampe ausprobiert...das zurücksetzen der Rampe macht es echt schwer.
Es ist sehr unintuitiv. Ich weiss immer noch nicht ob ich es ganz verstehe. Kannst gerne Deine Logik hier posten, vielleicht kommen wir zu zweit zu was brauchbarem?
TWS 950Q ID:676, VPN offen, Reboot erlaubt

Ersteller
Robosoc
Reactions:
Beiträge: 1876
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 635 Mal
Danksagung erhalten: 775 Mal

#8

Beitrag von Robosoc »

Grundsätzlich ist meine Idee, die Rampe kurz nach der Ausführung erst einmal zurückzusetzen und dann mit einer kleinen Verzögerung den eigenlichen Weckvorgang zu starten.

Der erste Ansatz verfolgte das Ziel , zunächst die aktuelle Uhrzeit bei Triggern (mit dem Baustein Localtime) zu ermitteln und damit ein erneutes Triggern nach 2 Sekunden zu ermöglichen (Baustein Wakeup mit Uhrzeit + 2 Sek). Im ersten Durchlauf nach dem Triggern hätte ich die Rampe dann mit einer Dauer von 1 Sekunde auf 0 gesetzt. So dass Sie nach 2 Sekunden sicher bei 0 starten könnte. und der eigentliche Licht-Weckvorgang wäre dann mit einer Verzögerung von 2 Sekunden gestartet.
Mein erster Ansatz beinhaltete auch die SendExplizit Funktion, mit der ich verhindern wollte, dass der Ausgang beim zurücksetzen geschrieben wird. Aber da man nicht auswerten kann, ob die Logik durch einen Timer getriggert wurde, habe ich es nicht fertig gebracht.

Hier in der Version habe ich das verzögerte Triggern über einen Monoflop lösen wollen. Klappt aber auch nicht. Bei dem Zustand so wie nachfolgend gepostet habe ich erstmal aufgehört weiterzudenken .

(geändert am 19.09.2023, da ab Versionen größer3.5.1 nur kleine Buchstaben als Triggerverhalten der Ein- und Ausgängegenutzt werden dürfen)

Code: Alles auswählen

/**
* Lichtwecker V0.3
* Der Schöpfer dieser Custom Logik überträgt die Nutzungsrechte gemäß der TOLL ("Timberwolf Open Logikblock License") die unter https://wrgt.news/TOLL zum Download zur Verfügung steht.
*/

{
  "Input":[
        ["Dauer","Dauer des Weckvorgangs in Sekunden","$Set_Period","u"],
	["Schritte","Schritte des Weckvorgangs","$Set_Step","u"],
	["Startwert","Startwert des Weckvorgangs","$Start","u"],
	["Schritte","Endwert des Weckvorgangs","$End","u"]
  ],
  "Output":[
       ["Out","","$Out","c"]
  ],
  "Level":[
	["$now_Utime","integer",0],
	["$next_Utime","integer",0],
	["$Period","integer",0],
	["$Step","integer",0],
	["$Set_Period","integer",30],
	["$Set_Step","integer",10],
	["$Start","integer",0],
	["$In","integer",0],
	["$End","integer",100],
	["$Eins","integer",1],
	["$Zwei","integer",1],
	["$Ramp_Active","bool",false],
	["$Monoflop_Active","bool",false],
	["$Formula","string","X1=0?X2+2:0"],
	["$const_true","bool",true],
	["$Out","integer",0],
	["$SendCond","bool",false]
  ],
  "Module":[
        ["Monoflop","-$Ramp_Active",0,"$Monoflop_Active","$Zwei",0],
	
	// Rampe zurücksetzen
	["Latch","$Start","$In","$const_true",0],
	["Latch","$Eins","$Step","$const_true",0],
	["Latch","$Eins","$Period","$const_true",0],
	
	//Rampe neu einstellen, wenn WakeUp_Active true wird.
	["Latch","$End","$In","$Monoflop_Active",2],
	["Latch","$Set_Step","$Step","$Monoflop_Active",2],
	["Latch","$Set_Period","$Period","$Monoflop_Active",2],
	
	//Rampe
	["Ramp","$In","$Out","$Ramp_Active","$Step","$Period"]
  ]
}
Zuletzt geändert von Robosoc am Di Sep 19, 2023 6:32 am, insgesamt 1-mal geändert.
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK

Robert_Mini
Reactions:
Beiträge: 3741
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1164 Mal
Danksagung erhalten: 2058 Mal

#9

Beitrag von Robert_Mini »

Ich schau mir das zeitnah mal an. Das "ramp" Modul deckt ja fast alles ab, ich kann kaum glauben, dass es am Drumherum scheitert.
Robert
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297

Ersteller
Robosoc
Reactions:
Beiträge: 1876
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 635 Mal
Danksagung erhalten: 775 Mal

#10

Beitrag von Robosoc »

Robert_Mini hat geschrieben: Mo Nov 21, 2022 3:05 pm ich kann kaum glauben, dass es am Drumherum scheitert.
Ich glaube auch die ganze Zeit, dass ich zu kompliziert denke und /oder Tomaten auf den Augen habe.

Also wenn immer wer immer eine Lösung hat...bitte nur nicht so was schreiben wie "das ist doch einfach" :laughing-rolling:
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK
Antworten

Zurück zu „Zusätzliche Logikbausteine“