Hauptmenü

DOIF stateFormat Problem

Begonnen von Keule_09, 27 Februar 2019, 21:31:58

Vorheriges Thema - Nächstes Thema

Keule_09

Hallo Zusammen,

hatte schon länger ein Dummy mit diversen Notifys im Einsatz um bestimmte und oft genutzte Befehle zu nutzen und wollte diese jetzt alle zusammenfassen in ein DOIF.
Das hat auch soweit funktioniert, nur bei einer Sache hab ich ein Problem und zwar beim Update-Befehl.Dieser wird ausgeführt doch anders als beim Dummy wird im State anschließend nur
Nothing to do ....
angezeigt statt der Meldung
UPD FHEM/88_HMCCU.pm
UPD FHEM/73_AutoShuttersControl.pm
UPD FHEM/71_PHILIPS_AUDIO.pm
UPD FHEM/50_TelegramBot.pm
UPD FHEM/49_SSCamSTRM.pm
UPD FHEM/49_SSCam.pm
UPD FHEM/45_TRX.pm
UPD FHEM/31_HUEDevice.pm
UPD FHEM/21_SONOSPLAYER.pm
.....       
update finished, "shutdown restart" is needed to activate the changes.


Kann mir da jemand weiterhelfen ?

Hier das DOIF :
defmod befehle_DOIF DOIF (["$SELF:command: standart"])\
((attr befehle_DOIF devStateStyle style="color:white"),\
(attr befehle_DOIF stateFormat lets the Show begin),\
save)\
DOELSEIF(["$SELF:command: hiddenroomON"])\
((attr WEB hiddenroom Everything,Sonos,System->Versteckt),\
(attr befehle_DOIF devStateStyle style="color:green"), \
(attr befehle_DOIF stateFormat hiddenroom set on),\
save)\
DOELSEIF\
(["$SELF:command: hiddenroomOFF"])\
((attr WEB hiddenroom Everything),\
(attr befehle_DOIF stateFormat hiddenroom set off),\
(attr befehle_DOIF devStateStyle style="color:red"),\
save)\
DOELSEIF\
(["$SELF:command: backup"])\
((attr befehle_DOIF stateFormat backing up FHEM now),\
(attr befehle_DOIF devStateStyle style="color:red;;;;font-weight:bold;;;;text-decoration:blink"),\
set FHEM_Backup on,\
save)\
DOELSEIF\
(["$SELF:command: lastloglines"])\
((attr befehle_DOIF stateFormat {fhem "lastloglines 20"}),\
(attr befehle_DOIF devStateStyle style="color:white;;;;text-align:left"),\
save)\
DOELSEIF\
(["$SELF:command: autocreateOFF"])\
((attr autocreate disable 1),\
(attr befehle_DOIF stateFormat autocreate set off),\
(attr befehle_DOIF devStateStyle style="color:red"),\
save)\
DOELSEIF\
(["$SELF:command: autocreateON"])\
((attr autocreate disable 0),\
(attr befehle_DOIF stateFormat autocreate set on),\
(attr befehle_DOIF devStateStyle style="color:blue"),\
save)\
DOELSEIF\
(["$SELF:command: updateCheck"] or [05:30])\
((attr befehle_DOIF stateFormat {fhem "update check"}),\
(attr befehle_DOIF devStateStyle style="color:white;;;;text-align:left"),\
save)\
DOELSEIF\
(["$SELF:command: update"])\
((attr befehle_DOIF stateFormat {fhem "update"}),\
(attr befehle_DOIF devStateStyle style="color:red;;;;text-align:left"))\
DOELSEIF\
(["$SELF:command: restart"])\
((attr befehle_DOIF stateFormat Fhem wird neu gestartet ....),\
(attr befehle_DOIF devStateStyle style="color:white;;;;text-align:left"),\
{fhem "shutdown restart"})\
DOELSEIF\
(["$SELF:command: rereadCFG"])\
((attr befehle_DOIF stateFormat reread fhem.cfg ),\
(attr befehle_DOIF devStateStyle style="color:white"),\
{fhem "rereadcfg"})\

attr befehle_DOIF DbLogExclude .*
attr befehle_DOIF cmdState updateCheck|update|restart|rereadCFG|backup|lastloglines|autocreateOFF|autocreateON|hiddenroomON|hiddenroomOFF
attr befehle_DOIF devStateStyle style="color:white"
attr befehle_DOIF do always
attr befehle_DOIF group -
attr befehle_DOIF readingList command
attr befehle_DOIF room Automation->DOIF,Geräte->Favoriten
attr befehle_DOIF setList command:standart,updateCheck,update,restart,rereadCFG,backup,lastloglines,autocreateOFF,autocreateON,hiddenroomON,hiddenroomOFF
attr befehle_DOIF startup (attr befehle_DOIF stateFormat  !!! Welcome to FHEM !!! ),\
(attr befehle_DOIF devStateStyle style="color:white"),\
save
attr befehle_DOIF stateFormat !!! Welcome to FHEM !!!
attr befehle_DOIF verbose 0
attr befehle_DOIF webCmd command


Hier noch das Notify :
defmod update notify execute:command.update\
{ fhem "set execute updating FHEM now;; \
attr execute devStateStyle style=\"color:red;;;;text-decoration:blink;;;;\";;";;\
my $a = fhem "update";; fhem "set execute $a;; \
attr execute devStateStyle style=\"color:blue;;;;\";;" }
attr update DbLogExclude .*
attr update group Execute
attr update room Automation->Notify


Gruß Marco 

Ellert

An welcher Stelle des DOIF soll die Rückgabe des Updatebefehls in stateFormat geschrieben werden?

Keule_09

das soll im folgenden Abschnitt geschehen;

(["$SELF:command: update"])\
((attr befehle_DOIF stateFormat {fhem "update"}),\
(attr befehle_DOIF devStateStyle style="color:red;;;;text-align:left"))\


Ellert

Ob es an DOIF liegt, kannst Du testen in dem Du attr befehle_DOIF stateFormat {fhem "update"}  in der Befehlszeile ausführst.

Die Syntax für set magic erfordert runde Klammern {(<Perlcode>)}, ob das bei Attributen funktioniert ist in der Befehlsreferenz nicht beschrieben, am Besten ausprobieren.

Alternativ für den Attr-Befehl völlig auf die Perlebene wechseln, etwa so {fhem "attr befehle_DOIF stateFormat ". fhem('update')}

Eine weitere Möglichkeit ist es, die Zeilenumbrüche in br-Tags umzuwandeln und den ganzen Text mit html-Tags zu umrahmen.


Keule_09

Hallo Ellert,

Vielen Dank für deine Hilfe,
jetzt funktioniert der Update-Befehl.