FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Alveole am 13 Januar 2015, 23:01:00

Titel: Slider - Positiv und Negativ in einem
Beitrag von: Alveole am 13 Januar 2015, 23:01:00
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!
Titel: Antw:Slider - Positiv und Negativ in einem
Beitrag von: wthiess am 24 Oktober 2016, 11:48:24
Hallo!
habe das selbe Problem. Hast du schon eine Lösung?

Lg
Wolfgang
Titel: Antw:Slider - Positiv und Negativ in einem
Beitrag von: DeeSPe am 24 Oktober 2016, 11:54:17
Ü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
Titel: Antw:Slider - Positiv und Negativ in einem
Beitrag von: wthiess am 24 Oktober 2016, 20:23:02
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
Titel: Antw:Slider - Positiv und Negativ in einem
Beitrag von: DeeSPe am 24 Oktober 2016, 20:27:04
Slider 5-25Grad in 1er Schritten geht:
slider:5,1,25

Ist es das was Du willst?

Gruß
Dan
Titel: Antw:Slider - Positiv und Negativ in einem
Beitrag 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.
Titel: Antw:Slider - Positiv und Negativ in einem
Beitrag von: DeeSPe am 24 Oktober 2016, 20:47:19
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
Titel: Antw:Slider - Positiv und Negativ in einem
Beitrag von: wthiess am 24 Oktober 2016, 21:18:52
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 (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
Titel: Antw:Slider - Positiv und Negativ in einem
Beitrag von: DeeSPe am 24 Oktober 2016, 21:38:58
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
Titel: Antw:Slider - Positiv und Negativ in einem
Beitrag von: wthiess am 24 Oktober 2016, 22:10:48
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}


Titel: Antw:Slider - Positiv und Negativ in einem
Beitrag von: DeeSPe am 24 Oktober 2016, 22:13:52
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
Titel: Antw:Slider - Positiv und Negativ in einem
Beitrag von: wthiess am 24 Oktober 2016, 22:15:10
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
Titel: Antw:Slider - Positiv und Negativ in einem
Beitrag von: DeeSPe am 24 Oktober 2016, 22:29:52
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
Titel: Antw:Slider - Positiv und Negativ in einem
Beitrag von: wthiess am 24 Oktober 2016, 22:39:04
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}
Titel: Antw:Slider - Positiv und Negativ in einem
Beitrag von: DeeSPe am 24 Oktober 2016, 22:41:28
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
Titel: Antw:Slider - Positiv und Negativ in einem
Beitrag von: wthiess am 24 Oktober 2016, 22:48:44
set Soll_WZ Sollof 10

Bei mir heist es in der originalconfig "Sollof" nicht "realTemp"

set Soll_WZ Sollof -120  = 8Grad
Titel: Antw:Slider - Positiv und Negativ in einem
Beitrag von: DeeSPe am 24 Oktober 2016, 23:11:06
Okay, mach mal:
attr Soll_WZ stateFormat {sprintf("%.1f", ReadingsNum($name,"TemperaturSoll",1) / 10)}
Damit auch die Kommastelle angezeigt wird.

Dann:
attr Soll_WZ userReadings realTemp:Sollof.* {int(ReadingsNum($NAME,"Sollof",0) / 10 + 20)}

Dann:
attr Soll_WZ webCmd realTemp

Dann:
attr Soll_WZ widgetOverride realTemp:slider,5,0.1,25,1

Dann:
defmod n_Soll_WZ_realTemp notify Soll_WZ:realTemp.* {fhem "set $NAME Sollof ". int(($EVTPART1 - 20) * 10)}

Ich denke das dürfte es sein!
Zumindest funktioniert das in meinem dummy Setup.

Gruß
Dan
Titel: Antw:Slider - Positiv und Negativ in einem
Beitrag von: wthiess am 24 Oktober 2016, 23:16:19
Danke vorerst. Werde Morgen weitermachen. Berichte Morgen Abend.

