StateIcon: Toggle funktioniert nicht mehr

Begonnen von eppi, 08 März 2013, 09:58:32

Vorheriges Thema - Nächstes Thema

eppi

Hallo zusammen
Seite dem Update im Februar, dass für Homematic Device das Attribut WebCmd vorgibt, kann ich mit dem Klick auf das Icon meine Homematic Switch (HM-LC-SW2-FM & HM-LC-SW4-DR) nicht mehr toggeln.

Da wie oben erwähnt WebCmd vorgegeben ist, habe ich meine Device wie folgt definiert:
define Licht_Essen CUL_HM 1811E402
attr Licht_Essen IODev CUL_HM_EG
attr Licht_Essen devStateIcon on:on off:off set_on:on set_off:off
attr Licht_Essen firmware 1.9
attr Licht_Essen model HM-LC-SW2-FM
attr Licht_Essen peerIDs
attr Licht_Essen room Licht
attr Licht_Essen serialNr IEQ0342578
attr Licht_Essen subType switch
attr Licht_Essen webCmd on:off


Diese Definition hat den Nachteil, dass ich meinen Schalter nicht mehr per Klick auf das Icon toggeln kann. Ich kann diesen nur noch Einschalten wenn er aus ist, ausschalten wenn er ein ist, geht nicht mehr. Den Icon Klick benötige ich vorwiegend mit dem Smallscreen FrontEnd auf meinem Smartphone.

Eine Abhilfe wäre sicherlich, wenn ich das Attribut WebCmd wie folgt definieren würde:
attr Licht_Essen webCmd toggle:on:off

Das unschöne daran ist, dass ich so den Befehl "toggle" im normalen Web Frontend (PGM 2)angezeigt bekomme (WAF).

Ist es möglich, dass WebCmd für Homematic Switch nicht mehr vorgegeben wird? Oder kennt sonst jemand eine Lösung, dass Toggle im Standard Web Frontend nicht mehr angezeigt wird?

Vielen Dank für die Hilfe!
Gruss Dani

martinp876

Hallo Dani,

CUL_HM versucht webCmd sinnvoll vorzubelegen.
Grund: Die FHEM Standartbelegungen sind (meiner Ansicht nach) nicht hinreichend. Es ist ein detault wenn die devicefamulie nichts vorgibt und auch gut so, aber aus der "Familie" heraus dachte ich, kann man es besser/genauer.

Das mit dem stateicon hatte ich im ersten Ansatz nicht beruecksichting - und promt war es falsch. Ist aner schon seit 'einiger Zeit' korrigiert - dazu gibt es schon einen Thread...

Der Ablauf ist, dass - falls webCmd NICHT von user gesetzt ist - ein default eingetragen wird. Wenn der User hier etwas eingestellt hat wird es NICHT modifiziert.
Nebeneffekt: wenn CUL_HM webCmd beschrieben hat und der User saved hat er es akzeptiert. Dann wird CUL_HM es auch nicht mehr ueberschreiben, es sind dann User-settings.

Stand sind jetzt folgende vorgaben:

blindActuator  $webCmd="toggle:on:off:up:down:stop:statusRequest"
dimmer         $webCmd="toggle:on:off:up:down:statusRequest"
switch         $webCmd="toggle:on:off:statusRequest"
virtual        $webCmd="press short:press long"
smokeDetector  $webCmd="test:alarmOn:alarmOff"
keyMatic       $webCmd="lock:inhibit on:inhibit off"

Wie du siehst wird als default beim switch als erstes "toggle" gesetzt. Somit sollte das Icon wieder toggeln

Ich persoenlich finde es als Vorteil, besonders fuer Neueinsteiger, wenn das Attribut beim einrichten gesetzt wird. Der user wird darauf aufmerksam gemacht, sieht die Einstellungen, hat ein Beispiel, kann nachlesen gehen im Commandref,... . Falls es ihn nicht interresiert kann er es ignorieren.

Jetzt muss ich zugeben, dass der added value sich bei switches auf 'statusRequest' reduziert - abgesehen von den 'soft-features' wie oben beschrieben.
Daher kann ich mir vorstellen es fuer switches abzuschalten.

Alternativ werde ich einbauen, dass man webCmd mit 0 belegen kann um das 'autobelegen' abzuschalten. Muss ich mal testen, sollte aber machbar sein.

dass Toggle explizit erscheint empfinde ich nicht wirklich als Problem. Groesser empfandich es, dass wichtige buttons fehlten, siehe oben. aber ... Geschmackssache, kann man nicht streiten

Gruss, Martin


eppi

Hallo Martin
Besten Dank für deine klärenden Worte!

ZitatJetzt muss ich zugeben, dass der added value sich bei switches auf 'statusRequest' reduziert - abgesehen von den 'soft-features' wie oben beschrieben.
Daher kann ich mir vorstellen es fuer switches abzuschalten.
 
Alternativ werde ich einbauen, dass man webCmd mit 0 belegen kann um das 'autobelegen' abzuschalten. Muss ich mal testen, sollte aber machbar sein.

Um es einheitlich zu halten, würde ich die Variante mit "WebCmd 0" bevorzugen.

Nochmals Danke!
Gruss Dani

eppi

Hallo Martin
Vielen Dank für das neue Feature "WebCmd 0". Beim Klick auf das Icon toggelt der Schalter, dann jedoch nicht mehr. Das heisst ist ein Schalter aus, kann ich ihn mit Klick auf das Icon einschalten, dann wieder, aber dann nicht mehr aus. Erst nach einem Browser Refresh geht es wieder. Falls es relevant ist, ich verwende kein longpoll.

Hast du eine Idee was da noch fehlt?
Danke für Unterstützung!
Gruess Dani

justme1968

guten morgen,

ich habe rudolf hier Link einen vorschlag gemacht wie man das kommando für das icon konfigurierbar machen kann und es von der webCmd liste entkoppeln kann.

ich hoffe mit einer umsetzung in dieser richtung lassen sich als wünsche abdecken.

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

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

martinp876

andre,

eine einfache lösung ohne grossen aufwand waere, den ersten eintrag aus webCmd dem icon zuzuordnen und unsichtbar schalten. Das waere mein vorschlag.

also
webCmd toggle:on:off
=> <icon> on off

wenn man toggle sichtbar haben will

webCmd toggle:toggle:on:off
=> <icon> toggle on off

da braucht man nicht noch ein user-interface. Man kann es einfach dokumentieren.
Semantisch und syntaktisch finde ich dies korrekt.

Kannst du evtl bei Rudi einsteuern

Gruss
Martin

justme1968

martin,

daran gefällt mir nicht das es das derzeitige verhalten auf jeden fall ändert und es nicht kompatibel gemacht werden kann. auch fallen einige features weg die mit meiner version möglich wären.

mit der von mir vorgeschlagenen syntax mochte ich sehr gerne (wenn rudi mit macht) noch ein paar andere dinge erreichen. auch im  hinblick auf webCmd.
ohne das devStateIcon und webCmd noch mehr vermischt wird.

ich werde es aber im kopf behalten wenn ich mit sonst nicht weiter komme.

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

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