modul LightScene

Begonnen von justme1968, 05 März 2013, 00:17:46

Vorheriges Thema - Nächstes Thema

stebar_

Zitat von: DeeSPe am 22 Mai 2018, 23:08:20
"./log/LightScenes.save" gelöscht!?

Gruß
Dan
Danke für die schnelle Antwort, jetzt weiß ich worauf ich in der Zukunft achten muss [emoji846]

dat234

Hallo die Gemeinde,

ich habe für die Steuerung eines  Geräts ein Dummy mit allen möglichen Einstellungen für das Gerät erstellt. Die Einstellungen der Variablen erfolgt über das webcmd und werden als Reading im Dummy gespeichert. Die Übertragung an das Gerät erfolgt über ein Sub in den my_Utils.
Ist es möglich, in der Light Scene die verschieden Readings eines Dummys als Device anzugeben?
Ziel ist es, die verschieden Einstellungen in einem Dummy zu behalten und nicht für jede Variable ein Dummy zu erzeugen. Das finde ich bedeutend übersichtlicher.

Grüße aus Regensburg! :-)

peterk_de

#317
Zitat von: Gunther am 02 Januar 2018, 14:32:14
Gehen verschachtelte Lightscenes überhaupt?

Im Screenshot seht Ihr meine Erdgeschoss-Lightscene in der wiederum die Lightscenes der einzelnen Räume hängen.
Leider bleibt der state auf "aus", obwohl bei zwei Räumen Licht an ist und richtigerweise dort die states der LS auf "unknown" (mit dem Fragezeichen-Icon symbolisiert) stehen.
Eigentlich sollte die LS ebenfalls auf "unknown" stehen, da ich das Attribut follow auf 2 gesetzt habe.

Habe eben dasselbe versucht und komme zu dem gleichen Ergebnis. Ziel ist es bei mir, eine Gesamt-LightScene für die ganze Wohnung zu haben, die einzelne Raum-Lightscenes "deckelt"

Die Raum-Lightscenes habe ich alle so "eingestellt":

attr raumLightscene event-on-change-reading state
attr raumLightscene lightSceneParamsToSave state -> set scene


Speichern und wieder aufrufen geht prima, auch sind die Stati korrekt im Save-File (bzw. im get scene) der Gesamt-Scene aufgeführt ... nur followDevices 2 klappt nicht.


Edit: OK ich glaube ich weiß warum:

Zeile 215 ist wohl der Übeltäter:

return if($dev->{TYPE} eq $hash->{TYPE});

... das ist vermutlich ein Schutz gegen eine Endlosschleife ...
FHEM auf Ubuntu-VM / 2xNUC Proxmox Cluster
UI: HomeKit, TabletUI, Grafana
IOdevs: 2xHueBridge, RaspiMatic-CCU, CUL868, 2xHarmonyHub, 6xRaspi-Roomnode mit CO2, VOC und lepresenced
Devices: 107xHomematic(IP), 96xPhilips Hue, 17xTECHEM, 12xBTLE, 8xSONOS, 2xHomeConnect, 1xShelly 3em, 1xNanoleaf ...

peterk_de

OK hier der Fix:

Zeile 215 tauschen von:

  return if($dev->{TYPE} eq $hash->{TYPE});

durch das hier:

  return if($dev->{NAME} eq $hash->{NAME});

Et voilá, es läuft mit den geschachtelten LightScenes ... :) Nebeneffekte kann ich nach kurzem Test keine bemerken und mir irgendwie auch nicht vorstellen, meines Erachtens macht diese Loop-Detection so irgendwie auch mehr Sinn, wenn man nur das aktuelle Device ausschließt ... oder hab ich da was übersehen?
FHEM auf Ubuntu-VM / 2xNUC Proxmox Cluster
UI: HomeKit, TabletUI, Grafana
IOdevs: 2xHueBridge, RaspiMatic-CCU, CUL868, 2xHarmonyHub, 6xRaspi-Roomnode mit CO2, VOC und lepresenced
Devices: 107xHomematic(IP), 96xPhilips Hue, 17xTECHEM, 12xBTLE, 8xSONOS, 2xHomeConnect, 1xShelly 3em, 1xNanoleaf ...

drhirn

#319
Edit: Mein Fehler, da gehören keine Beistriche in das Define...


Hi,