Lg
Wolfgang
Titel: Antw:Slider - Positiv und Negativ in einem
Beitrag von: wthiess am 24 Oktober 2016, 23:43:52
Leider jetzt geht gar nichts. Es erschein kein Slider

#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 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("%.1f", ReadingsNum($name,"TemperaturSoll",1) / 10)}
attr Soll_WZ userReadings realTemp:Sollof.* {int(ReadingsNum($NAME,"Sollof",0) / 10 + 20)}
attr Soll_WZ webCmd realTemp
attr Soll_WZ widgetOverride realTemp:slider,5,0.1,25,1

define n_Soll_WZ_realTemp notify Soll_WZ:realTemp.* {fhem "set $NAME Sollof ". int(($EVTPART1 - 20) * 10)}


Titel: Antw:Slider - Positiv und Negativ in einem
Beitrag von: DeeSPe am 25 Oktober 2016, 02:18:27
Ich glaube langsam das geht ohne (Zwischen)-dummy nicht wirklich!

Schau mal, das ist mein Testaufbau der genau so funktioniert wie Du willst. Klappt in beiden Richtungen!
Wenn Du desired setzt wird realTemp verändert und wenn Du realTemp veränderst so wird desired verändert.
Kannst ja dann mit dem dummy entsprechend Soll_WZ schalten um andersrum (2x notify).

Der dummy:
define testobjekt dummy
attr testobjekt alias Solltemperatur
attr testobjekt event-on-change-reading .*
attr testobjekt readingList desired realTemp
attr testobjekt setList desired realTemp:slider,5,0.1,25,1
attr testobjekt stateFormat desired
attr testobjekt userReadings realTemp:desired.* {sprintf("%.1f",ReadingsNum($NAME,"desired",0) / 10 + 20)}
attr testobjekt webCmd realTemp


Das notify:
define n_testobjekt_realTemp notify testobjekt:realTemp.* {fhem "setreading $NAME desired ". int((sprintf("%.1f",$EVTPART1) - 20) * 10)}

Gruß
Dan

EDIT: Dateianhang entfernt.
Titel: Antw:Slider - Positiv und Negativ in einem
Beitrag von: wthiess am 25 Oktober 2016, 21:04:16
Danke Dan!

Die Richtung stimmt. Allerdings habe ich mir den beiden Notify noch Probleme. Habe unten bei den beiden Notify ????? eingefügt. Da weis ich nicht weiter. Bei fixen Werten funktioniert es. Ich weis nicht wie ich eine Variable übergebe.
Bitte nochmal Hilfe.
Vielen Dank nochmals.

lg
Wolfgang


#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 widgetOverride
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 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", ReadingsNum($name,"TemperaturSoll",1) / 10)}
attr Soll_WZ stateFormat {sprintf("%.0f", ReadingsVal($name,"TemperaturSoll",0))}
attr Soll_WZ webCmd Sollof
attr Soll_WZ widgetOverride obj-h523-reading Sollof:slider,-150,10,50


define Soll_WZd dummy
attr Soll_WZd alias Solltemperatur
attr Soll_WZd event-on-change-reading .*
attr Soll_WZd group Heizung_Test
attr Soll_WZd readingList desired realTemp
attr Soll_WZd room Haus,Heizung,Wohnzimmer
attr Soll_WZd setList desired realTemp:slider,5,0.5,25,1
attr Soll_WZd stateFormat desired
attr Soll_WZd userReadings realTemp:desired.* {sprintf("%.1f",ReadingsNum($NAME,"desired",0) / 10 + 20)}
attr Soll_WZd webCmd realTemp

define Soll_WZd1 notify Soll_WZd:realTemp.* {fhem "setreading $NAME desired ". int((sprintf("%.1f",$EVTPART1) - 20) * 10)}
attr Soll_WZd1 group Heizung_Test
attr Soll_WZd1 room Heizung

