[gelöst] devStateIcon - mehrere Konditionen

Begonnen von joginet, 12 März 2014, 07:37:51

Vorheriges Thema - Nächstes Thema

joginet

Guten Morgen Forum,
mal wieder eine blöde Anfängerfrage. Ich habe an/aus-dummys für meine Hue-Lampen in meinen Floorplan integriert:

define hue4 dummy
attr hue4 devStateIcon on:hue_state.on.png off:hue_state.off.png
attr hue4 setList off on
attr hue4 room Wohnzimmer
define hue4An notify hue4:on set HUEDevice4 on
define hue4aus notify hue4:off set HUEDevice4 off


Das funktioniert auch. Damit die Farbeinstellung im floorplan (mit Slider, usw.) nicht zuviel Platz wegnimmt,
habe ich mir eine html-Datei gebastelt und verlinkt, die die Farben der Hue's einstellt.
Das wird dann gesetzt über sowas wie
http://meine_IP:8083/fhem?cmd.HUE=set%20HUEDevice2%20rgb%200000F9

Damit schaltet sich die Hue-Lampe an und wechselt auf die gewünschte Farbe.
Der "Status" ist also nicht "on" sondern "rgb 0000F9" und das bekommt das Icon im floorplan leider nicht mit - es zeigt dann immer noch den Status "aus" - bis ich einmal draufklicke.
Wie kann ich also dem icon mitteilen, dass es nicht nur bei "on/off" den Status wechselt sondern zusätzlich auch beim direkten Einschalten einer Farbe (also "set HUEDevice rgb blabla")
Werde aus dem, was ich bisher gelesen habe nicht schlau...
Meine Konfig: FHEM auf NUC i5 mit Mint, HM-LAN, div. HM Schalter und Heizungsthermostate, FB 6840LTE mit Dect200, HUE bridge, HUE bulbs + Lightstrips, VU+Duo2 und Philips-TV Steuerung, Pushmail, Floorplan, Sprachsteuerung + Feedback per Arduino mit MOVI-Shield, LMS Multiroom mit 7x Pi

joginet

PS: da fällt mir noch ein - im Prinzip würdes es reichen, wenn das StateIcon bei Lampenstatus ungleich "off"
auf "on" wechselt - damit sind ja alle Eventualitäten abgedeckt. Nur - wie sag' ichs dem icon?
Meine Konfig: FHEM auf NUC i5 mit Mint, HM-LAN, div. HM Schalter und Heizungsthermostate, FB 6840LTE mit Dect200, HUE bridge, HUE bulbs + Lightstrips, VU+Duo2 und Philips-TV Steuerung, Pushmail, Floorplan, Sprachsteuerung + Feedback per Arduino mit MOVI-Shield, LMS Multiroom mit 7x Pi

Bennemannc

Hallo,

einfach
attr <device> statedevIcon on:icon:off off:icon:on
dann wird bei dem "Klick" auf dem Icon von on auf off und umgekehrt gewechselt.

Gruß Christoph
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

justme1968

deine beiden notifys kopieren jeweils nur on oder off in den dummy.

du kannst einen readingsProxy verwenden:define <proxy-device> readingsProxy <hue-device>:statedann ist state immer aktuell. du kannst jetzt diesem readingsProxy z.b. auch ein webCmd mit nur deiner einen farbe verpassen: attr <proxy-device> setList rgb:colorpicker,RGB
attr <proxy-device> devStateIcon {(HUEDevice_devStateIcon("<hue-device>"),"toggle")}
attr <proxy-device> webCmd rgb 0000F9


oder wenn dir das icon und der rgb preset zusammen auch schon zu viel sind eine kopie von HUEDevice_devStateIcon unter anderem namen in deine 99_myUtils packen und dort dann beim klick das kommando für die farbe zurück geben die du haben möchtest.

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

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

joginet

@Bennemannc
Zitateinfach
attr <device> statedevIcon on:icon:off off:icon:on
dann wird bei dem "Klick" auf dem Icon von on auf off und umgekehrt gewechselt.
Das Problem ist, dass das icon "mitbekommen" soll, wenn die Lampen anderweitig eingeschaltet werden
(z.B. auch über den RGB-Befehl set HUEDevice4 rgb xxxxxx)

@justme1968
Sorry - das habe ich nicht verstanden.
Also: Das Modul gab es bei mir nicht - ich habe mir das Modul readingsProxy heruntergeladen und installiert
Mal an meinen Beispiel:
define hue4proxy readingsProxy HUEDevice4:state
erfasst den Status von HUEDevice4
attr hue4proxy setList rgb:colorpicker,RGB
definiert die möglichen Werte (RGB Farben)
und dann?
attr hue4proxy devStateIcon {(HUEDevice_devStateIcon("HUEDevice4"),"toggle")} ?

Wie wird das ganze denn an das dummy-Device "hue4" bzw. an dessen devStateIcon übergeben ?
Oder soll der proxy den dummy ersetzen?
Könntest Du mir das ganze evt. mit meinen Parametern aufzeigen, damit ich es verstehe?

Also: der dummy, der HUEDevice4 an/aus-schaltet und dessen StateIcon aktuell gehalten werden soll heisst hue4.
die Icons heissen hue_state.on.png und hue_state.off.png
Nochmal Sorry für meine lange Pingzeit... :)

Meine Konfig: FHEM auf NUC i5 mit Mint, HM-LAN, div. HM Schalter und Heizungsthermostate, FB 6840LTE mit Dect200, HUE bridge, HUE bulbs + Lightstrips, VU+Duo2 und Philips-TV Steuerung, Pushmail, Floorplan, Sprachsteuerung + Feedback per Arduino mit MOVI-Shield, LMS Multiroom mit 7x Pi

justme1968

wenn du den readingsProxy nicht hast ist dein fhem zu alt. du solltest ein update machen.

du nimmst den proxy statt dem dummy.

das setList definiert das der proxy ein kommando rgb hat.

das devState icon definiert das der proxy die gleichen farbigen icons wie das HUEDevice hat.

das wenCmd gibt dir die farbe sie du möchtest auf klick.

schau mal ins einsteiger PDF da ist fast alles erklärt.

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

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

joginet

Zitatdu nimmst den proxy statt dem dummy
Alles klar, aber der dummy soll ja gleichzeitig auch on/off haben (die HUEs merken sich ja den letzten "Farbstatus", manchmal ist on/off dann halt sinnvoller
als jedesmal eine Farbe zu definieren).
Also on,off einfach in setList mit rein?

Zitat
das devState icon definiert das der proxy die gleichen farbigen icons wie das HUEDevice hat

Vielleicht habe ich mich etwas umständlich ausgedrückt. Das Hue-Farb-icon möchte ich eigentlich nicht benutzen.
Ich möchte nur, das mein (eigenes) on/off-icon (oder der dazugehörige dummy hue4) den Status on/off ändert, wenn die Lampen
über die Funktion set rgb xxxxxx direkt mit einer bestimmten Farbe eingeschaltet werden.
Und zwar egal mit welcher. Wenn ich in meiner html-datei auf "blau" klicke, schaltet die Lampe direkt mit "blau" an
(ist also blau UND gleichzeitig an). Und dieser "an"-Status soll an mein Icon (wie gesagt - nicht an das hue-icon) weitergegeben werden, nicht aber
die Farbe. Ist das so mit dem proxy zu realisieren? Oder brauche ich irgendein verschachteltes notify?
Habe mir schon einen Wolf gelesen, bekomme es aber einfach nicht hin.
Meine Konfig: FHEM auf NUC i5 mit Mint, HM-LAN, div. HM Schalter und Heizungsthermostate, FB 6840LTE mit Dect200, HUE bridge, HUE bulbs + Lightstrips, VU+Duo2 und Philips-TV Steuerung, Pushmail, Floorplan, Sprachsteuerung + Feedback per Arduino mit MOVI-Shield, LMS Multiroom mit 7x Pi

justme1968

dann füge noch toggle in das aetList mitbringen. on off hast du dann beim klick auf das icon. deine farbe beim klick auf den preset.

