Slider - Positiv und Negativ in einem

Begonnen von Alveole, 13 Januar 2015, 23:01:00

Vorheriges Thema - Nächstes Thema

Alveole

Hallo Leute,
Langsam versteh ich immer mehr!
Eine Frage konnte ich noch immer nicht lösen:
Gibt es eine Möglichkeit, einen Slider so zu erstellen, das er quasi in der Mitte des Bereiches bei 0 steht und man so nach rechts und links schieben kann.
Hintergrund: ich möchte bei meinen KNX/EIB Raumregler den gewünschten Sollwert für die Raumtemperatur ändern. Und den kann man nunmal senken und erhöhen.

Danke!

wthiess

Hallo!
habe das selbe Problem. Hast du schon eine Lösung?

Lg
Wolfgang
Raspberry Pi 3; 8xRelais; Aptodec Nano V3.0 Pro; FS1000a; RF-5V; Hama TS33C; 3x Brennerstuhl FunkSteckdosen; 9x Dooya funk Rollo; KWL Systemair VR400; Thermokon Modbusthermostat; diverse China Modbus Thermostate; 1-wire Bus; Telegram; QuickFhem; FhemNative; Firmata; Alexa ......

DeeSPe

Über das attr widgetOverride den Slider definieren:
<READINGNAME/SETNAME>:slider,-3,1,3

Dieser Slider geht von -3 bis +3 in Schritten von 1.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

wthiess

Danke DeeSPe!
..funktioniert. Jetzt wäre noch schön wenn folgendes läuft.
Da viele Modbusgeräte nur + oder - zum Nullpunkt können (0=20Grad, -150=5Grad, +50=25Grad), Wäre es super wenn es im Slider nicht -150,-140,-130, usw. angezeigt wird, sonder 5-25Grad.
gibt es da eine Möglichkeit?

lg
Wolfgang

Hier meine Fhem.cfg
#Soll_WZ offset schreiben
define Soll_WZ ModbusAttr 2 5
attr Soll_WZ userattr IODev dev-h-combine dev-h-defPoll obj-h260-reading obj-h523-expr obj-h523-hint obj-h523-reading obj-h523-set sortby stateFormat webCmd
attr Soll_WZ IODev VR400Mod
attr Soll_WZ dev-h-combine 5
attr Soll_WZ dev-h-defPoll 1
attr Soll_WZ group Heizung_Wohnzimmer
attr Soll_WZ obj-h260-reading TemperaturSoll
attr Soll_WZ widgetOverride obj-h523-reading Sollof:slider,-150,10,50
attr Soll_WZ obj-h523-reading Sollof
attr Soll_WZ obj-h523-set 1
attr Soll_WZ room Haus,Heizung,Wohnzimmer
attr Soll_WZ sortby 1
attr Soll_WZ stateFormat {sprintf("%.0f", ReadingsVal($name,"TemperaturSoll",0))}
attr Soll_WZ webCmd Sollof
Raspberry Pi 3; 8xRelais; Aptodec Nano V3.0 Pro; FS1000a; RF-5V; Hama TS33C; 3x Brennerstuhl FunkSteckdosen; 9x Dooya funk Rollo; KWL Systemair VR400; Thermokon Modbusthermostat; diverse China Modbus Thermostate; 1-wire Bus; Telegram; QuickFhem; FhemNative; Firmata; Alexa ......

DeeSPe

Slider 5-25Grad in 1er Schritten geht:
slider:5,1,25

Ist es das was Du willst?

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

wthiess

#5
nein,
5=20,5
25=22,5
WIE OBERN BESCHRIEBEN

Das Thermostat arbeitet mit 10telGrad + ODER - VOM 20Grad

Viele Geräte im Profibereich arbeiten so.
Raspberry Pi 3; 8xRelais; Aptodec Nano V3.0 Pro; FS1000a; RF-5V; Hama TS33C; 3x Brennerstuhl FunkSteckdosen; 9x Dooya funk Rollo; KWL Systemair VR400; Thermokon Modbusthermostat; diverse China Modbus Thermostate; 1-wire Bus; Telegram; QuickFhem; FhemNative; Firmata; Alexa ......

DeeSPe

Zitat von: wthiess am 24 Oktober 2016, 20:37:35
nein,
5=20,5
25=22,5
WIE OBERN BESCHRIEBEN

Das Thermostat arbeitet mit 10telGrad + ODER - VOM 20Grad

Viele Geräte im Profibereich arbeiten so.

Dann brauchst Du doch bloß in 1er Schritte umstellen damit Du eine Auflösung von 0,1 Grad bekommst.
Also:
slider:-150,1,50

Oder habe ich es immer noch nicht richtig verstanden?

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

wthiess

Hier die Tabelle: Das Themostat versteht nur die linke Spalte. Die rechte soll aber dem Bediener angezeigt werden.
Ich habe mal mit 21 notify probiert. Aber das ist Käse. Im Forum habe ich unter https://forum.fhem.de/index.php?topic=52188.0 etwas ähnliches gefunden. Aber das kann ich auf meine Anforderung nicht übersetzten.

lg
Wolfgang

-150=5
-140=6
-130=7
-120=8
-110=9
-100=10
-90=11
-80=12
-70=13
-60=14
-50=15
-40=16
-30=17
-20=18
-10=19
0=20
10=21
20=22
30=23
40=24
50=25
Raspberry Pi 3; 8xRelais; Aptodec Nano V3.0 Pro; FS1000a; RF-5V; Hama TS33C; 3x Brennerstuhl FunkSteckdosen; 9x Dooya funk Rollo; KWL Systemair VR400; Thermokon Modbusthermostat; diverse China Modbus Thermostate; 1-wire Bus; Telegram; QuickFhem; FhemNative; Firmata; Alexa ......

DeeSPe

#8
Dann brauchst Du aber beide Richtungen.
Hier ein userReading um von der -150-50 Schreibweise auf die 5-25 Schreibweise zu kommen.
attr Soll_WZ userReadings realTemp:<-150-50-READING>.* {ReadingsNum($NAME,"<-150-50-READING>",0) / 10 + 20}

Auf das realTemp den Slider:
realTemp:slider,5,1,25

Und dann ein notify:
define n_Soll_WZ notify Soll_WZ:realTemp.* {fhem "set $NAME <-150-50-READING> ".($EVTPART1 - 20) * 10}

<-150-50-READING> ist noch gehen das eigene Reading welches die Werte -150 bis 50 anzeigt (bzw. setzt) auszutauschen.

So etwa?

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

wthiess

Läuft leider nicht. Hier der gesamte code. und Bild von der Darstellung

#Soll_WZ offset schreiben
define Soll_WZ ModbusAttr 2 5
attr Soll_WZ IODev VR400Mod
attr Soll_WZ dev-h-combine 5
attr Soll_WZ dev-h-defPoll 1
attr Soll_WZ group Heizung_Wohnzimmer
attr Soll_WZ obj-h260-reading TemperaturSoll
attr Soll_WZ obj-h523-reading realTemp
attr Soll_WZ obj-h523-set 1
attr Soll_WZ room Haus,Heizung,Wohnzimmer
attr Soll_WZ sortby 1
attr Soll_WZ stateFormat {sprintf("%.0f", ReadingsVal($name,"TemperaturSoll",0))}
attr Soll_WZ webCmd realTemp

attr Soll_WZ userReadings realTemp:-150-50-READING.* {ReadingsNum($name,"-150-50-READING",0) / 10 + 20}

attr Soll_WZ widgetOverride obj-h523-reading realTemp:slider,5,1,25

define n_Soll_WZ notify Soll_WZ:realTemp.* {fhem "set $NAME -150-50-READING ".($EVTPART1 - 20) * 10}


Raspberry Pi 3; 8xRelais; Aptodec Nano V3.0 Pro; FS1000a; RF-5V; Hama TS33C; 3x Brennerstuhl FunkSteckdosen; 9x Dooya funk Rollo; KWL Systemair VR400; Thermokon Modbusthermostat; diverse China Modbus Thermostate; 1-wire Bus; Telegram; QuickFhem; FhemNative; Firmata; Alexa ......

DeeSPe

Das -150-50-READING solltest Du doch mit Deinem eigenen Reading ersetzen!
Poste mal ein "list Soll_WZ".
Mit welchem set Befehl wird die Temp gesetzt und in welchem Format (-150-50 oder 5-20)?

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

wthiess

