Hi an alle ich verzweifele mit structure .Will alle meine Lampen schalten

Begonnen von kleinz, 02 Juli 2015, 18:22:29

Vorheriges Thema - Nächstes Thema

kleinz

Hallo
Ich möchte alle meine Wohnzimmer lampen per structure auf einmal an oder aus schalten können.
Sinn und zweck ist später ein Zentraler Hauptschalter wenn ich die Wohnung verlasse.
In meiner Googlerei hab ich das gefunden

define wz_LichtAlle structure room Wohnzimmer_Deckenlampe Wohnzimmer_Stehlampe Wohnzimmer_Lampe_Esstisch
attr wz_LichtAlle eventMap on:on off:off
attr wz_LichtAlle room Wohnzimmer
attr wz_LichtAlle devStateIcon on:An off:Aus
attr wz_LichtAlle room Wohnzimmer

Ich bekomme structure angezeigt und auch die zugehörigkeit zu den zu schaltenden Lampen. In jeder lampe steht auch das es mit structure verbunden ist.
Aber ich bekomme trotz event map keine Schalter angezeigt.
Nur ???
Kann mir da mal jemand bitte helfen
MFG Karl-Heinz

kleinz

So hab was beim googeln gefunden und es geht
define Alle_Lichter dummy
attr Alle_Lichter devStateIcon on:FS20.on off:FS20.off
attr Alle_Lichter eventMap on:an off:aus
attr Alle_Lichter room Wohnzimmer,Licht
define Alle_LichterOn notify Alle_Lichter:on set Wohnzimmer_Deckenlampe on ;; sleep 1;; set Wohnzimmer_Stehlampe on ;; sleep 1;; set Wohnzimmer_Lampe_Esstisch on
define Alle_LichterOff notify Alle_Lichter:off set Wohnzimmer_Deckenlampe off ;; sleep 1;; set Wohnzimmer_Stehlampe off ;; sleep 1;; set Wohnzimmer_Lampe_Esstisch off

Arbeitet einwandfrei mit meinen 433 günstigen Aktoren

Rince

Wie wäre es mit dem Modul LightScene?

Da einmalig alle Lampen rein, und dann verschiedene Szenen anlegen.
Alle aus, alle an für 5 Minuten...

Hat auch den Vorteil, dass Lampen, die schon den gewünschten Soll-Zustand haben, nicht geschaltet werden (wird per attr gesteuert)
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Otto123

Ich habe bei Rollo und Licht einen ganz simplen Ansatz:
Wenn die Lampen im Wohnzimmer LichtWZ1 LichtWZ2 LichtWZn usw. heißen, dann geht mit set LichtWZ.* off das Licht im Wohnzimmer komplett aus.
Und mit set Licht.* off das gesamte Licht.

Und mit set Licht.*:FILTER=STATE=on off vermeidet man unnötigen Funkverkehr  8)

Für mich war das am Anfang mit ein Grund wie ich die Namensgebung mache.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Alcamar

was genau ist der Unterschied hinsichtlich Funkverkehr zwischen
set Licht.* off
und
set Licht.*:FILTER=STATE=on off
Beide gehen auf alle Aktoren und setzen den Befehl set off ab, oder?

justme1968

nein.

die zweite variante sendet nur an die devices die gerade in sind.

der devspec filter lässt sich übrigens auch mit structure kombinieren.

LightScene macht das über ein attribut.

gruß
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

kleinz

So also mit dem Set funktioniert das alles einwandfrei.
Jetzt wenn ich hei kehre schalten sich gewünschte Geräte ein und wenn ich gehe wieder aus.
Nun aber im Winter oder im dunkln würde ich meine Wohnzimmer Lampe mit einschalten.
z.b

set  blblabla on ;; at 22:00:00 set Wohnzimmer_Lampe_Esstisch on funktioniert nicht
Hab mit + und * Probiert geht nicht.
Also es soll sich ab einer gewünschten uhrzeit in verbindung mit meiner Heimkkehr jene lampe einschalten.
Sorry shift taste hat Probleme ist zu heiss geworden grins hab sie deaktiviert

Otto123

Und der Mauszeiger für klicken auf den Code Tag ist auch kaputt?  ::)
Ich setze eine Dummy wenn ich anwesend bin. Den frage ich dann an verschiedenen Stellen ab.

Damit kannst Du ein statisches at definieren und nach Abfrage des Dummies das Licht schalten. Oder Du nimmst ein DOIF.
z. B. ([AlleAnwesend] eq "present" and [22:00]) (set Lampe on)
Viele Wege führen nach Rom...

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

kleinz

Hi Otto
Deine Code Zeile verstehe ich nicht .
Wie baue ich das in meinen Code ein?
attr Alle_Lichter devStateIcon on:FS20.on off:FS20.off
attr Alle_Lichter eventMap on:an off:aus
attr Alle_Lichter room Wohnzimmer,Licht
define Alle_LichterOn notify Alle_Lichter:on set Wohnzimmer_Deckenlampe on ;; sleep 1;; set Wohnzimmer_Stehlampe on ;; sleep 1;; set Wohnzimmer_Lampe_Esstisch on
define Alle_LichterOff notify Alle_Lichter:off set Wohnzimmer_Deckenlampe off ;; sleep 1;; set Wohnzimmer_Stehlampe off ;; sleep 1;; set Wohnzimmer_Lampe_Esstisch off


Kannst du mir da helfen kenn mich nicht gut aus
Danker im voraus

Otto123

Hi kleinz,

Deinen Code verstehe ich auch erstmal nicht 8) ich vermute Du hast das define Alle_Lichter dummy unterschlagen?
Und Du hast eine Presence Erkennung die dann ein Set AlleLichter on absetzt?
Ich habe einen Dummy der heißt AlleAnwesend. Der wird von meiner Presence Erkennung gesetzt.
Meine Beispielzeile muss komplett heißen:
define di_LichtUm10An DOIF ([AlleAnwesend] eq "present" and [22:00]) (set AlleLichter on)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

kleinz

Die Anwesenheit erkennung kommt momentan über einen Button im Pad
Unterschlagen hab ich nichts.
Ich habe Unter Room xx jede lampe angemeldet mit dem dazugehörenden pilight befehl
hier mal ein beispiel
########################steckdosen
define Wohnzimmer_Stehlampe dummy
attr Wohnzimmer_Stehlampe userattr Wohnzimmer_Deckenlampe Wohnzimmer_Deckenlampe_map room_map structexclude
attr Wohnzimmer_Stehlampe Wohnzimmer_Deckenlampe wz_LichtAlle
attr Wohnzimmer_Stehlampe devStateIcon on:FS20.on off:FS20.off
attr Wohnzimmer_Stehlampe eventMap on:on off:off
attr Wohnzimmer_Stehlampe fp_Groundfloor 176,782,0,,
attr Wohnzimmer_Stehlampe icon FS20.on
attr Wohnzimmer_Stehlampe room Wohnzimmer
define NWohnzimmer_Stehlanmpe notify Wohnzimmer_Stehlampe {\
if ("%" ne "off") {\
system("sudo pilight-send -p kaku_switch -i 67108862 -u 14 -t")\
}\
else {\
  system("sudo pilight-send -p kaku_switch -i 67108862 -u 14 -f")\
}\
}
###Deckelampe Wohnzimmer
define Wohnzimmer_Deckenlampe dummy
attr Wohnzimmer_Deckenlampe userattr room_map structexclude
attr Wohnzimmer_Deckenlampe devStateIcon on:dim93% off:FS20.off
attr Wohnzimmer_Deckenlampe devStateStyle on:FS20.on off:FS20.off
attr Wohnzimmer_Deckenlampe eventMap on:on off:off
attr Wohnzimmer_Deckenlampe fp_Groundfloor 101,743,0,,
attr Wohnzimmer_Deckenlampe icon dim50%
attr Wohnzimmer_Deckenlampe room Wohnzimmer
define NWohnzimmer_Deckenlampe notify Wohnzimmer_Deckenlampe {\
if ("%" ne "off") {\
system("sudo pilight-send -p kaku_switch -i 15412162 -u 10 -t")\
}\
else {\
  system("sudo pilight-send -p kaku_switch -i 15412162 -u 10 -f")\
}\
}