ich habe wiedermal eine neue Lampe in Betrieb genommen. Und diese auch in der LightScene mittels DEF-Editor hinzugefügt (HUEDevice20). Anschließend die bestehenden Szene bearbeitet. Soweit so gut.
Nach jedem Neustart von FHEM fehlt die Lampe aber wieder. Zumindest in der Web-Anzeige. Und geschaltet wird sie auch nicht. Witzigerweise ist sie im DEF aber noch vorhanden und in der LightScenes.save auch. Kann sich das jemand erklären?

Das List:

Internals:
   DEF        HUEDevice1,HUEDevice2,HUEDevice3,HUEDevice4,HUEDevice15,HUEDevice20,wifiLightWoZi01
   HAS_DataDumper 1
   HAS_JSON   1
   NAME       lightSceneWz
   NR         42
   NTFY_ORDER 50-lightSceneWz
   STATE      Initialized
   TYPE       LightScene
   mayBeVisible 1
   CONTENT:
     HUEDevice1 1
     HUEDevice15 1
     HUEDevice2 1
     HUEDevice3 1
     HUEDevice4 1
     wifiLightWoZi01 1
   READINGS:
     2018-12-17 08:21:55   state           lsWZAllesAus
   SCENES:
     lsWZAllesAn:
       HUEDevice20 bri 254
       HUEDevice3 bri 254
       HUEDevice4 bri 254
       wifiLightWoZi01 dim 100
       HUEDevice1:
         icon       on
         state      bri 254
       HUEDevice15:
         icon       on
         state      bri 254
       HUEDevice2:
         icon       on
         state      bri 254
     lsWZAllesAus:
       HUEDevice1 off
       HUEDevice15 off
       HUEDevice2 off
       HUEDevice20 off
       wifiLightWoZi01 off
       HUEDevice3:
         icon       off
         state      off
       HUEDevice4:
         icon       off
         state      off
     lsWZComputern:
       HUEDevice20 off
       wifiLightWoZi01 dim 40
       HUEDevice1:
         icon       on
         state      bri 254
       HUEDevice15:
         icon       on
         state      bri 254
       HUEDevice2:
         icon       on
         state      bri 254
       HUEDevice3:
         icon       off
         state      off
       HUEDevice4:
         icon       off
         state      off
     lsWZDösen:
       HUEDevice1 off
       HUEDevice15 off
       HUEDevice2 off
       HUEDevice20 off
       HUEDevice3 bri 80
       wifiLightWoZi01 off
       HUEDevice4:
         icon       off
         state      off
     lsWZEssen:
       HUEDevice1 bri 254
       HUEDevice15 bri 254
       HUEDevice2 bri 254
       HUEDevice20 off
       HUEDevice3 off
       HUEDevice4 bri 254 : ct 154
       wifiLightWoZi01 off
     lsWZFernsehen:
       HUEDevice1 bri 254
       HUEDevice2 off
       HUEDevice20 bri 169 : ct 270
       wifiLightWoZi01 off
       HUEDevice15:
         icon       light_question
         state      bri 254
       HUEDevice3:
         icon       dim75%@#4cff10
         state      bri 212 : xy 0.1157,0.8253
       HUEDevice4:
         icon       off
         state      off
     lsWZFernsehenDunkel:
       HUEDevice20 rgb FFB371
       wifiLightWoZi01 off
       HUEDevice1:
         icon       off
         state      off
       HUEDevice15:
         icon       light_question
         state      bri 52
       HUEDevice2:
         icon       off
         state      off
       HUEDevice3:
         icon       dim75%@#4cff10
         state      bri 212 : xy 0.1157,0.8253
       HUEDevice4:
         icon       dim31%
         state      bri 85
     lsWZPCuSofa:
       HUEDevice20 off
       wifiLightWoZi01 dim 40
       HUEDevice1:
         icon       light_question
         state      bri 254
       HUEDevice15:
         icon       on
         state      bri 254
       HUEDevice2:
         icon       on
         state      bri 254
       HUEDevice3:
         icon       off
         state      off
       HUEDevice4:
         icon       on
         state      bri 254
   devices:
     HUEDevice1
     HUEDevice15
     HUEDevice2
     HUEDevice3
     HUEDevice4
     wifiLightWoZi01
Attributes:
   group      Lichtszenen
   room       Beleuchtung


Die LightScenes.save:

