TV Simulation mit WifiLight

Begonnen von herrmannj, 30 Juni 2015, 00:04:13

Vorheriges Thema - Nächstes Thema

herrmannj

ich habe eine TV Simulation mit WifiLight umgesetzt und teile die, vielleicht hat ja jemand Bedarf:


define action.wz.tvsim notify wz.licht.leselampe:programm:\stvsim\s100 { fhem("set wz.licht.leselampe HSV ".(180+int(rand(180))-int(rand(180))).",".int(rand(21)+80).",".int(rand(30)+71)." ;set wz.licht.leselampe HSV ".(180+int(rand(180))-int(rand(180))).",".int(rand(21)+80).",".int(rand(30)+71)." ".int(rand(3)+2)." q tvsim");}


gestartet wird so
set wz.licht.leselampe HSV 180,100,100 3 q tvsim


Den Start habe ich mit DOIF automatisiert (keiner Anwesend, twilight sagt dunkel von 20:00 - 3:00, danach wird ausgeschaltet)

Als Leuchtmittel eine LD316, generell dürften ld... und lw... gut geeignet sein - Milight eher wenig.

Könnte man sicher noch beliebig verfeinern aber um den "Normalo-Einbrecher" abzuschrecken reicht es alle mal.

vg
joerg

scooty

Hallo Jörg,

ja, ich hatte Bedarf und habe es direkt für meine IWY Master LED (definiert als LD316) übernommen.
Vielen Dank!
:)

Andreas
Fhem auf Gigabyte Brix
CUL V3 HM / CUL V3 MAX / MaxCube aFW Homematic&MAX / ZWave.me ZME_UZB1 / SDuino 433 / Velux KLF200
Homematic / MAX / Logitech Hub / ZWave / Wifi LED / div. 433 Temperatursensoren / pywws WH10880 / IO Homecontrol

herrmannj

#2
schön. Ich habe noch ein wenig optimiert. So sind die Farben weniger knallig.

wz.licht.leselampe:programm:\stvsim\s100 { fhem("set wz.licht.leselampe HSV ".(180+int(rand(30))-int(rand(30))).",".int(rand(51)+20).",".int(rand(101))." ;set wz.licht.leselampe HSV ".(180+int(rand(30))-int(rand(30))).",".int(rand(51)+20).",".int(rand(101))." ".int(rand(2)+1)." q tvsim");}


vg
joerg

ps Nachbar hat schon besorgt gefragt ob alles passt weil wir wiederholt Nachts im Garten standen und das Fenster angeschaut haben. :) Lt meinen Mädels ausreichend gut TV simuliert. Das wäre sowas wie ein TÜV Siegel. Wenn die das sagen ... ;)

baumeister

Hallo,

super Idee. Würde ich gerne mal testen, allerdings will es bei mir nicht so ganz. Ich habe folgende Fehler dazu im Logfile:
2015.07.04 22:09:00 2: at_tvsim: set WZ_EG_Kammer_Lampe HSV 180: HSV is required as h,s,v
2015.07.04 22:09:00 2: at_tvsim: 100: Unknown command 100, try help.
2015.07.04 22:09:00 2: at_tvsim: 100 3 q tvsim: Unknown command 100, try help.

Irgendwie schein da bei mir etwas mit dem setzen des HSV nicht zu gehen. Hast Du eine Idee was das sein könnte?

herrmannj

nö. Poste hat mal Deinen Code.

vg
joerg

baumeister

Hallo,

nachfolgend der Code

define action.wz.tvsim notify WZ_EG_Kammer_Lampe:programm:\stvsim\s100 {\
fhem("set WZ_EG_Kammer_Lampe HSV ".(180+int(rand(30))-int(rand(30))).",".int(rand(51)+20).",".int(rand(101))." ;set WZ_EG_Kammer_Lampe HSV ".(180+int(rand(30))-int(rand(30))).",".int(rand(51)+20).",".int(rand(101))." ".int(rand(2)+1)." q tvsim");;\
}\
attr action.wz.tvsim room Hardware

define at_tvsim DOIF ([22:09]) (set WZ_EG_Kammer_Lampe HSV 180,100,100 3 q tvsim) DOELSEIF ([22:015]) (set WZ_EG_Kammer_Lampe off)
attr at_tvsim room Hardware


WZ_EG_Kammer_Lampe ist ein LW 12. Danke

herrmannj

Hi,

DOIF verwendet das Komma um mehrere Befehle zu trennen.

cmdref:
Falls ein Komma nicht als Trennzeichen zwischen FHEM-Befehlen gelten soll, so muss der FHEM-Ausdruck zusätzlich in runde Klammern gesetzt werden: ...((set lamp1,lamp2 on),set switch on)

vg
joerg

baumeister

Hallo,

danke das wusste ich nicht. Aber das scheint immer noch irgendwo der Wurm drinn zu sein. Ich habe das nun angepasst:

#TV Simulation
define TV_Sim_Automatic dummy
attr TV_Sim_Automatic devStateIcon on:general_an@green off:general_aus@red
#attr TV_Sim_Automatic fp_Grundriss 320,250,2,
attr TV_Sim_Automatic setList on off
attr TV_Sim_Automatic webCmd on:off
attr TV_Sim_Automatic room Hardware

define time_TV_Sim_Automatic_start dummy
set time_TV_Sim_Automatic_start 19:55:00
attr time_TV_Sim_Automatic_start room Hardware

define time_TV_Sim_Automatic_stop dummy
set time_TV_Sim_Automatic_stop 23:15:00
attr time_TV_Sim_Automatic_stop room Hardware


define action.wz.tvsim notify WZ_EG_Kammer_Lampe:programm:\stvsim\s100 {\
fhem("set WZ_EG_Kammer_Lampe HSV ".(180+int(rand(30))-int(rand(30))).",".int(rand(51)+20).",".int(rand(101))." ;set WZ_EG_Kammer_Lampe HSV ".(180+int(rand(30))-int(rand(30))).",".int(rand(51)+20).",".int(rand(101))." ".int(rand(2)+1)." q tvsim");;\
}\
attr action.wz.tvsim room Hardware

define at_tvsim_automatic DOIF ([[time_TV_Sim_Automatic_start]] and [TV_Sim_Automatic] eq "on" and [TV_Sim_Manually] eq "off") ((set WZ_EG_Kammer_Lampe HSV 180,100,100 3 q tvsim)) DOELSEIF ([[time_TV_Sim_Automatic_stop]] and [TV_Sim_Automatic] eq "on" and [TV_Sim_Manually] eq "off") (set WZ_EG_Kammer_Lampe off)
attr at_tvsim_automatic room Hardware


Das Licht geht auch mit der Farbe 00FFFF an, allerdings passiert dann nichts mehr. Folgenden Fehler habe ich dazu im Logfile:
2015.07.05 10:47:46 3: WZ_EG_Kammer_Lampe set HSV 180, 100, 100 with ramp: 3, flags: q
2015.07.05 10:47:49 3: action.wz.tvsim return value: Unknown command {
, try help.

Ich scheine da irgendein Klammerproblem zu habe, kann aber aktuell nicht finden an welcher Stelle.

herrmannj

Hi,

am besten Du setzt doch nochmal neu auf und arbeitest über die fhem cmd line. In der cfg (seh ich das richtig?) müsstest Du (unnötigerweise) escapen.

Also: Eingabezeile verwenden dann geht auch crtl-c / crtl-v. :)

vg
joerg



baumeister

Hallo,

ja das hatte ich auch gerade so gesehen. Mit diesem Code läuft es ohne Fehler im Logfile. Allerdings simuliert es noch nicht. Sonerdn zeigt nur das bleu...

define action.wz.tvsim notify WZ_EG_Kammer_Lampe:programm:\\stvsim\\s100 {\
fhem("set WZ_EG_Kammer_Lampe HSV ".(180+int(rand(30))-int(rand(30))).",".int(rand(51)+20).",".int(rand(101))." ;set WZ_EG_Kammer_Lampe HSV ".(180+int(rand(30))-int(rand(30))).",".int(rand(51)+20).",".int(rand(101))." ".int(rand(2)+1)." q tvsim");;\
}\

baumeister

Hallo,

kopiere ich deine modifiziert in die fhem cfg geht es leider  gar nicht:
HSV is required as h,s,v
Unknown command }, try help.

Es wird nicht ein Teil des gesamten String in der cfg gespeichert alle nach dem zweiten simikolon und das Ende fehlt komplett.
define action.wz.tvsim notify WZ_EG_Kammer_Lampe:programm:\stvsim\s100 {fhem("set WZ_EG_Kammer_Lampe HSV   ".(180+int(rand(180))-int(rand(180))).",".int(rand(21)+80).",".int(rand(30)+71)."

Irgendeine Idee?

herrmannj

Ja. Warum kopierst du das in die cfg. Geh über die fhem Oberfläche und es läuft.

In die cfg zu schreiben ist unnötig und du musst korrekt escapen.

Vg
Joerg

baumeister

Hallo,

das habe ich ja dann versucht. Dann hatte ich mich mißverständlich ausgedrückt. Ich kopiere folgendes in fhem cmd Zeile:
define action.wz.tvsim notify WZ_EG_Kammer_Lampe:programm:\stvsim\s100 {fhem("set WZ_EG_Kammer_Lampe HSV ".(180+int(rand(180))-int(rand(180))).",".int(rand(21)+80).",".int(rand(30)+71)." ;set WZ_EG_Kammer_Lampe HSV ".(180+int(rand(180))-int(rand(180))).",".int(rand(21)+80).",".int(rand(30)+71)." ".int(rand(3)+2)." q tvsim");}

drücke dann wie immer enter und erhalte folgenden Fehler:
HSV is required as h,s,v
Unknown command }, try help.

Speichere ich dann die cfg und seh mich das ganze dann an fehlt der komplette Teil ab ;set. Keine Ahnung warum. Hänge ich dann den Rest nachträglich dran erhalte ich immer weiter diese Fehlermeldung.

baumeister

Hallo,

ich habe es jetzt nur über direktes eintragen in cfg hinbekommen. escapen war zwar ein wenig fummelig, aber nun läüft es. sehr cool:-) Danke

herrmannj

sehr schön. Komisch das ctrl-c crtl-v nicht ging.

Zum ausschalten halt einfach ein "off" oder was auch immer an die LED.

vg
joerg