Funktioniert einwandfrei nur das ich halt  If später als X uhr schalte licht x mit ein dazu programmieren möchte (zu meinem vorherigen Code).

Otto123

Tut mir leid, aber jetzt reden wir irgendwie aneinander vorbei. Ich verstehe nix mehr.
und drei Attribute
attr Alle_Lichter devStateIcon on:FS20.on off:FS20.off
attr Alle_Lichter eventMap on:an off:aus
attr Alle_Lichter room Wohnzimmer,Licht

ohne device geht nicht. Ja habe es jetzt gesehen, ganz oben hast Du das schon mal gepostet. Ohne code Tags  :-\

Was hast Du an meinem DOIF auszusetzen? Du sagst Deine Code geht. set AlleLichter on schaltet alle Lampen an.
Mein DOIF ist ein Beispiel, du musst natürlich meine Presence durch Deinen Button ersetzen.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

kleinz

Hallo Otto
So mache jetzt mal hier weiter.
Ich habe zuerst jede Lampe und jedes Gerät definiert sie arbeiten auch alle wunderbar.
Mittlerweile hab ich auch Homematik Aktoren im Einstz.
Hier mal mein Code für Wohnung kommen und wohnung verlassen. Der Auslöser ist leider nur Virtuell auf dem IPAD,Handy oder PC
Ich werde mir dafür einen Schalter an die Wand machen .
Mir geht es jetzt um folgendes da ich keinen Dämerungsschalter in der Wohnung habe möchte ich, daß z.b zur Winter Zeit ab 17 Uhr
und zur Sommer Zeit ab 21 Uhr beim Befehl kommen die Wohnzimmer Lampe mit an geht.
Beim Befehl verlassen geht alles aus was über Fehm geschaltet wird. Das Funktioniert auch einwand frei
########Haus kommen/verlassen
define Wohnung_kommen dummy
attr Wohnung_kommen devStateIcon on:black_Steckdose.on off:black_Steckdose.off
attr Wohnung_kommen eventMap on:on off:off
attr Wohnung_kommen fp_Groundfloor 399,187,1,,
attr Wohnung_kommen icon HOME_Status.1
attr Wohnung_kommen room Wohnung
define Wohnung_kommenOn notify Wohnung_kommen:on set HM_2AA466 on ;; sleep 1;; set HM_2C4E1F on ;; sleep 1;; set HM_2C4E38 on ;; set Schlafzimmer_PC on ;;sleep 1;; at *19:00:00 set Wohnzimmer_Lampe_Esstisch on
define Wohnung_kommenOff notify Wohnung_kommen:off set HM_2AA466 off ;; set HM_2C4E1F off ;; set HM_2C4E38 off ;; set Schlafzimmer_Wecker off ;; sleep 1 ;;set Wohnzimmer_Lampe_Esstisch off ;; sleep 1 ;; set Wohnzimmer_Deckenlampe off ;; sleep 1 ;; set Schlafzimmer_Deckenlampe off


Der at Befehl funktioniert nicht ;; sleep 1;; at *19:00:00 set Wohnzimmer_Lampe_Esstisch on
Kann mir da jemand helfen?

MFG Kalle

kleinz

So hab jetzt eine Anwesenheitserkennung per Handy.
Diese Arbeitet einwandfrei.
Problem ,it der Uhrzeit bekomm ich nicht in den Griff

Otto123

Moin Kalle,

du bist jetzt irgendwie nicht der Erste, deswegen spreche ich mal in der Mehrzahl: Wie kommt ihr drauf, dass das at Modul so funktioniert?
at ist ein Modul kein Schalt Befehl oder so.

Du musst das am Besten entkoppeln, es gibt viele Wege, vielleicht auch bessere, aber ich bleibe mal bei Deinem Ansatz:

Du hast ja den Dummy "Wohnung_kommen" schon.
mit einem define Lampe_Esstisch_An at *19:00:00 IF ([Wohnung_kommen] eq "on") (set Wohnzimmer_Lampe_Esstisch on)
sollte das gehen.

Oder mit einem DOIF das Modul kann wesentlich mehr  8)
define Lampe_Esstisch_An DOIF ([19:00:00] and ([Wohnung_kommen] eq "on")) (set Wohnzimmer_Lampe_Esstisch on)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz