Hauptmenü

Multistate-Switch

Begonnen von oeiber, 09 März 2018, 07:47:39

Vorheriges Thema - Nächstes Thema

oeiber

Hallo,

ich versenden einen Multistate-Switch, um den Modus meines HM-Thermostats einstellen zu können.
Wenn ich allerdings zwischen den Modi wechsle, bspw. von auto über manual zu boost, sendet schaltet das thermostat zwischendurch auf manual, bevor es schließlich auf boost schaltet.
gibt es die möglichkeit eine verzögerung für das widget switch einzustellen, dass erst wenn z.B. der Schalter den Status 2 Sekunden nicht ändert, erst der Befehl an FHEM abgesetzt wird?

DANKE

LG

Olli

setstate

Das ist beim Multistate-Button eine durchaus sinnvolle Funktion.
Ist machbar, mit einstellbarer Verzögerungszeit. Mache ich ja beim Spinner-Widget schon genauso.

oeiber

wäre cool, wenn du das integrieren könntest!

Eisix

Hallo,

mache ich momentan über ein wait im dahinter liegenden DOIF.

Gruß
eisix

n4rrOx

Zitat von: Eisix am 09 März 2018, 16:13:40
Hallo,

mache ich momentan über ein wait im dahinter liegenden DOIF.

Gruß
eisix

Hi,

aber das ist ja nicht gerade elegant und schlank, wenn man für jeden Schalter dann noch ein DOIF im Hintergrund benötigt.
Das Schalten ohne irgendwelche "Umwege" funktioniert ja eigentlich schon!

Eisix

Hallo n4rrOx,

ein DOIF oder notify hast du doch eh hinter jedem Schalter der eine Aktion ausführt. Somit ist es doch kein Umweg oder verstehe ich da was falsch.
Stimme dir Grundsätzlich aber zu das die Funktionalität im Widget der richtige Ansatz ist.

Gruß
Eisix

n4rrOx

Hi Eisix,

hm ... eigentlich nicht?
Zumindest ich habe es nur in den seltensten Fällen.

Den angesprochenen Thermostaten kann man direkt ansprechen:
set wz_Thermostat_Climate ControlMode auto/boost/manuell/....
Aus diesem Grund braucht man einfach keine zusätzlichen DOIFs etc.

Genauso verhält es sich bei vielen anderen Dingen.
Wäre ja blöd, wenn man auch beim Spinner oder Slider jeden Zwischenwert als Befehl absenden würde.

Aus diesem Grund wäre ich auch generell für ein "data-longdelay" für die anderen Widgets.

Gruß
Mathias

Eisix

Ok verstanden, habe keine Thermostate die das können, habe Schaltrelais dazwischen.

Gruß
Eisix

setstate

ist jetzt verfügbar (2.6.44)


    <div data-type="multistatebutton" data-device="dummy1"
           data-states='["0","25","50","75","100"]'
           data-icons='["fa-battery-0","fa-battery-1","fa-battery-2","fa-battery-3","fa-battery-4"]'></div>


Die Sendeverzögerung stellt man per data-delay ein. Default ist 800 in ms.

oeiber


drhirn

#10
Sehe ich das richtig, dass data-delay für folgende Widgets gilt?
  • label
  • pagebutton
  • spinner
  • switch
  • thermostat
  • volume
  • weather
Oder habe ich noch eines übersehen? Wegen der Dokumentation wär's.

Edit: Bzw. gilt's für alle Widgets, die famultibutton verwenden? Wie finde ich da am schnellsten raus, welche das alle sind?

setstate

Hast du ein "grep delay js/*" gemacht?
Müsste ich erst durchstöbern, um zu sehen, ob dass immer ein Schnittstellenparameter ist oder was internes.

drhirn

Zitat von: setstate am 14 März 2018, 09:26:47
Hast du ein "grep delay js/*" gemacht?

Naja, nein. "delay" kommt in den JS-Files auch anderweitig vor ;)

oeiber

hi setstate,

könntest du die funktion evtl. noch ins switch—widget integrieren?
multistatebutton wird ja nicht mehr weitergepflegt.

Danke!

setstate

wie willst du ein delay beim switch nutzen? Was hat das für Vorteile?