Anwesenheitssteuerung

Hallo,

ich möchte eine Anwesenheitssteuerung in der Art machen:

  • in der Zeit zwischen 23 und 23:30 soll das Licht angehen und dann zwischen 10-15 Minuten anbleiben.
    Das Licht aus/an geht schon über Modbus. Derzeit habe ich zwei Timer gesetzt, einen für 23 Uhr, den anderen dann 23:15. Das ist dann aber fix.
    Wie sollte man so etwas aufbauen?

Hallo aus Magdeburg ,

ich nutze den Astrotimer dafür , dann gehen die Lampen oder was auch imemr in abhägigkeit zum Sonnenuntergang oder anderen bedingungen an/aus. Und es ist nicht so das jeder weiß um 23:00 geht licht an :slight_smile:

Astronomie Modul - Seite 7

Zwischenfrage: Geht es um eine Licht- oder um eine Anwesenheitssteuerung?
Anwesenheit mach ich aktuell über Wlan-Tracking der Handys im hause, gepaart mit einigen Abfragen
diverser anderer Geräte…

Wenn Anwesenheit mit eine Rolle spielt würde ich das z.B. über so was wie Geofency lösen oder beim Einbuchen des Handys ins WLAN mit IPSNetwork.

Ich vermute es ist eine Anwesenheitssimulation (also mit etwas zufälliger Variation anstelle immer gleicher fester Timer) gemeint.

Ja, es soll eine Anwesenheitssimulation sein.

Ich bin schon ein wenig weiter. Hatte Verständnisprobleme mit dem Timer.
Der neu erstellte Timer läuft nun schon weiter, nur suche ich nach einer Möglichkeit, beim neu erstellten Timer ein Init der variablen Zeiten vorzunehmen. Das habe ich noch nicht hinbekommen.
Zum Verständnis, wenn Timer noch nicht läuft, wollte ich den Timer erzeugen und gleich noch die Variablen Zeiten über ramdomize berechnen. Danach läuft der Timer im Minutentakt und ich kann auf die variablen Zeiten reagieren.

Hi,

dafür gibts doch ein Modul.

SymconMisc/AnwesenheitsSimulation at master · symcon/SymconMisc · GitHub

Gruß

Danke für den Tipp. Vielleicht in der nächsten Ausbaustufe.
Aktuell habe ich es nun so hinbekommen, wobei ein Ereignis nun immer auf beispielsweise 22 Uhr getriggert ist. Danach kommen dann die verschiedenen Zeiten. Ich muss nur noch die beiden Zeiten abfragen an = LichtAnNachMinuten und aus = LichtAusNachMinuten.


//Wert holen
$MinutenNachStart = GetValue(35387 /*[Program\Licht\data\Minutenzaehler]*/);

if($_IPS['SENDER'] == "TimerEvent")
{
	if ($MinutenNachStart == 0)
	{
		//Ein verzögert zwischen 5 und 15 Minuten
		$Minuten = rand(5, 15);
		SetValue(53303 /*[Program\Licht\data\LichtAnNachMinuten]*/, $Minuten);
		//Aus verzögert zwischen 10 und 15 Minuten
		$Minuten = rand(10, 15);
		SetValue(27520 /*[Program\Licht\data\LichtAusNachMinuten]*/, $Minuten + GetValue(53303 /*[Program\Licht\data\LichtAnNachMinuten]*/));		
	}

	$MinutenNachStart +=1;
	IPS_SetScriptTimer($_IPS['SELF'], 60);
	
	if ($MinutenNachStart >= GetValue(27520 /*[Program\Licht\data\LichtAusNachMinuten]*/))
	{
		//Timer stoppen und Zeit zurücksetzen fürs nächste Mal
		IPS_SetScriptTimer($_IPS['SELF'], 0);	
		$MinutenNachStart = 0;
	}
}

//Wert wieder zurückschreiben
SetValue(35387 /*[Program\Licht\data\Minutenzaehler]*/, $MinutenNachStart);

Wie bekomme ich das Modul geladen?
Ich weiß nicht, wo das Modul-Control sein soll.

  1. Software-Installation

Über das Modul-Control folgende URL hinzufügen.
git://github.com/symcon/SymconMisc.git

Kern Instanzen / Modules

Gesendet von iPhone XS mit Tapatalk

Danke, nun ist das Modul geladen. Alles andere dann offenbar Fleißarbeit wegen der Aktoren.

Danke nochmals für den Tipp.
Nun habe ich einige Modbus Werte einer Wago als Link eingefügt.
Wie liest das Script nun die Zustände aus?
Man müsste doch beispielsweise jede Minute den Zustand der Lampen lesen und irgendwo speichern.
Ich sehe bei „SimulationData“ aber keine Werte.
Mache ich da irgend etwas falsch?

Ich sehe nur einen Timer im Objektbaum,

UpdateDataTimer (Ereignis: Alle 1 Tag(e) um 00:00:01)

obwohl ich in module.php zwei sehe.

$this->RegisterMidnightTimer(„UpdateDataTimer“, ‚if(AS_UpdateData($_IPS[‚TARGET‘])) {AS_UpdateTargets($_IPS[‚TARGET‘]);}‘);
$this->RegisterTimer(„UpdateTargetsTimer“, 0, ‚AS_UpdateTargets($_IPS[‚TARGET‘]);‘);

Irgendetwas muss bei mir schief laufen, nur weiß ich nicht was?