Hallo,
wurde in letzter Zeit an SetList etwas verändert ?
Ich habe einige Dummys zur Heizungsthermen Steuerung die in der letzten Heizperiode noch funktioniert haben.
Jetzt funktionieren Sie leider nicht mehr.
List eines der Dummys:
Internals:
CHANGED
FUUID 5c4d5b02-f33f-8133-b4b3-abebbce303fdc86e
NAME Vaillant_Heizkurve
NR 743
STATE 1.6
TYPE dummy
READINGS:
2019-10-16 12:49:07 Heizkurve 1.6
2019-10-16 12:45:26 state Heizkurve 1.8
Attributes:
event-on-change-reading .*
group Therme
icon time_graph
readingList Heizkurve:1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8
room 80_Vaillant
setList Heizkurve:1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8
sortby 50
stateFormat Heizkurve
webCmd Heizkurve
Früher wurde bei Änderung der Heizkurve zb. auf 1.8 das reading Heizkurve auf "1.8" geändert. Jetzt wird state mit dem Wert "Heizkurve 1.8" gesetzt.
Dadurch funktioniert natürlich mein notify zum setzen der Heizkurve der Therme nicht mehr.
Hi,
Meine Vermutung - nach dem Motto: Es besteht kein Rechtsanspruch auf die Beibehaltung von Fehlern: :D
ZitatreadingList
Space separated list of readings, which will be set, if the first argument of the set command matches one of them.
setList
Space separated list of commands, which will be returned upon "set name ?", so the FHEMWEB frontend can construct a dropdown and offer on/off switches. Example: attr dummyName setList on off
Ja es hat sich was geändert: Dieser "Fehler", dass auch Komma geht, wurde dieses Frühjahr behoben (https://forum.fhem.de/index.php/topic,98404.msg917396.html#msg917396). ;)
Gruß Otto
Hmm, weiß nicht, ob es mit dem Komma zusammenhängt, denn diese select-Widget-Angabe sollte ja eigentlich "schon immer" korrekt interpretiert geworden sein...
(Ich vermute eher, dass das eine unerwünschte Nebenwirkung von "setStateList" ist, habe aber keine Ahnung, warum der Eventhandler das nicht weiter erkennt.)
Willst du als workaround mal (nacheinander) versuchen,
- das readingList-Attribut zu löschen;
- statt das in setList zu machen, widgetOverride zu verwenden;
- und/oder ein weiteres Pseudo-Reading setzbar zu machen?
Ansonsten bitte mal nachsehen, wo der Thema "dummy" hingehört, und dort dann neu posten? Ich würde vermuten, dass Rudi sich das mal ansehen sollte, aber vom verschieben bekommt er in der Regel nichts mit...
Stimmt die readingList ist falsch?
Damit geht das :-[
attr <Dummy> readingList Heizkurve
attr <Dummy> setList Heizkurve:1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8
Warum steht das eigentlich nicht in der Doku? Oder find ich es bloß nicht?
Hab es jetzt folgendermaßen hinbekommen.
Ich habe readingList von "Heizkurve:1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8" auf "Heizkurve" geändert.
Damit geht es jetzt wieder.
Danke für die Hilfe
VG
HW1
Zitat von: Otto123 am 16 Oktober 2019, 14:11:15
Warum steht das eigentlich nicht in der Doku? Oder find ich es bloß nicht?
;D Würde mal behaupten, das das irreführend wäre, wenn es in der Doku stünde... Welchen Sinn hat ein widget in readingsList? Da ist doch qua Definition nichts setzbar, das Reading ist "passiv" (deswegen gibt es ja setList :P )... MMn. war das also schon immer falsch und lediglich ein "feature", dass es so bisher funktioniert hat (und du lagst auch richtig, dass es vermutlich was mit der "Komma-Änderung" zu tun hat und nicht mit irgendwas anderem ::) ).
Naja ok, langsam versteh ich :)
Das ist sowas "was man wissen muss" :)
widget ist der wichtige Hinweis. Das hat offenbar nichts mit dummy zu tun sondern mit FHEMWEB. Dort findet man dann auch die Doku - wenn auch gut verborgen :)
ZitatwebCmd
Colon separated list of commands to be shown in the room overview for a certain device. Has no effect on smallscreen devices, see the devStateIcon command for an alternative.
Example:
attr lamp webCmd on:off:on-for-timer 10
The first specified command is looked up in the "set device ?" list (see the setList attribute for dummy devices). If there it contains some known modifiers (colon, followed by a comma separated list), then a different widget will be displayed. See also the widgetOverride attribute below. Examples:
define d1 dummy
attr d1 webCmd state
attr d1 readingList state
attr d1 setList state:on,off
Na ja, eigentlich muß man nichts wissen, sondern das so machen, wie es (schon immer, nehme ich an) in der cref steht ;D ;D ;D .
Ich muß aber zugeben, dass mir das ganze "dummy-Gelumpe" schon immer suspekt war und ich das auch erst halbwegs verstehe, seit ich den "Super-dummy" MQTT2_DEVICE etwas besser kennengelernt habe ;D . (Zu "Gelumpe": vermutlich braucht auch der TE eigentlich gar keinen dummy, sondern könnte das am Zieldevice direkt machen oder einen ReadingsProxy nutzen; diese "Umpackerei", die da im Hintergrund abzulaufen scheint, finde ich nach wie vor unnötig...)
Hallo,
obwohl das Thema schon als gelöst gekennzeichnet, hänge ich mich hier noch mal dran. Seit dem Update auf fhem6 funktionieren meine dummys/Widgets mit "Setlist" nicht mehr, z.B.:
define AT_Schwelle dummy
setuuid AT_Schwelle 5e8c1f7b-f33f-15f5-f4f3-2d622ce948ef71cc
attr AT_Schwelle group AT_Schwelle_Einstellen
attr AT_Schwelle icon temp_control
attr AT_Schwelle room Heizung
attr AT_Schwelle setList state:13,14,15,16,17
attr AT_Schwelle webCmd state
define AT_SchwelleSchreiben_Click notify AT_Schwelle {\
fhem("get AT_SchwelleSchreiben AT_SchwelleSchreiben");;\
}
setuuid AT_SchwelleSchreiben_Click 5e8c1f7b-f33f-15f5-8b7a-613857eff5bb1c81
attr AT_SchwelleSchreiben_Click group heatingControl
attr AT_SchwelleSchreiben_Click room Heizung
define AT_SchwelleSchreiben ECMDDevice bai00.class
setuuid AT_SchwelleSchreiben 5e8c1f7b-f33f-15f5-5336-da7b597b37afb2ad
attr AT_SchwelleSchreiben IODev EBUS
attr AT_SchwelleSchreiben group AT_Schwelle_Einstellen
attr AT_SchwelleSchreiben room Heizung
Bei Auswahl eines Wertes wird scheinbar (so interpretiere ich den log) die ganze Liste gesendet, hier am Beispiel Heizkurve:
2020.04.08 06:41:43 5: Cmd: >get HeizkurveSchreiben HeizkurveSchreiben<
2020.04.08 06:41:43 5: ECMDDevice: Analyze command >{"write -c 700 Hc1HeatCurve ".Value("HeizkurveEinstellen")."\n"}<
2020.04.08 06:41:43 5: EBUS: sending command write -c 700 Hc1HeatCurve \n (\167\162\151\164\145\040\055\143\040\067\060\060\040\110\143\061\110\145\141\164\103\165\162\166\145\040\012)
2020.04.08 06:41:43 5: SW: 7772697465202d632037303020486331486561744375727665200a
2020.04.08 06:41:43 5: EBUS: received answer ERR: end of input reached\n\n (\105\122\122\072\040\145\156\144\040\157\146\040\151\156\160\165\164\040\162\145\141\143\150\145\144\012\012)
Wenn ich die Setlist mit Leerzeichen trenne erscheint das Widget nicht mehr im Browser. Wie hier schon hingewiesen braucht das Widget wohl Komma separated list. Eine Zwickmühle. Was tun?
Ungetestet:
Nimm mal state in die readingList auf bzw. erstelle eine rL mit diesem einen Eintrag...