Hauptmenü

DOIF als dummy Ersatz

Begonnen von tomspatz, 21 Juli 2017, 11:00:40

Vorheriges Thema - Nächstes Thema

tomspatz

Moin
Ich habe einige dummys die an DOIFS angebunden sind.
defmod SchalterDummy dummy
attr Lampe Flur alias Werkstatt Zentral
attr SchalterDummy devStateIcon off:ios-off:on on:ios-on-green:off
attr SchalterDummy setList on off
attr SchalterDummy webCmd :


Jetzt habe ich statdessen so etwas probiert, wobei nicht die Frage nach Sinn, Unsinn ist  ;) sondern wie bekomme ich den Status des DOIFS in der WEB Ansicht weg.
So könnte man auch einen einfachen Schalter sofort als DOIF basteln.

defmod IconsUmschaltenProgramm DOIF (["$SELF:Auswahl: Normal"]) ( \
attr LichtWohnzimmerSchrank1B alias Licht WZ rechts, \
attr LichtWohnzimmerSchrank1B icon light_wall_2, \
deleteattr LichtWohnzimmerSchrank1B devStateIcon)\
DOELSEIF (["$SELF:Auswahl: Weihnachten"]) ( \
attr LichtWohnzimmerSchrank1B alias Tannenbaum, \
attr LichtWohnzimmerSchrank1B icon scene_x-mas, \
attr LichtWohnzimmerSchrank1B devStateIcon off:ios-off on:ios-on-green)\
DOELSEIF (["$SELF:Auswahl: Sommer"]) ( \
attr LichtWohnzimmerSchrank1B alias Ventilator, \
attr LichtWohnzimmerSchrank1B icon vent_ventilation, \
attr LichtWohnzimmerSchrank1B devStateIcon off:ios-off on:ios-on-green)
attr IconsUmschaltenProgramm cmdState Normal | Weihnachten | Sommer
attr IconsUmschaltenProgramm group Icons
attr IconsUmschaltenProgramm icon helper_doif
attr IconsUmschaltenProgramm readingList Auswahl
attr IconsUmschaltenProgramm setList Auswahl:Normal,Weihnachten,Sommer
attr IconsUmschaltenProgramm webCmd Auswahl


LG
Tom

rabehd

Zitatwie bekomme ich den Status des DOIFS in der WEB Ansicht weg.

Verstehe ich nicht. :-[
Auch funktionierende Lösungen kann man hinterfragen.

tomspatz

@rabehd
Stell das doch einfach mal nach, dann siehst du den Status des DOIFS sowie ein Dropdown.

LG
Tom

Ellert

#3
Zitat von: tomspatz am 21 Juli 2017, 11:00:40
Moin
Ich habe einige dummys die an DOIFS angebunden sind.
defmod SchalterDummy dummy
attr Lampe Flur alias Werkstatt Zentral
attr SchalterDummy devStateIcon off:ios-off:on on:ios-on-green:off
attr SchalterDummy setList on off
attr SchalterDummy webCmd :


Jetzt habe ich statdessen so etwas probiert, wobei nicht die Frage nach Sinn, Unsinn ist  ;) sondern wie bekomme ich den Status des DOIFS in der WEB Ansicht weg.


So könnte man auch einen einfachen Schalter sofort als DOIF basteln.

defmod IconsUmschaltenProgramm DOIF (["$SELF:Auswahl: Normal"]) ( \
attr LichtWohnzimmerSchrank1B alias Licht WZ rechts, \
attr LichtWohnzimmerSchrank1B icon light_wall_2, \
deleteattr LichtWohnzimmerSchrank1B devStateIcon)\
DOELSEIF (["$SELF:Auswahl: Weihnachten"]) ( \
attr LichtWohnzimmerSchrank1B alias Tannenbaum, \
attr LichtWohnzimmerSchrank1B icon scene_x-mas, \
attr LichtWohnzimmerSchrank1B devStateIcon off:ios-off on:ios-on-green)\
DOELSEIF (["$SELF:Auswahl: Sommer"]) ( \
attr LichtWohnzimmerSchrank1B alias Ventilator, \
attr LichtWohnzimmerSchrank1B icon vent_ventilation, \
attr LichtWohnzimmerSchrank1B devStateIcon off:ios-off on:ios-on-green)
attr IconsUmschaltenProgramm cmdState Normal | Weihnachten | Sommer
attr IconsUmschaltenProgramm group Icons
attr IconsUmschaltenProgramm icon helper_doif
attr IconsUmschaltenProgramm readingList Auswahl
attr IconsUmschaltenProgramm setList Auswahl:Normal,Weihnachten,Sommer
attr IconsUmschaltenProgramm webCmd Auswahl