define Soll_WZd2 notify Soll_WZd:realTemp.* set Soll_WZ Sollof?????
attr Soll_WZd2 group Heizung_Test
attr Soll_WZd2 room Heizung

define Soll_WZd3 notify Soll_WZ:Sollof.* set Soll_WZd realTemp?????
attr Soll_WZd3 group Heizung_Test
attr Soll_WZd3 room Heizung
Titel: Antw:Slider - Positiv und Negativ in einem
Beitrag von: DeeSPe am 25 Oktober 2016, 21:10:34
define Soll_WZd2 notify Soll_WZd:desired.* set Soll_WZ Sollof $EVTPART1

define Soll_WZd3 notify Soll_WZ:Sollof.* set Soll_WZd desired $EVTPART1

Ich hoffe die beiden notify laufen jetzt nicht gegeneinander! 8)
Probier mal ob es so geht! Eigentlich sollte es.

Gruß
Dan
Titel: Antw:Slider - Positiv und Negativ in einem
Beitrag von: wthiess am 25 Oktober 2016, 21:27:27
Danke Dan!

Im Prinzip schauts gut aus. Allerdings wenn ich die Temperatur unter 20Grad stelle springt der dummy auf 5Grad und es kommt 65386 stat -150/5 Es scheint als funktionieren nur Werte ab 20Grad ordnungsgemäss. Warum benötige ich desired?

desired 65496 2016-10-25 21:25:56
realTemp 6569.6 2016-10-25 21:25:56

lg
Wolfgang


Titel: Antw:Slider - Positiv und Negativ in einem
Beitrag von: DeeSPe am 25 Oktober 2016, 21:46:46
Mit meinem dummy Setup braucht man das desired und das userReading halt für die Berechnung.
Würde in Deinem Setup auch ohne das funktionieren da Du ja 2x notify benutzt!
Insofern hast Du recht und desired wird gar nicht mehr benötigt.

Dann wäre auch sowas möglich:
define Soll_WZd2 notify Soll_WZd:realTemp.*{fhem "set Soll_WZ Sollof ".(sprintf("%.1f",$EVTPART1) - 20) * 10}

define Soll_WZd3 notify Soll_WZ:Sollof.* {fhem "setreading Soll_WZd realTemp ".(sprintf("%.1f",$EVTPART1 / 10 + 20))}

Das notify Soll_WZd1 kannst Du löschen, es wird nicht mehr benötigt.
Auch kannst Du aus dem dummy alles was mit desired zu tun hat rauslöschen (z.B. userReadings).

Klappt das so?

Gruß
Dan

EDIT: Sorry, die Berechnung war auf den dummys genau verkehrt herum zugewiesen. Habs geändert.
EDIT2: Das int im Soll_WZd2 war auch noch zu viel.
Titel: Antw:Slider - Positiv und Negativ in einem
Beitrag von: wthiess am 25 Oktober 2016, 22:01:18
Hallo Dan!

Leider verstehe ich nicht alles. Ich bin nun total durcheinander.
Ich bin kein Programmierer und nicht sehr hell.
Hier meine aktuelle Version. Das Problem das ich habe ist der Slider im Soll_WZ der immer bei unter 20Grad auf -150 springt.
Keine Ahnung was ich löschen soll und was nicht.


#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 widgetOverride
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 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", ReadingsNum($name,"TemperaturSoll",1) / 10)}
attr Soll_WZ webCmd Sollof
attr Soll_WZ widgetOverride obj-h523-reading Sollof:slider,-150,5,50


define Soll_WZd dummy
attr Soll_WZd alias Solltemperatur
attr Soll_WZd event-on-change-reading .*
attr Soll_WZd group Heizung_Test
attr Soll_WZd readingList desired realTemp
attr Soll_WZd room Haus,Heizung,Wohnzimmer
attr Soll_WZd setList desired realTemp:slider,5,0.5,25,1
attr Soll_WZd stateFormat desired
attr Soll_WZd userReadings realTemp:desired.* {sprintf("%.1f",ReadingsNum($NAME,"desired",0) / 10 + 20)}
attr Soll_WZd webCmd realTemp

define Soll_WZd1 notify Soll_WZd:realTemp.* {fhem "setreading $NAME desired ". int((sprintf("%.1f",$EVTPART1) - 20) * 10)}

define Soll_WZd2 notify Soll_WZd:desired.* set Soll_WZ Sollof $EVTPART1
attr Soll_WZd2 group Heizung_Test
attr Soll_WZd2 room Heizung

define Soll_WZd3 notify Soll_WZ:Sollof.* set Soll_WZd desired $EVTPART1
attr Soll_WZd3 group Heizung_Test
attr Soll_WZd3 room Heizung
Titel: Antw:Slider - Positiv und Negativ in einem
Beitrag von: DeeSPe am 25 Oktober 2016, 22:15:06
Da Du ja offensichtlich manuell in der fhem.cfg "rumpfuschst"!  :o
Mache das bitte einfach alles über die FHEM Eingabezeile und dann die Details eines Device. Und dann vergiss die fhem.cfg!!!
So kann man keinen Murks mir der fhem.cfg anstellen und und und...

Das:
Zitat von: wthiess am 25 Oktober 2016, 22:01:18
#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 widgetOverride
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 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", ReadingsNum($name,"TemperaturSoll",1) / 10)}
attr Soll_WZ webCmd Sollof
attr Soll_WZ widgetOverride obj-h523-reading Sollof:slider,-150,5,50


define Soll_WZd dummy
attr Soll_WZd alias Solltemperatur
attr Soll_WZd event-on-change-reading .*
attr Soll_WZd group Heizung_Test
attr Soll_WZd readingList desired realTemp
attr Soll_WZd room Haus,Heizung,Wohnzimmer
attr Soll_WZd setList desired realTemp:slider,5,0.5,25,1
attr Soll_WZd stateFormat desired
attr Soll_WZd userReadings realTemp:desired.* {sprintf("%.1f",ReadingsNum($NAME,"desired",0) / 10 + 20)}
attr Soll_WZd webCmd realTemp

define Soll_WZd1 notify Soll_WZd:realTemp.* {fhem "setreading $NAME desired ". int((sprintf("%.1f",$EVTPART1) - 20) * 10)}

define Soll_WZd2 notify Soll_WZd:desired.* set Soll_WZ Sollof $EVTPART1
attr Soll_WZd2 group Heizung_Test
attr Soll_WZd2 room Heizung

define Soll_WZd3 notify Soll_WZ:Sollof.* set Soll_WZd desired $EVTPART1
attr Soll_WZd3 group Heizung_Test
attr Soll_WZd3 room Heizung


Ändern in das:
#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 widgetOverride
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 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("%.1f", ReadingsNum($name,"TemperaturSoll",1))}
attr Soll_WZ webCmd Sollof
attr Soll_WZ widgetOverride obj-h523-reading Sollof:slider,-150,5,50


define Soll_WZd dummy
attr Soll_WZd alias Solltemperatur
attr Soll_WZd event-on-change-reading .*
attr Soll_WZd group Heizung_Test
attr Soll_WZd readingList realTemp
attr Soll_WZd room Haus,Heizung,Wohnzimmer
attr Soll_WZd setList realTemp:slider,5,0.5,25,1
attr Soll_WZd stateFormat realTemp
attr Soll_WZd webCmd realTemp

define Soll_WZd2 notify Soll_WZd:realTemp.*{fhem "set Soll_WZ Sollof ".(sprintf("%.1f",$EVTPART1) - 20) * 10}
attr Soll_WZd2 group Heizung_Test
attr Soll_WZd2 room Heizung