aber genau das macht dich der colorpicker. setz webCmd einfach nur auf rgb.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

joginet

Es tut mir leid - ich bekomme es nicht hin. Ich habe gelesen und probiert bis der Arzt kommt - aber ich schaffe es einfach nicht.

Also nochmal:

Die Farbwahl spielt für mich keine Rolle, da sie immer in meiner externen html-Datei oder i.d. Philips HUE-App auf dem Android erledigt wird. Folgendes habe ich gemacht:

define hue4proxy readingsProxy HUEDevice4:state
attr hue4proxy devStateIcon on:hue_state.on.png off:hue_state.off.png

Das gibt mir "mein" off-icon aber bei "on" diese FS-20 Dimmerlampe. Warum? Keine Ahnung - jedenfalls
ändert sich der Status schonmal bei "Farbwahlbefehlen" von extern.

Jetzt hat die Hue-Lampe aber noch ein reading "onoff", das hat bei on "1" und bei off "0".

Also:
define hue4proxy readingsProxy HUEDevice4:onoff
und
attr hue4proxy devStateIcon 1:hue_state.on.png 0:hue_state.off.png

Tut perfekt, was es soll. Ich wähle (via html oder Android) bei abgeschalteter Hue "rot" und mein icon im floorplan springt auf "an".
Perfekt - nur leider kann ich jetzt das icon nicht zusätzlich klicken...
Habe mit setList probiert:
attr hue4proxy setList toggle,0,1
und mit webCmd.  Leider ist das icon einfach nur noch Statusanzeige, kein Schalter mehr...
Ist vermutlich ein ganz doofer Fehler, ich drehe mich aber seit Tagen im Kreis.

In meiner Verzweiflung habe ich es dann mit ReadingsVal versucht - leider fehlt mir auch da das Wissen / der Syntax. Die passenden Wikis habe ich alle durch, die Beispiele aus dem web sind bei mir alle gescheitert - keine Ahnung warum. Klammern falsch gesetzt - ich weiß es nicht. Allerdings verschwimmt irgendwann auch alles zu einer Buchstabensuppe  ;D

Im Prinzip würde es für meine gewünschte Funktion reichen, wenn das Reading "onoff" meiner HUEDevice bei "1" den dummy "hue4" auf "on" setzt und bei "0" auf off. Da der dummy bereits ein devStateIcon hat, wäre damit alles geregelt.
Wie gesagt: Farbsetzung usw. wird alles extern geregelt, das hue-Farb-icon brauche ich nicht...
Meine Konfig: FHEM auf NUC i5 mit Mint, HM-LAN, div. HM Schalter und Heizungsthermostate, FB 6840LTE mit Dect200, HUE bridge, HUE bulbs + Lightstrips, VU+Duo2 und Philips-TV Steuerung, Pushmail, Floorplan, Sprachsteuerung + Feedback per Arduino mit MOVI-Shield, LMS Multiroom mit 7x Pi

justme1968

wenn du das icon anklicken möchtest musst du devStateIcon auch sagen was es beim klick tun soll:attr hue4proxy devStateIcon 1:hue_state.on:toggle 0:hue_state.off:toggle

devStateIcon erwartet jeweils 3 teile <zustand>:<icon>:<kommando bei click>

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

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

joginet

#10
DANKE!!!!!
Das war's:
define hue4proxy readingsProxy HUEDevice4:onoff
attr hue4proxy setList toggle
attr hue4proxy devStateIcon 1:hue_state.on.png:toggle 0:hue_state.off.png:toggle


Perfekt - jetzt komme ich weiter !


Meine Konfig: FHEM auf NUC i5 mit Mint, HM-LAN, div. HM Schalter und Heizungsthermostate, FB 6840LTE mit Dect200, HUE bridge, HUE bulbs + Lightstrips, VU+Duo2 und Philips-TV Steuerung, Pushmail, Floorplan, Sprachsteuerung + Feedback per Arduino mit MOVI-Shield, LMS Multiroom mit 7x Pi