LG
Tom

Zitatwie bekomme ich den Status des DOIFS in der WEB Ansicht weg.
Setze für IconsUmschaltenProgramm cmdState auf " "|" "|" "

moonsorrox

du mußt bei devStateIcon folgendes eintragen .*:rc_BLANK
wenn ich das mit der Anzeige richtig verstanden habe
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

tomspatz

OK vielen dank.
Beide Methoden haben etwas für sich.
Setze für IconsUmschaltenProgramm cmdState auf " "|" "|" "
Funktioniert solange es nur ein Ausführungsteil gibt. Im folgenden habe ich es nicht hingekriegt bei off steht dann cmd_2_2 und nach ablauf des Timers cmd_2.
defmod SunAutomaticDummyDOIF DOIF (["$SELF:Schalter: on"]) (\
set RolloWZ sunAutomatic on) \
DOELSEIF (["$SELF:Schalter: off"]) (\
set RolloWZ sunAutomatic off)(\
set RolloKueche up)(\
set RolloWZ up)
attr SunAutomaticDummyDOIF cmdState ""|""
attr SunAutomaticDummyDOIF readingList Schalter
attr SunAutomaticDummyDOIF room Steuerung-Rollos
attr SunAutomaticDummyDOIF setList Schalter:on,off
attr SunAutomaticDummyDOIF wait 0:0,0,10
attr SunAutomaticDummyDOIF webCmd Schalter


.*:rc_BLANK
Ist auch OK macht aber ein "Platzhalter" und somit ein breites Feld vor dem drop down.

Was ich erreichen wollte ist dort wo der Status des DOIFS steht den oder einen Schalter zu platzieren.
Also einen echten Ersatz für einen dummy mit notify.
In der WEBphone wäre dieser dann auch zu sehen. So in etwa muss der dummy aussehen.
defmod LichtWohnzimmerSchrank1B dummy
attr LichtWohnzimmerSchrank1B alias Tannenbaum
attr LichtWohnzimmerSchrank1B devStateIcon off:ios-off on:ios-on-green
attr LichtWohnzimmerSchrank1B group Icons
attr LichtWohnzimmerSchrank1B icon scene_x-mas
attr LichtWohnzimmerSchrank1B setList on off
attr LichtWohnzimmerSchrank1B webCmd :


LG
Tom

Ellert

Zitat von: tomspatz am 22 Juli 2017, 13:29:47
OK vielen dank.
Beide Methoden haben etwas für sich.
Setze für IconsUmschaltenProgramm cmdState auf " "|" "|" "
Funktioniert solange es nur ein Ausführungsteil gibt. Im folgenden habe ich es nicht hingekriegt bei off steht dann cmd_2_2 und nach ablauf des Timers cmd_2.
defmod SunAutomaticDummyDOIF DOIF (["$SELF:Schalter: on"]) (\
set RolloWZ sunAutomatic on) \
DOELSEIF (["$SELF:Schalter: off"]) (\
set RolloWZ sunAutomatic off)(\
set RolloKueche up)(\
set RolloWZ up)
attr SunAutomaticDummyDOIF cmdState ""|""
attr SunAutomaticDummyDOIF readingList Schalter
attr SunAutomaticDummyDOIF room Steuerung-Rollos
attr SunAutomaticDummyDOIF setList Schalter:on,off
attr SunAutomaticDummyDOIF wait 0:0,0,10
attr SunAutomaticDummyDOIF webCmd Schalter


.*:rc_BLANK
Ist auch OK macht aber ein "Platzhalter" und somit ein breites Feld vor dem drop down.

Was ich erreichen wollte ist dort wo der Status des DOIFS steht den oder einen Schalter zu platzieren.
Also einen echten Ersatz für einen dummy mit notify.
In der WEBphone wäre dieser dann auch zu sehen. So in etwa muss der dummy aussehen.
defmod LichtWohnzimmerSchrank1B dummy
attr LichtWohnzimmerSchrank1B alias Tannenbaum
attr LichtWohnzimmerSchrank1B devStateIcon off:ios-off on:ios-on-green
attr LichtWohnzimmerSchrank1B group Icons
attr LichtWohnzimmerSchrank1B icon scene_x-mas
attr LichtWohnzimmerSchrank1B setList on off
attr LichtWohnzimmerSchrank1B webCmd :