define Soll_WZd3 notify Soll_WZ:Sollof.* {fhem "setreading Soll_WZd realTemp ".(sprintf("%.1f",$EVTPART1 / 10 + 20))}
attr Soll_WZd3 group Heizung_Test
attr Soll_WZd3 room Heizung


Gruß
Dan

P.S. Pssst... Ich bin auch gar kein Programmierer!  ???
Hab mir das alles auch nur durch FHEM angenommen.
Titel: Antw:Slider - Positiv und Negativ in einem
Beitrag von: wthiess am 25 Oktober 2016, 22:22:56
Hallo Dan!

Leider geht nun folgendes nicht.

Der Soll_WZ Slider springt nach wie vor unter 20Grad auf 5Grad zurück.
Der Dummy Solltemperaturslider steuert nicht den Soll_WZ Slider.

lg
Wolfgang
Titel: Antw:Slider - Positiv und Negativ in einem
Beitrag von: DeeSPe am 25 Oktober 2016, 22:30:16
Zitat von: wthiess am 25 Oktober 2016, 22:22:56
Der Soll_WZ Slider springt nach wie vor unter 20Grad auf 5Grad zurück.
Der Dummy Solltemperaturslider steuert nicht den Soll_WZ Slider.

Lösche doch den Slider einfach aus Soll_WZ!
Wozu brauchst Du den noch wenn Du jetzt über den dummy den Wert in der richtigen Temperatur setzen kannst.

Funktioniert denn aber durch den neuen Slider (dummy) das Setzen von Sollof in Soll_WZ?

Gruß
Dan
Titel: Antw:Slider - Positiv und Negativ in einem
Beitrag von: wthiess am 25 Oktober 2016, 22:34:23
nein eben nicht, und er springt immer wieder zurück auf den wert den der original hatte.
Titel: Antw:Slider - Positiv und Negativ in einem
Beitrag von: DeeSPe am 25 Oktober 2016, 22:36:43
Zitat von: wthiess am 25 Oktober 2016, 22:34:23
nein eben nicht, und er springt immer wieder zurück auf den wert den der original hatte.

Hast Du auch sicher das notify Soll_WZd1 gelöscht?

Gruß
Dan
Titel: Antw:Slider - Positiv und Negativ in einem
Beitrag von: wthiess am 25 Oktober 2016, 22:40:19
ja ich hab ja deine config 1:1 kopiert
Titel: Antw:Slider - Positiv und Negativ in einem
Beitrag von: DeeSPe am 25 Oktober 2016, 23:21:28
Ich kann Dir leider nichts Perfektes auf Dein System zuschneidern.
Ich kann Dir nur Tipps geben wie man es macht!
Ob das dann genau so richtig ist bei Deiner Gerätekonstellation und Readings kannst nur Du wissen!

Habe hier wieder mal eine dummy Konfig die Deinen Namen entspricht und hier funktioniert alles so wie es soll!

defmod Soll_WZ dummy
attr Soll_WZ readingList Sollof
attr Soll_WZ room TEST
attr Soll_WZ setList Sollof:slider,-150,5,50
attr Soll_WZ stateFormat {Value("Soll_WZd")}
attr Soll_WZ webCmd Sollof

defmod Soll_WZd dummy
attr Soll_WZd event-on-change-reading .*
attr Soll_WZd readingList realTemp
attr Soll_WZd room TEST
attr Soll_WZd setList realTemp:slider,5,0.5,25,1
attr Soll_WZd stateFormat realTemp °C
attr Soll_WZd webCmd realTemp

defmod Soll_WZd2 notify Soll_WZd:realTemp.* {fhem "set Soll_WZ Sollof ".(sprintf("%.1f",$EVTPART1) - 20) * 10}
attr Soll_WZd2 room TEST

defmod Soll_WZd3 notify Soll_WZ:Sollof.* {fhem "set Soll_WZd realTemp ".(sprintf("%.1f",$EVTPART1 / 10 + 20))}
attr Soll_WZd3 room TEST


