Zufallsgenerator Skript für Anwesenheitssimulation, Lampen..

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

Benutzeravatar
Black
Beiträge: 5483
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 424 Mal
Danksagung erhalten: 1074 Mal
Kontaktdaten:

Re: Zufallsgenerator Skript für Anwesenheitssimulation, Lampen..

Beitrag von Black » 28.11.2019, 13:26

Die realisierung habe ich mit IObroker gemacht. klar. eine mySQL anbindung mit der CCU möchte ich mir nicht antun.

Immo bin ich im Hintergrund dabei, einiges in meinem Broker auf JScontroller 2.1 umzustellen, unter anderem die Aliases.0 Funktionalität. Das Simulkationsscript in der jetzigen Form setzt auch auf meinen Wrapper zum virtualisieren der geräte auf, das werd ich auch noch auf die Aliases ziehen.

im IObroker kannst du ja recht einfach SQL Abfragen stellen:

1. Step ist die ID QAbfrage der datenpunkte die du haben willst gegen die ID der Punkte in der mySql

Code: Alles auswählen

        sendTo('sql.0', 'query', 'SELECT * FROM ' + DBname + '.datapoints WHERE name IN (' + names + ')', function (result) {
            if (result.error) {
                log (result.error,'error');
            } else {....
die zweite geschachtelte Abfrage greift dann die IDs in dem angegebenen zeitraum:

Code: Alles auswählen

                  var SQLstring= 'SELECT * FROM '+ DBname +'.ts_bool WHERE ts BETWEEN ' + 
                                vonDate.getTime () + ' AND ' + bisDate.getTime () + ' AND id IN (' + sBool + ') AND val IS NOT NULL';
                // wennvorhanden Union Abfrage in Number               
                if (sNumber!="") {SQLstring+= ' UNION SELECT * FROM '+ DBname +'.ts_number WHERE ts BETWEEN ' + 
                       vonDate.getTime () + ' AND ' + bisDate.getTime () +' AND id IN (' + sNumber + ') AND val IS NOT NULL'}
                SQLstring+= ' ORDER BY ts';       
                sendTo('sql.0', 'query', SQLstring, function (result_ts) {    
                    for (i=0; i<=Object.keys(result_ts.result).length -1; i++ ) {...
dann kommt noch bisschen Auswerten, sortieren und berechnen der Einschaltdauern... udn dann für den Tag die Events Absetzen mit SetStateDelayed.

Black
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

Fonzo
Beiträge: 6744
Registriert: 22.05.2012, 08:40
System: CCU
Hat sich bedankt: 25 Mal
Danksagung erhalten: 486 Mal

Re: Zufallsgenerator Skript für Anwesenheitssimulation, Lampen..

Beitrag von Fonzo » 28.11.2019, 14:35

dtp hat geschrieben:
28.11.2019, 12:38
Man könnte also einfach ein Histogramm erzeugen, dass die Ein- und Ausschaltzeiten von Lichtern für die zurückliegende Woche darstellt, wobei diese innerhalb eines bestimmten Zeitfensters (z.B. +/- 30 min) jeweils zusammengefasst werden. Die Lichter, die dann eine gewisse Mindesthäufigkeit überschritten haben, werden während der Abwesenheit simuliert.
Wen man nicht basteln will kann man unter anderem die Anwesenheitssimulation von IP-Symcon nutzten, dabei wird aus den aufgezeichneten Daten der Schaltvorgänge der vorhergehenden Tage einfach eine Anwesenheitssimulation gefahren.

Benutzeravatar
Black
Beiträge: 5483
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 424 Mal
Danksagung erhalten: 1074 Mal
Kontaktdaten:

Re: Zufallsgenerator Skript für Anwesenheitssimulation, Lampen..

Beitrag von Black » 28.11.2019, 16:13

Und wenn man sparen will wird dtp eher paar Zeilen JavaScript für seinen iobroker schreiben als zusätzlich Geld zu versenken :lol:

Ich suche Rezept für Salat.... kauf dir doch ein Steak... wie immer halt
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

Doc HomeMatic
Beiträge: 81
Registriert: 09.02.2015, 08:40
System: CCU
Hat sich bedankt: 2 Mal
Danksagung erhalten: 1 Mal

Re: Zufallsgenerator Skript für Anwesenheitssimulation, Lampen..

Beitrag von Doc HomeMatic » 12.06.2020, 16:09

Hallo allerseits,

bin auch gerade dabei mir solch eine Anwesenheitssimulation alla @funkleuchtturm zu basteln. Vielen Dank auch gleich an der Stelle für den Input!

Nun eine Verständnisfrage:
Ich möchte dieses Lichtszenario so steuern, dass die Lampe(n) verhältnismäßig lange an ist/sind. Daher wollte ich die Sytemvarialen-Abfrage für den random_tp-Wert auf zwischen 0,15 und 0,70 (Lampe ein) einstellen.

Das ganze soll sich in einem Zeitfenster von 16:30-22:30 Uhr abspielen. Dabei ist aber dann das Problem, dass sich das Licht relativ häufig genau um 22:30 Uhr ausschaltet, oder sehe ich das falsch? :?: Wie habt ihr das entzerrt, oder liege ich mit meiner Überlegung falsch?

Xel66
Beiträge: 14169
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 586 Mal
Danksagung erhalten: 1501 Mal

Re: Zufallsgenerator Skript für Anwesenheitssimulation, Lampen..

Beitrag von Xel66 » 12.06.2020, 16:41

Wenn Du mit Einschaltzeiten arbeitest, dann macht ein Freigabezeitraum nichts aus, denn Du generierst hier nur die Einschaltzeitpunkte. Genau so macht es wenig Sinn, im Sommer um 16:30 Uhr die Lightshow zu starten.

Insofern sind solche stupiden Programme eigentlich ungeeignet, den Eindruck von realer Anwesenheit zu vermitteln. Die Zeiten müssen sich an den normalen Gewohnheiten orientieren. Darum laufen z.B. meine Rollladen immer zu festen Zeitpunkten, egal ob jemand zu Hause ist oder nicht. Genau so die Beleuchtung. Solche Zufallslightshows sind zwar lustig anzusehen, gehen aber an der Realität vorbei.

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

Doc HomeMatic
Beiträge: 81
Registriert: 09.02.2015, 08:40
System: CCU
Hat sich bedankt: 2 Mal
Danksagung erhalten: 1 Mal

Re: Zufallsgenerator Skript für Anwesenheitssimulation, Lampen..

Beitrag von Doc HomeMatic » 12.06.2020, 21:30

Darüber habe ich mir auch schon Gedanken gemacht, und deswegen noch den Helligkeitswerte eines Bewegungsmelders eingebaut. Das Zweite war halt die Sache mit den recht langen Licht “an“ Phasen.

Xel66
Beiträge: 14169
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 586 Mal
Danksagung erhalten: 1501 Mal

Re: Zufallsgenerator Skript für Anwesenheitssimulation, Lampen..

Beitrag von Xel66 » 12.06.2020, 22:38

Doc HomeMatic hat geschrieben:
12.06.2020, 21:30
Das Zweite war halt die Sache mit den recht langen Licht “an“ Phasen.
Darum ja auch meine Empfehlung, mit Einschaltzeiten zu arbeiten. Die Wohnraumbeleuchtung macht man ja auch nicht an und aus, sondern im Normalfall bei Dämmerung ein und beim Zubettgehen wieder aus. Ligthshows kann man maximal mit gewöhnlich kurzen Einschaltzeiten wie Bad, Klo und ggf. Küche machen. In Wohnräumen entsprechen solche Sachen eher nicht normalen Gewohnheiten und der Fake ist schnell erkennbar. Und wenn Rollladen z.B. vor der Ausschaltzeit (aka Zubettgehzeit) runterlaufen, ist die Zeitdauer auch eher zweitrangig.

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

klassisch
Beiträge: 3974
Registriert: 24.03.2011, 04:32
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 110 Mal
Danksagung erhalten: 71 Mal

Re: Zufallsgenerator Skript für Anwesenheitssimulation, Lampen..

Beitrag von klassisch » 13.06.2020, 15:15

Ja, "Durchgangsräume" wie Treppenhaus, Toilette, Bad, ggf. Flur eignen sich gut für die Anwesenheitssimulation.
Eine reine Zufallssteuerung kann aber zu unrealistischen Ergbnissen führen.
Ich habe mir vor Jahren per Excel einige randomisierte Zeitpläne gebaut. Dann habe ich die noch nach "schnellen" und "langsamen" sortiert und die Zeiten etwas plausibilisiert und ggf korrigiert.
Diese Zeitpläne habe ich in einige WebUI Programme gegossen. Und diese Programmabläufe starte ich dann Astrogesteuert (Helligkeit ginge auch). Immer beginnend mit einem "schnellen" Durchlauf, der etwas lebendiger wirkt.
Wenn der erste Durchlauf durch ist, wird abhängig von der Uhrzeit der nächste gestartet. Zu den späteren Zeiten kommen die langsameren Abläufe, die längere Pausen haben. Das wirkt recht realistisch und war mit den WebUI Programmen gut zu verwirklichen.
Heute würde ich wahrscheinlich ioBroker dafür nutzen.

Doc HomeMatic
Beiträge: 81
Registriert: 09.02.2015, 08:40
System: CCU
Hat sich bedankt: 2 Mal
Danksagung erhalten: 1 Mal

Re: Zufallsgenerator Skript für Anwesenheitssimulation, Lampen..

Beitrag von Doc HomeMatic » 15.06.2020, 07:45

Vielen Dank für die Rückmeldungen.

Die Einwendungen sind sicherlich richtig. Da ich mich bisher nicht in die Programmierung von Skripten einarbeiten konnte, bin ich immer wieder für so "Kochrezepte" wie hier von @funkleuchtturm sehr dankbar. Es ist und bleibt natürlich eine Simulation und funktioniert m.E. recht gut. Ich habe das Abschalten jetzt noch mit einer Wochentags-abhängigen Zeitverzögerung versehen. Nun muss ich mal testen, ob das auch so läuft wie gedacht.

Kandy Jannasch
Beiträge: 1
Registriert: 17.11.2023, 22:01
System: CCU und Access Point

Re: Zufallsgenerator Skript für Anwesenheitssimulation, Lampen..

Beitrag von Kandy Jannasch » 17.11.2023, 22:31

Hallo Eugen,
ich bin Installateur und stecke in der Programmierung der CCU3 nicht wirklich drin.
Ein Kunde von mir hat für die Steuerung seiner Rollläden und etwas Beleuchtung eine CCU3 und möchte nun
von mir einige Schaltsteckdosen mit Zufallsfunktion nachgerüstet haben. Mit der Grafischen Oberfläche und den Rollläden
komme ich ja klar, aber bei den Skripten muss ich leider passen.
Ich habe schon einige Zeit zu gebracht irgend wie dein Skript in die CCU (Schaltsteckdose) zu kriegen, leider ohne Erfolg.
Vielleicht kannst Du mir wenn es deine Zeit zu lässt, ein paar Stichpunkte zukommen lassen, wie ich die Dinger zum laufen kriege.
Danke Vorab und sonnige Grüße Kandy
Zuletzt geändert von Roland M. am 17.11.2023, 23:25, insgesamt 1-mal geändert.
Grund: Fullquote entsorgt

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“