Internals:
   DEF        2 5
   DEST
   INTERVAL   5
   IODev      VR400Mod
   MODBUSID   2
   ModuleVersion 3.1.1 - 18.6.2016
   NAME       Soll_WZ
   NR         265
   PROTOCOL   RTU
   STATE      225
   TRIGGERTIME 1477340090.76733
   TRIGGERTIME_FMT 2016-10-24 22:14:50
   TYPE       ModbusAttr
   Readings:
     2016-10-24 21:58:57   Sollof          25
     2016-10-24 22:14:45   TemperaturSoll  225
     2016-10-24 22:14:45   realTemp        25
   Gotreadings:
     TemperaturSoll 225
     realTemp   25
   Helper:
     lrecv      1477340085.95788
     lsend      1477340085.9314
   Lastread:
     h260       1477340085.95862
     h523       1477340085.82998
Attributes:
   IODev      VR400Mod
   dev-h-combine 5
   dev-h-defPoll 1
   group      Heizung_Wohnzimmer
   obj-h260-reading TemperaturSoll
   obj-h523-reading realTemp
   obj-h523-set 1
   room       Haus,Heizung,Wohnzimmer
   sortby     1
   stateFormat {sprintf("%.0f", ReadingsVal($name,"TemperaturSoll",0))}
   userReadings realTemp:-150-50-READING.* {ReadingsNum($name,"-150-50-READING",0) / 10 + 20}
   userattr   IODev dev-h-combine dev-h-defPoll obj-h260-reading obj-h523-reading obj-h523-set sortby stateFormat userReadings webCmd widgetOverride
   webCmd     realTemp
   widgetOverride obj-h523-reading realTemp:slider,5,1,25
Raspberry Pi 3; 8xRelais; Aptodec Nano V3.0 Pro; FS1000a; RF-5V; Hama TS33C; 3x Brennerstuhl FunkSteckdosen; 9x Dooya funk Rollo; KWL Systemair VR400; Thermokon Modbusthermostat; diverse China Modbus Thermostate; 1-wire Bus; Telegram; QuickFhem; FhemNative; Firmata; Alexa ......

DeeSPe

Die Temp ist doch nicht 225, sondern 22,5 oder?
Das soll doch sicher so heißen:
attr Soll_WZ stateFormat {sprintf("%.0f", ReadingsNum($name,"TemperaturSoll",1) / 10)}

Und wie setzt Du nun die gewünschte Temp?

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

wthiess

Danke für deine Mühe.
Hier meine derzeitige Version. Leider wird bei z.B. 22 nur auf 22,2 Grad erhöht.

Im Eventmonitor bei Regler auf 16 erscheint
2016-10-24 22:37:54 ModbusAttr Soll_WZ realTemp 16
2016-10-24 22:37:55 ModbusAttr Soll_WZ TemperaturSoll: 216


#Soll_WZ offset schreiben
define Soll_WZ ModbusAttr 2 5
attr Soll_WZ IODev VR400Mod
attr Soll_WZ dev-h-combine 5
attr Soll_WZ dev-h-defPoll 1
attr Soll_WZ group Heizung_Wohnzimmer
attr Soll_WZ obj-h260-reading TemperaturSoll
attr Soll_WZ obj-h523-reading realTemp
attr Soll_WZ obj-h523-set 1
attr Soll_WZ room Haus,Heizung,Wohnzimmer
attr Soll_WZ sortby 1
#attr Soll_WZ stateFormat {sprintf("%.0f", ReadingsVal($name,"TemperaturSoll",0))}
attr Soll_WZ stateFormat {sprintf("%.0f", ReadingsNum($name,"TemperaturSoll",1) / 10)}
attr Soll_WZ webCmd realTemp
attr Soll_WZ userReadings realTemp:obj-h523-reading.* {ReadingsNum($NAME,"<-150-50-READING>",0) / 10 + 20}
attr Soll_WZ widgetOverride reading realTemp:slider,5,1,25
define n_Soll_WZ notify Soll_WZ:realTemp.* {fhem "set $NAME obj-h523-reading ".($EVTPART1 - 20) * 10}
Raspberry Pi 3; 8xRelais; Aptodec Nano V3.0 Pro; FS1000a; RF-5V; Hama TS33C; 3x Brennerstuhl FunkSteckdosen; 9x Dooya funk Rollo; KWL Systemair VR400; Thermokon Modbusthermostat; diverse China Modbus Thermostate; 1-wire Bus; Telegram; QuickFhem; FhemNative; Firmata; Alexa ......

DeeSPe

Verrate doch endlich mal mit welchem set Kommando Du in FHEM die Temp setzt und in welchem Format (-150-50 oder 5-20), sonst kann (und will) ich Dir nicht mehr helfen !!!!!!!

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe