Hallo,
ich hab mal testweise einen Random Timer angelegt ("define random_switch5 RandomTimer 14:15:00 Deckenlicht_Treppe 14:45:00 60"), mein Licht kann ich auch problemlos mit "set Deckenlicht_Treppe on" einschalten aber leider passiert nichts bzw. wenn Licht eingeschaltet ist wird es ausgeschaltet aber nie eingeschaltet
Muss ich ein event-on-change o.ä. setzen?
defmod random_switch5 RandomTimer 15:05:00 Deckenlicht_Treppe 16:45:00 60
attr random_switch5 switchmode 800/200
setstate random_switch5 on
setstate random_switch5 2024-08-28 15:03:30 StartTime 2024-08-28 15:05:00
setstate random_switch5 2024-08-28 15:03:30 StopTime 2024-08-28 16:45:00
setstate random_switch5 2024-08-28 15:03:30 TimeToSwitch 60
setstate random_switch5 2024-08-28 15:06:00 active 1
setstate random_switch5 2024-08-28 15:07:56 state on
defmod Deckenlicht_Treppe EseraDigitalInOut ESERA 2300001B1F535429 DS2408 5 1
attr Deckenlicht_Treppe alias Treppe
attr Deckenlicht_Treppe devStateIcon 0:off:on 1:on:off
attr Deckenlicht_Treppe event-on-change-reading .*
attr Deckenlicht_Treppe genericDeviceType light
attr Deckenlicht_Treppe group Esera Aktor
attr Deckenlicht_Treppe homebridgeMapping clear\
On=state,cmdOn=on,cmdOff=off
attr Deckenlicht_Treppe icon light_downlight
attr Deckenlicht_Treppe room Hersteller->Esera,Homekit,Licht,OG->Durchgang
attr Deckenlicht_Treppe siriName Treppe
attr Deckenlicht_Treppe userReadings state {ReadingsVal($name,"out","") }
setstate Deckenlicht_Treppe 0
setstate Deckenlicht_Treppe 2024-08-28 15:09:55 in 0
setstate Deckenlicht_Treppe 2024-08-28 15:09:55 out 0
setstate Deckenlicht_Treppe 2024-08-28 15:09:55 state 0
Setze das Attribut "offState" passend.
Danke!
Nachdem ich das "offState" Attribut auf ".* 0" gesetzt habe funktioniert es :-)
Jetzt muss ich mir noch einen Dummy Switch "Urlaub" anlegen und die Bedingung mit dem RandoMTimer verknüpfen ...
Zitat von: uxtuner am 29 August 2024, 06:27:02Danke!
Nachdem ich das "offState" Attribut auf ".* 0" gesetzt habe funktioniert es :-)
Hmmm, eigentlich sollte "0" besser passen, sonst geht der RT wohl davon aus, dass immer "an" ist, obwohl das nicht stimmt...
Du könntest übrigens auch das "state"-Reading schlicht mit dem richtigen Wert (on/off) füllen, statt das auf diese Weise zu lösen ;) .
ZitatJetzt muss ich mir noch einen Dummy Switch "Urlaub" anlegen und die Bedingung mit dem RandoMTimer verknüpfen ...
Warum keine RESIDENTS?
ein disableCond (ReadingsVal("Urlaub","state","on") eq "off") tuts gerade, das mit den RESIDENTS schau ich mir an ...
anscheinend bekommt der RandomTimer nicht mit, wenn Urlaub on/off geschaltet wird
Wenn ich "set randomTimer active" schalte berücksichtigt er den Urlaubs Status - was fehlt noch?
auch ohne "Urlaub" Kondition arbeitet das Modul nicht zuverlässig, hier mein letzter Stand:
Internals:
COMMAND off
DEF 20:15 Deckenlicht_Treppe 23:00 900
DEVICE Deckenlicht_Treppe
FUUID 66d02848-f33f-55bb-4598-6b03feb0f29151bd
NAME Simu_Treppe
NR 398
STATE off
TYPE RandomTimer
eventCount 23
READINGS:
2024-09-22 23:13:35 LastCommand set Deckenlicht_Treppe off
2024-09-22 03:58:06 StartTime 2024-09-22 20:15:00
2024-09-22 03:58:06 StopTime 2024-09-22 23:00:00
2024-09-22 03:58:06 TimeToSwitch 900
2024-09-22 23:13:35 active 0
2024-09-22 23:13:35 state off
helper:
NEXT_CHECK 22.09.2024 23:13:35
REL
REP
SIGMAWHENOFF 800
SIGMAWHENON 200
STARTTIME 22.09.2024 20:15:00
STOPTIME 22.09.2024 23:00:00
SWITCHMODE 800/200
S_REL
TIMESPEC_START 20:15
TIMESPEC_STOP 23:00
TIMETOSWITCH 900
VAR_DURATION 0
VAR_START 0
active 0
offReading state
offRegex 0
startTime 1727028900
stopTime 1727038800
Attributes:
offState 0
room Abwesenheit
switchmode 800/200
Gestern (23.09) hätte das Modul schalten müssen, da ist aber nichts passiert ...
Zitat von: uxtuner am 24 September 2024, 06:58:32Gestern (23.09) hätte das Modul schalten müssen, da ist aber nichts passiert ...
Sorry für die späte Antwort:
a) RandomTimer arbeitet Random, von daher ist "müssen" relativ. Es kann durchaus vorkommen, dass eben zufällig gar nicht geschaltet wird...
b) Ggf. müßte man mal schauen, ob eben zufällig alle Schaltungen auf "mache nichts" gefallen sind, ich bin aber nicht sicher, ob da bei verbose 4/5 viel zu sehen wäre. Notfalls müßte man mal den Code aufbohren, um mehr rauszufinden. Im Moment ist das hier seit langem der einzige Bericht über unerwartetes Verhalten bei RT, was eher für ein Verständnisproblem spräche.
War denn der "Urlaub" schon aktiv, als der RT seine "Tagesaktualisierung" gemacht hat? Das passiert (soweit ich mich entsinne) nur am Tagesanfang. Ändert man über den laufende Tag was, müßte man den RT nochmal initialisieren.
Ich habe hier das gleiche Problem. Die Timer, die ich vor Jahren angelegt habe und die ich von Zeit zu Zeit nutze, schalten nur noch aus.
Internals:
COMMAND off
DEF *{sunset_abs("HORIZON=0")} Licht_Treppenhaus 22:22:00 60
DEVICE Licht_Treppenhaus
FUUID
NAME treppenlicht_timer_sunset
NR 436
STATE on
TYPE RandomTimer
eventCount 883
.attraggr:
.attrminint:
READINGS:
2024-11-16 18:27:36 LastCommand set Licht_Treppenhaus off
2024-11-16 00:01:30 StartTime 2024-11-16 16:38:00
2024-11-16 00:01:30 StopTime 2024-11-16 22:22:00
2024-11-13 19:08:46 TimeToSwitch 60
2024-11-16 16:39:02 active 1
2024-11-16 18:27:36 state on
helper:
NEXT_CHECK 16.11.2024 18:28:35
REL
REP *
SIGMAWHENOFF 200
SIGMAWHENON 900
STARTTIME 16.11.2024 16:38:00
STOPTIME 16.11.2024 22:22:00
SWITCHMODE 200/900
S_REL
TIMESPEC_START *{sunset_abs("HORIZON=0")}
TIMESPEC_STOP 22:22:00
TIMETOSWITCH 60
VAR_DURATION 0
VAR_START 0
active 1
offReading state
offRegex off
startTime 1731771480
stopTime 1731792120
Attributes:
disableCond (presence("Anwesenheit"))
icon time_timer
room Dienste
switchmode 200/900
verbose 5
2024.11.16 18:26:36 4: [treppenlicht_timer_sunset] IstZustand:on sigmaWhen-on:900 random:12<900=>true
2024.11.16 18:26:36 4: [treppenlicht_timer_sunset] command: set Licht_Treppenhaus off
2024.11.16 18:26:36 3: EnOcean set Licht_Treppenhaus B0
2024.11.16 18:27:36 4: [treppenlicht_timer_sunset] IstZustand:on sigmaWhen-on:900 random:712<900=>true
2024.11.16 18:27:36 4: [treppenlicht_timer_sunset] command: set Licht_Treppenhaus off
2024.11.16 18:27:36 3: EnOcean set Licht_Treppenhaus B0
B0 = off
Der aktuelle Schaltzustand wird scheinbar nicht richtig erkannt. Falls man den Aktor manuell einschaltet, wird dieser von RandomTime wieder entsprechend ausgeschaltet.
Internals:
.eventMapCmd on:noArg off:noArg
DEF xxxxxxxx
FUUID
IODev TCM_ESP3_0
NAME Licht_Treppenhaus
NR 349
NTFY_ORDER 50-Licht_Treppenhaus
STATE off
TYPE EnOcean
eventCount 1106
.attraggr:
.attrminint:
READINGS:
2024-11-16 18:35:31 .lastChannel 0
2024-11-13 19:08:52 IODev TCM_ESP3_0
2024-11-16 18:35:31 channelB B0
2024-11-16 18:35:31 state B0
helper:
Attributes:
IODev TCM_ESP3_0
eventMap BI:on B0:off
icon light_stairs
manufID 7FF
room wald1
subDef0 FFFCF308
subDefI FFFCF307
subType switch
switchType central
webCmd on: off
Kann das mit dem $featurelevel zusammenhängen?
Es wird seit längerem nicht mehr (Internal) STATE gelesen, sondern (Reading) state.
Zitat von: Beta-User am 16 November 2024, 18:59:25Kann das mit dem $featurelevel zusammenhängen?
Es wird seit längerem nicht mehr (Internal) STATE gelesen, sondern (Reading) state.
Ich habe mal auf $featurelevel = 6.1 gesetzt. Das ändert aber nichts.
Wenn neuerdings "state" statt "STATE" gelesen wird, dann passt das natürlich nicht. Ich werde mal einen Aktor mit on/off in "state" ausprobieren.
Zitat von: klaus.schauer am 16 November 2024, 19:39:27Ich habe mal auf $featurelevel = 6.1 gesetzt.
Das Verhalten ist seit 6.1 geändert, siehe commandref
ZitatoffState
Setting this attribute, evaluation of on of will use ReadingsVal(<device>,"state",undef) instead of Value(). The attribute value will be used as regex, so e.g. also "dim00" beside "off" may be considered as indication the device is "off". You may use an optional second parameter (space separated) to check a different reading, e.g. for a HUEDevice-group "0 any_on" might be usefull.
NOTE: This will be default behaviour starting with featurelevel 6.1
Zitat von: klaus.schauer am 16 November 2024, 18:49:05offReading state
offRegex off
Zitat von: klaus.schauer am 16 November 2024, 18:49:05B0 = off
Versuch mal, das Attribut auf "B0" zu setzen...
Danke für den Tipp. Jetzt gehts wieder. Die Änderungen zu STATE/state habe ich bisher nicht mitbekommen.
War mir auch nicht mehr präsent, stand aber afair sogar in CHANGED.