Slider - Positiv und Negativ in einem

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

Vorheriges Thema - Nächstes Thema

wthiess

#15
set Soll_WZ Sollof 10

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

set Soll_WZ Sollof -120  = 8Grad
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

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
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 vorerst. Werde Morgen weitermachen. Berichte Morgen Abend.

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 ......

wthiess

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)}


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

#19
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.
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 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
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

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


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

#23
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.
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

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

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.
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

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

nein eben nicht, und er springt immer wieder zurück auf den wert den der original hatte.
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 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
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