#Fri Dec 14 19:00:12 2018
{"lightSceneWz":{"lsWZComputern":{"HUEDevice20":"off","HUEDevice1":{"icon":"on","state":"bri 254"},"wifiLightWoZi01":"dim 40","HUEDevice2":{"icon":"on","state":"bri 254"},"HUEDevice3":{"icon":"off","state":"off"},"HUEDevice15":{"icon":"on","state":"bri 254"},"HUEDevice4":{"state":"off","icon":"off"}},"lsWZPCuSofa":{"HUEDevice1":{"icon":"light_question","state":"bri 254"},"wifiLightWoZi01":"dim 40","HUEDevice20":"off","HUEDevice4":{"icon":"on","state":"bri 254"},"HUEDevice2":{"state":"bri 254","icon":"on"},"HUEDevice3":{"state":"off","icon":"off"},"HUEDevice15":{"icon":"on","state":"bri 254"}},"lsWZAllesAus":{"wifiLightWoZi01":"off","HUEDevice1":"off","HUEDevice20":"off","HUEDevice4":{"state":"off","icon":"off"},"HUEDevice15":"off","HUEDevice3":{"icon":"off","state":"off"},"HUEDevice2":"off"},"lsWZEssen":{"wifiLightWoZi01":"off","HUEDevice1":"bri 254","HUEDevice20":"off","HUEDevice4":"bri 254 : ct 154","HUEDevice15":"bri 254","HUEDevice2":"bri 254","HUEDevice3":"off"},"lsWZFernsehenDunkel":{"HUEDevice1":{"state":"off","icon":"off"},"wifiLightWoZi01":"off","HUEDevice20":"rgb FFB371","HUEDevice4":{"state":"bri 85","icon":"dim31%"},"HUEDevice3":{"state":"bri 212 : xy 0.1157,0.8253","icon":"dim75%@#4cff10"},"HUEDevice2":{"icon":"off","state":"off"},"HUEDevice15":{"state":"bri 52","icon":"light_question"}},"lsWZFernsehen":{"wifiLightWoZi01":"off","HUEDevice1":"bri 254","HUEDevice20":"bri 169 : ct 270","HUEDevice4":{"icon":"off","state":"off"},"HUEDevice15":{"state":"bri 254","icon":"light_question"},"HUEDevice3":{"state":"bri 212 : xy 0.1157,0.8253","icon":"dim75%@#4cff10"},"HUEDevice2":"off"},"lsWZAllesAn":{"HUEDevice4":"bri 254","HUEDevice2":{"state":"bri 254","icon":"on"},"HUEDevice3":"bri 254","HUEDevice15":{"state":"bri 254","icon":"on"},"HUEDevice1":{"icon":"on","state":"bri 254"},"wifiLightWoZi01":"dim 100","HUEDevice20":"bri 254"},"lsWZDösen":{"HUEDevice1":"off","wifiLightWoZi01":"off","HUEDevice20":"off","HUEDevice4":{"icon":"off","state":"off"},"HUEDevice2":"off","HUEDevice3":"bri 80","HUEDevice15":"off"}}}


Und dann noch ein Bildchen.

Danke!
Stefan

peterk_de

Kurze Frage an justme: Hast du dir evtl. meinen Patch von oben mal angeguckt? Hab grad gesehen, dass es eine Änderung in LightScene gibt und wollte mal höflich fragen, ob du meinen Fix mergen könntest, damit ich Faulpelz dann einfacher updaten kann ;) Läuft bei mir auch seit Wochen problemlos und mittlerweile sogar 3 stufig (Also eine Lightscene, die als Device eine LightScene enthält, die wiederum eine Lightscene als Device enthält ;))
FHEM auf Ubuntu-VM / 2xNUC Proxmox Cluster
UI: HomeKit, TabletUI, Grafana
IOdevs: 2xHueBridge, RaspiMatic-CCU, CUL868, 2xHarmonyHub, 6xRaspi-Roomnode mit CO2, VOC und lepresenced
Devices: 107xHomematic(IP), 96xPhilips Hue, 17xTECHEM, 12xBTLE, 8xSONOS, 2xHomeConnect, 1xShelly 3em, 1xNanoleaf ...

justme1968

sorry. hatte ich nicht gesehen.

dein patch reicht aber glaube ich nicht.

was passiert wenn eine lightscene eine andere enthält und diese wieder die erste?

statt zu versuchen solche zyklen wirklich zu finden reicht es vielleicht auch wenn man nach 10 oder 15 stufen abbricht.

wenn du magst kannst du das ja mal versuchen einzubauen.

sonst schaue ich es mir an sobald ich dazu komme
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

peterk_de

Das ist ja häßlich, du hast vollkommen recht ...