LG
Tom
Wenn Du Befehlssequenzen verwendest, must Du natürlich für jede Sequenz ein Leerzeichen setzen, mein Beispiel galt dem hier:
attr IconsUmschaltenProgramm cmdState Normal | Weihnachten | Sommer

moonsorrox

einen echten Ersatz für ein Dummy gibt es als DOIF hier:
https://fhem.de/commandref_DE.html#DOIF_setList__readingList
evtl. kannst du dieses für dich anpassen, da entsteht an der Stelle ein Auswahlliste/Menü, was anderes wüsste ich jetzt nicht
Den Zeitschalter kannst du ja weglassen/ausbauen ;)

Ich finde dein DOIF sehr interessant und habe dieses mal nach gebaut, weil es mir gut gefallen könnte...!
könnte... sage ich deshalb weil ich das Problem habe das dieses gerade eingestellte Icon nicht sofort zu sehen ist, ich sehe es nur wenn ich auf der Weboberfläche aktualisiere also 1x F5 drücke ansonsten wird es nicht angezeigt, ist das bei dir auch so..?
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

tomspatz

@Ellert
ZitatWenn Du Befehlssequenzen verwendest, must Du natürlich für jede Sequenz ein Leerzeichen setzen, mein Beispiel galt dem hier:
Sorry hatte die Beispiele vermischt und in dem zweiten dann probiert mit:
""|""""""
dabei die Trennung der Sequenzen nicht bedacht.
""|"","",""
so lüppt es. THX

@moonsorrox
Zitatich sehe es nur wenn ich auf der Weboberfläche aktualisiere also 1x F5 drücke ansonsten wird es nicht angezeigt, ist das bei dir auch so..?

Ja das ist bei mir exakt so, damit verändert man ja die attr und das geht wohl nicht anders. Auch müsstest du die config speichern.
Ich nutze dieses Beispiel um Saisonal eine Steckdose zu ändern, dafür reicht es so.
Das Fertige funktionierende hier:
defmod IconsUmschaltenProgramm DOIF (["$SELF:Auswahl: Normal"]) ( \
attr LichtWohnzimmerSchrank1B alias Licht WZ rechts, \
attr LichtWohnzimmerSchrank1B icon light_wall_2, \
deleteattr LichtWohnzimmerSchrank1B devStateIcon)\
DOELSEIF (["$SELF:Auswahl: Weihnachten"]) ( \
attr LichtWohnzimmerSchrank1B alias Tannenbaum, \
attr LichtWohnzimmerSchrank1B icon scene_x-mas, \
attr LichtWohnzimmerSchrank1B devStateIcon off:ios-off on:ios-on-green)\
DOELSEIF (["$SELF:Auswahl: Sommer"]) ( \
attr LichtWohnzimmerSchrank1B alias Ventilator, \
attr LichtWohnzimmerSchrank1B icon vent_ventilation, \
attr LichtWohnzimmerSchrank1B devStateIcon off:ios-off on:ios-on-green)
attr IconsUmschaltenProgramm cmdState ""|""|""
attr IconsUmschaltenProgramm group Icons
attr IconsUmschaltenProgramm icon helper_doif
attr IconsUmschaltenProgramm readingList Auswahl
attr IconsUmschaltenProgramm setList Auswahl:Normal,Weihnachten,Sommer
attr IconsUmschaltenProgramm webCmd Auswahl


Das andere Beispiel um nur einen Schalter in FHEMWEB anzuzeigen:
defmod SunAutomaticDummyDOIF DOIF (["$SELF:Schalter: on"]) (\
set RolloWZ sunAutomatic on) \
DOELSEIF (["$SELF:Schalter: off"]) (\
set RolloWZ sunAutomatic off)(\
set RolloKueche up)(\
set RolloWZ up)
attr SunAutomaticDummyDOIF cmdState on|off,off,off
attr SunAutomaticDummyDOIF devStateIcon off:ios-off:on on:ios-on-green:off
attr SunAutomaticDummyDOIF readingList state
attr SunAutomaticDummyDOIF room Steuerung-Rollos
attr SunAutomaticDummyDOIF setList state:on,off
attr SunAutomaticDummyDOIF wait 0:0,0,10


LG
Tom

Per

Zitat von: tomspatz am 22 Juli 2017, 13:29:47.*:rc_BLANK
Ist auch OK macht aber ein "Platzhalter" und somit ein breites Feld vor dem drop down.
Erstell dir doch ein rc_Blank-Pix mit der Größe von einem Pixel.