Hallo zusammen,
vielleicht ist der Betreff etwas blöd gewählt aber ich wusste nicht wie ich es formulieren sollte.
eines vorab, die Suche, commandref, und WiKi hab ich schon durch, leider ohne nennenswerten erfolg.
Zum Problem:
Ich möchte das auf meinem Tablet, auf dem Tablet UI läuft, ein Popup erscheint wenn mein Geschirrspüler fertig ist.
Zur Zeit hab ich es über einen dummy gelöst der aus einer DoIf "gespeist" wird wenn der Strom auf 10mA sinkt.
Soweit geht es auch, Geschirrspüler get an -> der dummy ändert den Status auf off, Geschirrspüler geht aus -> der dummy ändert den Status auf on. Popup erscheint.
Soweit bestens!!
Wenn ich nun aber die Seite der UI neu lade erscheint das Popup jedes mal, auch wenn ich über einen pagetab eine andere Seite Aufrufe, erscheint das Popup.
Mach ich was falsch? Wie mach ich es richtig?
dummy
Internals:
CFGFN
CHANGED
NAME GS_dummy
NR 90181
STATE on
TYPE dummy
.attraggr:
.attreocr:
.*
.attrminint:
READINGS:
2018-05-24 20:06:06 state on
Attributes:
event-on-change-reading .*
setList on off
DoIf
Internals:
CFGFN
DEF ([Geschirrspueler:2.CURRENT]<=10) (set GS_dummy on) DOELSE (set GS_dummy off)
MODEL FHEM
NAME GS_dummy_DOIF
NR 79071
NTFY_ORDER 50-GS_dummy_DOIF
STATE cmd_1
TYPE DOIF
.attraggr:
.attrminint:
READINGS:
2018-05-24 20:06:06 Device Geschirrspueler
2018-05-24 20:06:06 cmd 1
2018-05-24 20:06:06 cmd_event Geschirrspueler
2018-05-24 20:06:06 cmd_nr 1
2018-05-24 20:06:06 e_Geschirrspueler_2.CURRENT 10.0
2018-05-23 21:29:58 mode enabled
2018-05-24 20:06:06 state cmd_1
Regex:
condition:
0 ReadingValDoIf($hash,'Geschirrspueler','2.CURRENT')<=10
devices:
0 Geschirrspueler
all Geschirrspueler
do:
0:
0 set GS_dummy on
1:
0 set GS_dummy off
helper:
DOIF_Readings_events
DOIF_eventas
event 2.CURRENT: 10.0,2.POWER: 0.4,2.FREQUENCY: 50.0,2.VOLTAGE: 233.9,2.ENERGY_COUNTER: 11258.8,hmstate: on,StrominA: 0.01
globalinit 1
last_timer 0
sleeptimer -1
timerdev Geschirrspueler
timerevent 2.CURRENT: 10.0,2.POWER: 0.4,2.FREQUENCY: 50.0,2.VOLTAGE: 233.9,2.ENERGY_COUNTER: 11258.8,hmstate: on,StrominA: 0.01
triggerDev Geschirrspueler
timerevents:
2.CURRENT: 10.0
2.POWER: 0.4
2.FREQUENCY: 50.0
2.VOLTAGE: 233.9
2.ENERGY_COUNTER: 11258.8
hmstate: on
StrominA: 0.01
timereventsState:
2.CURRENT: 10.0
2.POWER: 0.4
2.FREQUENCY: 50.0
2.VOLTAGE: 233.9
2.ENERGY_COUNTER: 11258.8
hmstate: on
StrominA: 0.01
triggerEvents:
2.CURRENT: 10.0
2.POWER: 0.4
2.FREQUENCY: 50.0
2.VOLTAGE: 233.9
2.ENERGY_COUNTER: 11258.8
hmstate: on
StrominA: 0.01
triggerEventsState:
2.CURRENT: 10.0
2.POWER: 0.4
2.FREQUENCY: 50.0
2.VOLTAGE: 233.9
2.ENERGY_COUNTER: 11258.8
hmstate: on
StrominA: 0.01
internals:
itimer:
readings:
0 Geschirrspueler:2.CURRENT
all Geschirrspueler:2.CURRENT
trigger:
uiState:
uiTable:
Attributes:
room 9_3_DOIFs
Popup
<!--
******************************
* popup für Geschirrspüler *
******************************
-->
<div data-type="popup"
data-device="GS_dummy"
data-get-on="on"
data-get-off="off"
data-height="150px"
data-width="300px">
<div class="dialog">
<header>Hinweis</header>
<div data-type="label"
class="bigger">Der Geschirrspüler ist fertig!</div>
<div data-type="link"
class="round top-space-2x center"
data-width="75" data-height="25"
data-color="white"
data-background-color="green"
data-icon="fa-check"
onclick="$('.dialog-close').trigger('click');">OK</div>
</div>
</div>
VG
pflock_y
Ich hab es jetzt über einen zweiten dummy erst einmal gelöst, diesen setze ich mit dem "OK" aus dem Popup zurück. Jetzt erscheint es zumindest nicht mehr beim reload oder Seitenwechsel.
Vielleicht geht es auch eleganter?!?!?!?!?
Bin für Tips offen!!
VG
pflock_y
Hey, du könntest doch mit einem Click auf OK im Popup den GS_dummy auf off setzen, dann
erscheint das Popup doch auch nicht mehr.
Zitat von: Vaddi am 25 Mai 2018, 17:44:58
Hey, du könntest doch mit einem Click auf OK im Popup den GS_dummy auf off setzen, dann
erscheint das Popup doch auch nicht mehr.
Hatte ich auch erst, nur ist das Problem das die DoIf die denn dummy füllt zyklisch ihn immer wieder einschaltet. Somit kommt das Popup nach fünf Minuten wieder.
Gesendet von iPhone mit Tapatalk
Dann könntest du dir ein Hilfsreading in den dummy packen.
setreading GS_dummy popup 0
Bei deinem DOIF dann
([Geschirrspueler:2.CURRENT]<=10 and [GS_dummy:popup] eq 0) (set GS_dummy on;setreading GS_dummy popup 1) DOELSE (set GS_dummy off;setreading GS_dummy popup 0)
Dann noch beim klick auf OK im Popup den dummy off setzen.
OK, teste ich.
Danke für den Tip!!
Gesendet von iPhone mit Tapatalk
hab es getestet, leider das gleiche Ergebnis wie vorher.
der dummy wird nach fünf Minuten wieder "on" gesetzt und das popup erscheint.
Also erst mal wieder Rückbau auf die zwei dummy Lösung.
Trotzdem vielen Dank!!!!!!!
VG
pflock_y
Kann es sein, dass der 2.CURRENT Wert dann zeitweise über 10 kommt?
leider nein, laut log, welches ich auch für den Graphen benutze und auswerte nicht. immer schön bei 10.
Das was ich oben geschrieben habe kann auch gar nicht funktionieren, dumm von mir :o
So könnte es aber funktionieren:
erst mal wieder
setreading GS_dummy popup 0
Und dann das hier, da musst du aber evtl den 2.CURRENT Wert anpassen
([Geschirrspueler:2.CURRENT]<=10 and [GS_dummy:popup] eq 0) (set GS_dummy on;setreading GS_dummy popup 1) DOELSEIF ([Geschirrspueler:2.CURRENT]>20) (set GS_dummy off;setreading GS_dummy popup 0)
Und wie oben auch, beim klick auf das popup dummy off setzen.
Hab ich eingebaut, der GS läuft. Nun heißt es warten ::)
Super, scheint zu funktionieren. Seit gut na Stunde ist der GS fertig und es gab nur einmal ein Popup.
Vielen Dank, Vaddi!!!!
VG
pflock_y
#EDIT
zweiter Test in Folge, funktioniert bestens!!!!!!!!!