Gruß
Dan

EDIT: Dateianhang entfernt.
Titel: Antw:Slider - Positiv und Negativ in einem
Beitrag von: wthiess am 25 Oktober 2016, 23:35:03
Danke Dan nochmals für die Mühe. Ich denke das dieses Superthermostat das Problem macht. Ich werde das Ding mal Reseten. Sollte ich irgendwann erfolg haben werde ich hier berichten.


Lg Wolfgang
Titel: Antw:Slider - Positiv und Negativ in einem
Beitrag von: DeeSPe am 26 Oktober 2016, 14:13:53
Ich habe nochmal was Anderes probiert!
In meinem dummy Setup funktioniert das auch wie gewünscht.
Statt mit zwei notify(s) habe ich nun nur 1x notify und 1x cmdalias.
Vielleicht klappt das besser mit Deinem Setup!?

define Soll_WZ dummy
attr Soll_WZ readingList Sollof
attr Soll_WZ room TEST
attr Soll_WZ setList Sollof:slider,-150,5,50
attr Soll_WZ stateFormat {sprintf("%.1f",ReadingsVal("Soll_WZ","Sollof",100)/10+20)." °C"}
attr Soll_WZ webCmd Sollof


define Soll_WZd dummy
attr Soll_WZd readingList realTemp
attr Soll_WZd room TEST
attr Soll_WZd setList realTemp:slider,5,0.5,25,1
attr Soll_WZd stateFormat realTemp °C
attr Soll_WZd webCmd realTemp


define Soll_WZ1 notify Soll_WZ:Sollof.* {fhem "setreading Soll_WZd realTemp ".sprintf("%.1f",$EVTPART1/10+20)}
attr Soll_WZ1 room TEST


defmod Soll_WZd_cmdalias cmdalias set Soll_WZd realTemp.* AS {fhem "set Soll_WZ Sollof ".sprintf("%.1f",$EVTPART2-20)*10}
attr Soll_WZd_cmdalias room TEST


Gruß
Dan
Titel: Antw:Slider - Positiv und Negativ in einem
Beitrag von: wthiess am 26 Oktober 2016, 21:30:42
Danke Dan für Deine Mühe!

Hab jetzt folgendes geschafft: 10Grad Frostschutz oder 20-25 Grad in 0,5 Schritten.
Jeder Wert unter 20Grad funktioniert zwar aber der Slider springt sofort auf den niedrigsten Wert. Damit kann ich leben. Vielleicht sind meine Fhem Kenntnisse in Zukunft besser. Ich werde doch mal etwas Programmieren lernen müssen.

lg
Wolfgang
Titel: Antw:Slider - Positiv und Negativ in einem
Beitrag von: wthiess am 17 November 2016, 20:43:37
Endlich geschafft!

Hier meine funktionierende Lösung: dev-h-defUnpack war das Problem. Das ist eine Sache vom Modul "ModbusAttr"

Danke nochmal
lg Wolfgang

#modbus thermostat

#ist Temperatur
define Temp_WZ ModbusAttr 2 30
attr Temp_WZ userattr IODev dev-h-combine dev-h-defPoll [b]dev-h-defUnpack[/b] obj-TempVR-showget obj-h258-expr obj-h258-reading obj-h258-showget stateFormat
attr Temp_WZ IODev VR400Mod
attr Temp_WZ dev-h-combine 5
attr Temp_WZ dev-h-defPoll 1
attr Temp_WZ group 1_Heizung_Wohnzimmer,Sensoren
attr Temp_WZ obj-h258-expr $val/10
attr Temp_WZ obj-h258-reading Temperatur
attr Temp_WZ obj-h258-showget 1
attr Temp_WZ room Haus,Heizung,Wohnzimmer
attr Temp_WZ stateFormat {sprintf("%.1f Grad", ReadingsVal($name,"Temperatur",0))}

#Heizung Wohnzimmer
define HZ_WZ RPI_GPIO 11
attr HZ_WZ active_low yes
attr HZ_WZ direction output
attr HZ_WZ group 1_Heizung_Wohnzimmer
attr HZ_WZ room Haus,Heizung,Wohnzimmer

define Temp_WZ1 THRESHOLD Temp_WZ:Temperatur:0.5:Temp_WZ_S:TemperaturSoll HZ_WZ|set @  off|set @ on
attr Temp_WZ1 group 1_Heizung_Wohnzimmer
attr Temp_WZ1 number_format %.1f
attr Temp_WZ1 room Schalten
attr Temp_WZ1 state_format _m _dv

#soll Temperatur
define Temp_WZ_S ModbusAttr 2 5
attr Temp_WZ_S userattr IODev dev-h-combine dev-h-defPoll dev-h-defUnpack obj-h260-expr obj-h260-reading obj-h260-showget stateFormat
attr Temp_WZ_S IODev VR400Mod
attr Temp_WZ_S dev-h-combine 5
attr Temp_WZ_S dev-h-defPoll 1
attr Temp_WZ_S group 1_Heizung_Wohnzimmer
attr Temp_WZ_S obj-h260-expr $val/10
attr Temp_WZ_S obj-h260-reading TemperaturSoll
attr Temp_WZ_S obj-h260-showget 1
attr Temp_WZ_S room Haus,Heizung,Wohnzimmer
attr Temp_WZ_S stateFormat {sprintf("%.1f Grad", ReadingsVal($name,"TemperaturSoll",0))}



#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-reading obj-h523-set sortby stateFormat webCmd widgetOverride
attr Soll_WZ IODev VR400Mod
attr Soll_WZ dev-h-combine 5
attr Soll_WZ dev-h-defPoll 1
attr Soll_WZ dev-h-defUnpack s>
attr Soll_WZ group 1_Heizung_Wohnzimmer
attr Soll_WZ obj-h260-reading TemperaturSoll
attr Soll_WZ obj-h523-reading Sollof
attr Soll_WZ obj-h523-set 1
attr Soll_WZ room Unsorted
attr Soll_WZ sortby 1
attr Soll_WZ stateFormat {sprintf("%.0f", ReadingsNum($name,"TemperaturSoll",1) / 10)}
attr Soll_WZ webCmd Sollof
attr Soll_WZ widgetOverride obj-h523-reading Sollof:slider,-100,5,50

#attr Soll_WZ stateFormat {sprintf("%.0f", ReadingsVal($name,"TemperaturSoll",0))}

define Soll_WZd dummy
attr Soll_WZd group 1_Heizung_Wohnzimmer
attr Soll_WZd readingList realTemp
attr Soll_WZd room Haus,Heizung,Wohnzimmer
attr Soll_WZd setList realTemp:slider,5,0.5,25,1
attr Soll_WZd stateFormat realTemp °C
attr Soll_WZd webCmd realTemp

define Soll_WZ1 notify Soll_WZ:Sollof.* {fhem "setreading Soll_WZd realTemp ".sprintf("%.1f",$EVTPART1/10+20)}
attr Soll_WZ1 group 1_Heizung_Wohnzimmer
attr Soll_WZ1 room Unsorted

define Soll_WZd_cmdalias cmdalias set Soll_WZd realTemp.* AS {fhem "set Soll_WZ Sollof ".sprintf("%.1f",$EVTPART2-20)*10}
attr Soll_WZd_cmdalias group 1_Heizung_Wohnzimmer
attr Soll_WZd_cmdalias room Unsorted

define FileLog_Temp_WZ FileLog ./log/Temp_WZ-%Y.log Temp_WZ:.*
attr FileLog_Temp_WZ logtype text
attr FileLog_Temp_WZ room Unsorted