Hab mir das grad mal angesehen, das zu erkennen ist wirklich nicht trivial, da man sich irgendwie die Rekursionstiefe Device-übergreifend im Hash merken muss. Also zumindest für mich ist es das nicht ;-)

Dann lassen wir das mal lieber bleiben und widmen uns wichtigeren Dingen ;) Wer es braucht ist ja jetzt gewarnt und kann sich LightScene wie ich selbst patchen ;)
FHEM auf Ubuntu-VM / 2xNUC Proxmox Cluster
UI: HomeKit, TabletUI, Grafana
IOdevs: 2xHueBridge, RaspiMatic-CCU, CUL868, 2xHarmonyHub, 6xRaspi-Roomnode mit CO2, VOC und lepresenced
Devices: 107xHomematic(IP), 96xPhilips Hue, 17xTECHEM, 12xBTLE, 8xSONOS, 2xHomeConnect, 1xShelly 3em, 1xNanoleaf ...

justme1968

man kann sich das global bzw im modul merken. es ist ja immer nur ein set gleichzeitig môglich.

das funktioniert dann so ähnlich wie die inSet abfragen in manchen devices. nur eben mit einem zähler.

wenn es noch mer anfragen gibt schaue ich mal sobald zeit ist.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

justme1968

mir fällt gerade auf das es im modul schon eine erkennung einer loop gibt. das geht über $hash->{INSET}.

magst du mal versuchen das return if($dev->{TYPE} eq $hash->{TYPE}); einfach rauszuschmeissen und schauen
ob es eine loop erkannt wird?

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

FunkOdyssey

Ich habe gerade festgestellt, dass seit Monaten bei mir das "nextScene" nicht mehr funktioniert.
Ich vermute, dass das damit zusammenhängt, dass im state-Reading der falsche Wert enthalten ist.

Bei followDevices=1 ist das state-Reading fehlerhaft.
Bei followDevices=2 ist das state-Reading auf "unknown".

Ich habe u.a. Hue-Birnen in den LightScenes enthalten, die ich mit "set xyz on : pct 50 : ct 360" einschalte.
Im state-Reading ist natürlich dann so etwas wie "dim50%" enthalten und nicht die Befehlskette aus dem Set-Befehl.

Kann es sein, dass dadurch der Status der Lightszene nicht erkannt wird und somit beim nextScene immer wieder bei Szene Nr. 1 angefangen wird?

Frage:
Gibt es eine Art Best Practice, wie ich Hue-Birnen in einer LightScene aufnehmen kann und dennoch der Status richtig erkannt wird?

Oder bin ich mit meiner Vermutung komplett falsch?




Nachtrag - noch vor dem Posten
Beim Schreiben des Posts habe ich noch einen Versuch unternommen und das Attribut followDevices gelöscht. Nun klappt es.
ich poste es dennoch für Andere, die das Problem auch vielleicht haben.

Sorry für die Störung. :-)

enno

Moin,

ich spiele gerade mit LightScene herum. Habe jetzt das Problem, dass ich gerne 20-30 Scenen wieder löschen möchte. Geht das irgendwie mit einem Befehl?

set LighScene remove all

oder noch besser mit Filter....

Für einen Tip wäre ich dankbar.

Gruss
  Enno
Einfacher FHEM Anwender auf Intel®NUC

FunkOdyssey

Ich muss leider hin und wieder die LightScenes-Datei in /log manuell bearbeiten, da Änderung der Devicenamen oft nicht durchschlugen oder gelöscht Geräte im JSON erhalten blieben. Anders wäre mir lieber gewesen, aber ich lade die JSON-Datei dann in einen Online-Editor (https://jsoneditoronline.org/) und kann diese dort mit einer GUI bearbeiten.

Vielleicht hilft dir das.

Wird vermutlich aber nicht so gerne gesehen. Ähnlich wie die Bearbeitung der fhem.cfg. Nur manchmal muss man halt über das Backend aufräumen.


justme1968

ab morgen gibt es ein clear kommando mit optionaler regex
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

enno

Zitat von: justme1968 am 31 Januar 2019, 18:46:10
ab morgen gibt es ein clear kommando mit optionaler regex

du gibst dir ja reichlich Mühe mich zu überzeugen dein Modul zu nutzen ;D Super vielen Dank, ich glaube mit der Funktion geht dann alles was ich zum Bau meiner Simulation benötige.

Fettes Danke!

Gruss
  Enno
Einfacher FHEM Anwender auf Intel®NUC