Zitat von: Dietmar63 am 24 Januar 2017, 19:49:04
ich werde es so machen, dass ich dummys grundsätzlich von der Prüfung auf isHeizung() ausnehmen werde.
Dann ist kein neues Attibut notwendig.
Mit der Änderung funktioniert wieder alles wie es soll.
Hi zusammen,
ich nutze ein Tripel aus Dummy, WeekdayTimer und DOIF für eine Automatik.
Im Dummy stehen dann Vorgabe Werte wie Timespec, per UZSU angegeben und Helligkeitsschwelle.
defmod Beleuchtung_controlUnit dummy
attr Beleuchtung_controlUnit alias Außenbereich: Beleuchtung
attr Beleuchtung_controlUnit devStateIcon auto:time_automatic@green manual:time_manual_mode@red
attr Beleuchtung_controlUnit group Beleuchtung
attr Beleuchtung_controlUnit icon hm_ccu
attr Beleuchtung_controlUnit readingList controlMode desired program wait
attr Beleuchtung_controlUnit room Außenbereich
attr Beleuchtung_controlUnit setList controlMode:auto,manual desired:0,5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100,105,110,115,120,125,130,135,140,145,150,155,160,165,170,175,180,185,190,195,200,205,210,215,220,225,230,235,240,245,250,255,260,265,270,275,280,285,290,295,300,305,310,315,320,325,330,335,340,345,350,355,360,365,370,375,380,385,390,395,400,405,410,415,420,425,430,435,440,445,450,455,460,465,470,475,480,485,490,495,500,505,510,515,520,525,530,535,540,545,550,555,560,565,570,575,580,585,590,595,600,605,610,615,620,625,630,635,640,645,650 program:uzsu wait:0,5,10,15,20,25,30,35,40,45,50,55,60
attr Beleuchtung_controlUnit stateFormat controlMode
setstate Beleuchtung_controlUnit auto
setstate Beleuchtung_controlUnit 2016-10-27 08:51:03 controlMode auto
setstate Beleuchtung_controlUnit 2017-01-20 07:37:12 desired 600
setstate Beleuchtung_controlUnit 2016-10-27 08:51:03 hysteresis 15
setstate Beleuchtung_controlUnit 2016-12-15 07:33:56 program Mo,Di,Mi,Do,Fr,Sa,So|05:30|enabled Mo,Di,Mi,Do,Fr,Sa,So|24:00|disabled
setstate Beleuchtung_controlUnit 2017-01-18 07:12:03 state enabled
setstate Beleuchtung_controlUnit 2016-10-27 08:51:03 wait 15
Der entsprechende WeekdayTimer sieht wie folgt aus
defmod Beleuchtung_timeSwitch WeekdayTimer Beleuchtung_controlUnit Mo,Di,Mi,Do,Fr,Sa,So|05:30|enabled Mo,Di,Mi,Do,Fr,Sa,So|24:00|disabled
attr Beleuchtung_timeSwitch alias Außenbereich: BeleuchtungZeitschaltuhr
attr Beleuchtung_timeSwitch group Beleuchtung
attr Beleuchtung_timeSwitch icon time_clock
attr Beleuchtung_timeSwitch room Außenbereich
attr Beleuchtung_timeSwitch stateFormat currValue
attr Beleuchtung_timeSwitch switchInThePast 1
setstate Beleuchtung_timeSwitch enabled
setstate Beleuchtung_timeSwitch 2017-01-20 05:30:02 currValue enabled
setstate Beleuchtung_timeSwitch 2017-01-20 05:30:02 nextUpdate 2017-01-21 00:00:00
setstate Beleuchtung_timeSwitch 2017-01-20 05:30:02 nextValue disabled
setstate Beleuchtung_timeSwitch 2017-01-20 05:30:02 state enabled
Seit der Änderung Revision 12932 (https://forum.fhem.de/index.php/topic,63905.msg551416.html#msg551416), welches ich erst vorgestern per Update eingespielt habe, wird bei mir nun nicht mehr state im Dummy aktualisiert, sondern desired. Dies führt dazu, dass meine ganze Automatik nicht mehr funktioniert und ich Fehlermeldungen bekomme, dass "enabled" nicht mit einer Zahl verglichen werden kann.
Ich werde nun erst mal wieder ein Backup einspielen und würde mich freuen, wenn man das irgendwie anders lösen könnte.
Grüße
igami
ich kann dir nur helfen wenn du ein Protokoll des WD mit verbose 5 lieferst
Wie ist Reklame_controlUnit definiert
Zitat von: Dietmar63 am 20 Januar 2017, 13:07:30
ich kann dir nur helfen wenn du ein Protokoll des WD mit verbose 5 lieferst
Werde ich auf meinem Testsystem nachher mal nachstellen und dann was liefern.
Zitat von: Dietmar63 am 20 Januar 2017, 13:07:30
Wie ist Reklame_controlUnit definiert
Eigentlich wollte ich alle Reklame in Beleuchtung umbenannt haben :D Hab es im Beitrag angepasst. Es handelt sich um den dummy.
Hier einmal was aus dem Log
2017.01.21 05:13:16 5: [Beleuchtung_timeSwitch] removing Timer: Beleuchtung_timeSwitch_6
2017.01.21 05:13:16 5: [Beleuchtung_timeSwitch] removing Timer: Beleuchtung_timeSwitch_2
2017.01.21 05:13:16 5: [Beleuchtung_timeSwitch] removing Timer: Beleuchtung_timeSwitch_4
2017.01.21 05:13:16 5: [Beleuchtung_timeSwitch] removing Timer: Beleuchtung_timeSwitch_3
2017.01.21 05:13:16 5: [Beleuchtung_timeSwitch] removing Timer: Beleuchtung_timeSwitch_1
2017.01.21 05:13:16 5: [Beleuchtung_timeSwitch] removing Timer: Beleuchtung_timeSwitch_5
2017.01.21 05:13:16 5: [Beleuchtung_timeSwitch] Mo,Di,Mi,Do,Fr,Sa,So|05:30|enabled - trying to accept as a switchtime
2017.01.21 05:13:16 4: [Beleuchtung_timeSwitch] Mo,Di,Mi,Do,Fr,Sa,So|05:30|enabled - accepted
2017.01.21 05:13:16 5: [Beleuchtung_timeSwitch] Mo,Di,Mi,Do,Fr,Sa,So|24:00|disabled - trying to accept as a switchtime
2017.01.21 05:13:16 4: [Beleuchtung_timeSwitch] Mo,Di,Mi,Do,Fr,Sa,So|24:00|disabled - accepted
2017.01.21 05:13:16 4: [Beleuchtung_timeSwitch] 07:43:20 17:32:29 Samstag
2017.01.21 05:13:16 4: [Beleuchtung_timeSwitch] 05:30:00 enabled, 24:00:00 disabled (Profil 0: Sonntag)
2017.01.21 05:13:16 4: [Beleuchtung_timeSwitch] 05:30:00 enabled, 24:00:00 disabled (Profil 1: Montag)
2017.01.21 05:13:16 4: [Beleuchtung_timeSwitch] 05:30:00 enabled, 24:00:00 disabled (Profil 2: Dienstag)
2017.01.21 05:13:16 4: [Beleuchtung_timeSwitch] 05:30:00 enabled, 24:00:00 disabled (Profil 3: Mittwoch)
2017.01.21 05:13:16 4: [Beleuchtung_timeSwitch] 05:30:00 enabled, 24:00:00 disabled (Profil 4: Donnerstag)
2017.01.21 05:13:16 4: [Beleuchtung_timeSwitch] 05:30:00 enabled, 24:00:00 disabled (Profil 5: Freitag)
2017.01.21 05:13:16 4: [Beleuchtung_timeSwitch] 05:30:00 enabled, 24:00:00 disabled (Profil 6: Samstag)
2017.01.21 05:13:16 5: [Beleuchtung_timeSwitch] removing Timer: Beleuchtung_timeSwitch_SetTimerOfDay
2017.01.21 05:13:16 5: [Beleuchtung_timeSwitch] setting Timer: Beleuchtung_timeSwitch_SetTimerOfDay 2017-01-22 00:00:05
2017.01.21 05:13:16 4: [Beleuchtung_timeSwitch] device type heating recognized, setModifier:desired
2017.01.21 05:13:16 4: [Beleuchtung_timeSwitch] Heating recognized - switch in the past activated
2017.01.21 05:13:16 5: getCombinedKeyValAttr Beleuchtung_timeSwitch : including HASH from device attribute readingsDesc
2017.01.21 05:13:16 4: [Beleuchtung_timeSwitch] condition: - Tage:0,1,2,3,4,5,6
2017.01.21 05:13:16 5: [Beleuchtung_timeSwitch] condition: {my $days={};;map{$days->{$_}=1}(0,1,2,3,4,5,6);;;;( 1 && (defined $days->{$wday}))}
2017.01.21 05:13:16 5: [Beleuchtung_timeSwitch] result of condition:1
2017.01.21 05:13:16 5: getCombinedKeyValAttr Beleuchtung_timeSwitch : including HASH from device attribute readingsDesc
2017.01.21 05:13:16 4: [Beleuchtung_timeSwitch] setTimer - timer seems to be active today: 0123456|05:30|enabled
2017.01.21 05:13:16 5: [Beleuchtung_timeSwitch] setting Timer: Beleuchtung_timeSwitch_1 2017-01-21 05:30:00
2017.01.21 05:13:16 4: [Beleuchtung_timeSwitch] condition: - Tage:0,1,2,3,4,5,6
2017.01.21 05:13:16 5: [Beleuchtung_timeSwitch] condition: {my $days={};;map{$days->{$_}=1}(0,1,2,3,4,5,6);;;;( 1 && (defined $days->{$wday}))}
2017.01.21 05:13:16 5: [Beleuchtung_timeSwitch] result of condition:1
2017.01.21 05:13:16 5: getCombinedKeyValAttr Beleuchtung_timeSwitch : including HASH from device attribute readingsDesc
2017.01.21 05:13:16 4: [Beleuchtung_timeSwitch] setTimer - timer seems to be active today: 0123456|24:00|disabled
2017.01.21 05:13:16 5: [Beleuchtung_timeSwitch] setting Timer: Beleuchtung_timeSwitch_2 2017-01-22 00:00:00
2017.01.21 05:13:16 5: getCombinedKeyValAttr Beleuchtung_timeSwitch nextUpdate: including HASH from device attribute readingsDesc
2017.01.21 05:13:16 5: getCombinedKeyValAttr Beleuchtung_timeSwitch nextUpdate: including HASH from device attribute readingsDesc
2017.01.21 05:13:16 5: getCombinedKeyValAttr Beleuchtung_timeSwitch nextValue: including HASH from device attribute readingsDesc
2017.01.21 05:13:16 5: getCombinedKeyValAttr Beleuchtung_timeSwitch nextValue: including HASH from device attribute readingsDesc
2017.01.21 05:13:16 5: getCombinedKeyValAttr Beleuchtung_timeSwitch currValue: including HASH from device attribute readingsDesc
2017.01.21 05:13:16 5: getCombinedKeyValAttr Beleuchtung_timeSwitch currValue: including HASH from device attribute readingsDesc
2017.01.21 05:13:16 4: [Beleuchtung_timeSwitch] time=24:00/1485039600 delay=-67604, nextDelay=-67500, nextRetry=1484972100
2017.01.21 05:13:16 4: [Beleuchtung_timeSwitch] delayedExecutionCond:0
2017.01.21 05:13:16 4: [Beleuchtung_timeSwitch] result of delayedExecutionCond:0
2017.01.21 05:13:16 4: [Beleuchtung_timeSwitch] list of window sensors found: 'Beleuchtung_timeSwitch'
2017.01.21 05:13:16 4: [Beleuchtung_timeSwitch] past timer on Beleuchtung_controlUnit at 2017-01-21 00:00:00 with disabled activated
2017.01.21 05:13:16 5: [Beleuchtung_timeSwitch] removing Timer: Beleuchtung_timeSwitch_delayed
2017.01.21 05:13:16 5: [Beleuchtung_timeSwitch] setting Timer: Beleuchtung_timeSwitch_delayed 2017-01-21 05:13:21
Ich vermute es hat was hiermit zu tun
2017.01.21 05:13:16 4: [Beleuchtung_timeSwitch] device type heating recognized, setModifier:desired
wie sieht diese Definition aus?
Beleuchtung_controlUnit
Zitat von: Dietmar63 am 21 Januar 2017, 19:23:04
wie sieht diese Definition aus?
Beleuchtung_controlUnit
Erster Beitrag, erster Codeblock. Es sollte nun alles via rawDefinition importierbar sein.
Ja, es liegt an der Definition mit desired
Bin noch nicht dazu gekommen mir eine Lösung auszudenken
Man könnte einfach ein Attribut einbauen um eine Überprüfung explizit auszuschalten.
... Oder die Überprüfung wird für Dummys in abgeschaltet.
Wie stellt sich das Gerät in Fhemweb dar. Rudi nutzt praktisch die gleiche Logik um Heizungen/Thermostate zu erkennen
Zitat von: Dietmar63 am 23 Januar 2017, 07:45:39
... Oder die Überprüfung wird für Dummys in abgeschaltet.
Wie stellt sich das Gerät in Fhemweb dar. Rudi nutzt praktisch die gleiche Logik um Heizungen/Thermostate zu erkennen
Da verstehe ich jetzt nicht was du meinst.
Rudi hat in der Weboberfläche für Heizungen/Thermostate irgendwelche Specials eingebaut.
Er erkennt sie an besonderen Set-Befehlen über getAllSets($)
Diese Logik wollte auch ich für mich in HC/WDT nutzen.
Deine Definition scheint dem dummy desired
beizubringen, und das ist bei den HCs/WDTs nun schädlich.
Ich würde meine Logik ergänzen, so dass ich bei Geräten, die als dummy definiert sind, die Heizungsermittlung immer auf false setzen würde.
Zitat von: Dietmar63 am 23 Januar 2017, 09:33:05
Ich würde meine Logik ergänzen, so dass ich bei Geräten, die als dummy definiert sind, die Heizungsermittlung immer auf false setzen würde.
Dann aber auch bitte gleich bei DOIF, dort kann man nun auch eigene Readings angeben um auf den Dummy zu verzichten ;)
Es geht nicht um Readings, es geht um Set-Parameter: getAllSets($)
Ob das dann mit DOIF funktioniert kann ich dir nicht sagen.
diese Zeile
attr Beleuchtung_controlUnit setList controlMode:auto,manual desired:0,5,10,15,20,25,30,35,40,45,50,...
dürfte das Problem auslösen.
Vermutlich wird mit dieser Zeile dem dummy der Set-Befehl desired: beigebracht.
In WDT und HC wird mit getAllSets($) die Liste der möglichen Set-Befehle ermittelt. Wenn desired: oder desired-Temp ... gefunden wird, wird das Gerät wie eine Heizung behandelt.
Zitat von: Dietmar63 am 23 Januar 2017, 20:17:12
Vermutlich wird mit dieser Zeile dem dummy der Set-Befehl desired: beigebracht.
Dem ist so. DOIF versteht aber auch setlist.
Zitat von: Dietmar63 am 23 Januar 2017, 20:17:12
In WDT und HC wird mit getAllSets($) die Liste der möglichen Set-Befehle ermittelt. Wenn desired: oder desired-Temp ... gefunden wird, wird das Gerät wie eine Heizung behandelt.
Deswegen möchte ich ja explizit ausschalten können ob es eine Heizung ist. z.B. mit einem Attribut ignoreSetModifier oder so
ich werde es so machen, dass ich dummys grundsätzlich von der Prüfung auf isHeizung() ausnehmen werde.
Dann ist kein neues Attibut notwendig.
Wenn jemand das Schalten in der Vergangenheit benötigt, steht das Attribut "switchinthepast" zur Verfügung.
Test laufen schon.
eingechekt
Werde ich morgen testen :)