[GELÖST] Problem mit setlist in Dummy

Begonnen von hanswerner1, 16 Oktober 2019, 13:08:33

Vorheriges Thema - Nächstes Thema

hanswerner1

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.


Otto123

#1
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. ;)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Beta-User

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...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Otto123

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?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

hanswerner1

#4
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

Beta-User

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 ::) ).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Otto123

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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Beta-User

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...)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

mirror

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?

Beta-User

Ungetestet:
Nimm mal state in die readingList auf bzw. erstelle eine rL mit diesem einen Eintrag...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors