Hauptmenü

Heizungs Slider

Begonnen von Charity, 03 Oktober 2013, 13:35:18

Vorheriges Thema - Nächstes Thema

Charity

Hallo,

nachdem ich nun mehrere FHT80b in Verwendung habe, wollte ich auf einer Informationsseite für alle FHT80b einen Slider zur Verfügung stellen mit dem ich die desired-temp einstellen kann. Per Slider möchte ich die Temperatur zwischen 10 - 30°C regeln können.

Das zu steuerende Device ist bereits definiert und heisst SZ_Heizung.


## Heizung
define SZ_Heizung FHT XXXX
attr SZ_Heizung alias Schlafzimmer Heizung
attr SZ_Heizung fm_type temperature,desiredtemp,tempbutton,window,actuators
attr SZ_Heizung icon hc_wht_regler
attr SZ_Heizung model fht80b
attr SZ_Heizung retrycount 3
attr SZ_Heizung room 03 Schlafzimmer


Folgendes habe ich bereits :


#### Dummy Slider für Heizungen
define dy_SZ_Heizung_Slider dummy
attr dy_SZ_Heizung_Slider alias Heizung Schlafzimmer Temp
attr dy_SZ_Heizung_Slider webCmd dim
attr dy_SZ_Heizung_Slider setList dim:slider,10,0.5,30
attr dy_SZ_Heizung_Slider group Heizungsregelung
attr dy_SZ_Heizung_Slider sortby 01
attr dy_SZ_Heizung_Slider room 00 Information


Das Problem mit diesem Slider ist, dass der Anfangswert bei 0 ist und somit der Regeler ausserhalb der Spezifikation für den Slider.

Wie bekomme ich es hin, dass
1. ich die aktuelle desired-temp von SZ_Heizung auslesen kann und die als Startwert für den Slider Dummy dy_SZ_Heizung_Slider vorgebe.
2. ich den DIM Wert des Sliders dann als desired-temp setzen kann (kann ich das über ein notify machen und wenn ja wie)
?

Danke für eure Unterstützung

jody

Hey Charity,

zu 1:
define SetzSliderNotify notify SZ_Heizung:* {\
my $timerwert = ReadingsVal("SZ_Heizung","ReadingName","on");;\
fhem ("set dy_SZ_Heizung_Slider $timerwert");;\
}


zu 2:
define SetzDesiredTemp notify dy_SZ_Heizung_Slider:* {\
my $sliderwert = ReadingsVal("dy_SZ_Heizung_Slider","state","on");;\
fhem ("set SZ_Heizung $sliderwert");;\
}


Hier würde ich nicht "dim" sondern "state" verwenden

attr dy_SZ_Heizung_Slider webCmd state
attr dy_SZ_Heizung_Slider setList state:slider,10,0.5,30


Alles ungetestet.

Alle Angaben ohne Gewähr.

Gruß jody

Cubietruck
CUL SlowRF
CUL Homematic
ZWave

Charity

Super, danke.

Das werd ich heute abend gleich ausprobieren.

Charity

Hi Danke nochmal, das hat super funktioniert.

Charity

Ok, die Darstellung hat zwar funktioniert und auch das setzen der Temperatur.

Doch die notifies gehen etwas durch :-(

Ich weiss nicht warum, aber die Slider dürften ständig senden und damit wird innerhalb einer Sekunde mehrfach die Temperatur der Heizung ausgelesen, in den Slider geschrieben und damit dann auch wieder die Temperatur an die Heizung geschickt. Wodurch ich über die 1% drüber bin und die Heizung keine Einstellung mehr annimmt.

Wie kann ich diesen Wildwuchs auf tatsächliche Änderungen und nicht permanent Änderungen umstellen ?

justme1968

vermutlich in dem du in 1. den slider nur dann aktualisierst wenn der neue wert ungleich dem aktuellen slider wert ist. also etwa so:define SetzSliderNotify notify SZ_Heizung:* {\
my $timerwert = ReadingsVal("SZ_Heizung","ReadingName","on");;\
fhem ("set dy_SZ_Heizung_Slider $timerwert") if( $timerwert != Value("dy_SZ_Heizung_Slider");;\
}

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Zrrronggg!

Zustätzlich das attribute "lazy" für die FHTs benutzen.
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

linuxq

Hallo,

ich will den Slider verwenden, um den Sollwert meiner tado.com Regelung zu setzen. Nun habe ich folgende Probleme:

1. Ich bekomme nur Ganzzahlwerte als $sliderwert. Wie kann ich zumindest 0.5 Grad-Schritte bekommen.

2. Bei Änderung kann den Sollwert ab tado.com senden, indem ich eine URL aufrufe:
"https://my.tado.com/mobile/1.3/updateThermostatSettings?&username=meinusername&password=meinpasswordhash&homeTemp=21.0"
Wie kann ich das umsetzen?

#### Dummy Slider für Heizungen
define dy_SZ_Heizung_Slider dummy
attr dy_SZ_Heizung_Slider alias Heizung Solltemperatur
attr dy_SZ_Heizung_Slider webCmd state
attr dy_SZ_Heizung_Slider setList state:slider,15,0.5,23
attr dy_SZ_Heizung_Slider group Heizungsregelung
attr dy_SZ_Heizung_Slider sortby 01
attr dy_SZ_Heizung_Slider room Heizung

define SetzSliderNotify notify tado_temp:* {\
my $timerwert = ReadingsVal("tado_temp","setPointTemp","on");;\
fhem ("set dy_SZ_Heizung_Slider $timerwert");;\
}

define SetzDesiredTemp notify dy_SZ_Heizung_Slider:* {\
my $sliderwert = ReadingsVal("dy_SZ_Heizung_Slider","state","on");;\
{ system("/usr/sbin/pebblesend2 -n Tado_geaendert -m $sliderwert") } ;;\
}


So sehen meine Setting aus momentan. Und den (leider ganzzahligen) Wert des Sliders, bekomme ich brav auf meiner Pebble angezeigt (als Test, ob es geht)

Gruß und Danke

LinuxQ

Matfhem

Für alle die Homematic Heizungssteuerungselemente verwenden passt diese Anleitung nicht ganz. Da ich an keiner Stelle eine funktionierende gefunden habe und vielleicht es andere auch interessieren könnte:

1.   Schritt – Einen Dummy-Slider anlegen:

define Heizung_Bad_Slider dummy

2.   Schritt: den Dummy konfigurieren:

attr Heizung_Bad_Slider webCmd state
attr Heizung_Bad_Slider setList state:slider,5.0,0.5,30.0

3. Schritt – erstes Notify anlegen:

Ich steuere das Thermostat und dort den Kanal ,,Climate" (tem_feuchte_Bad_Climate) an und nicht die Heizung selbst (geht natürlich auch). Wichtig sind die Absätze (später im DEF des Notifys nach dem Muster unten ändern) und das für Homematic wichtige "desired-temp" nicht vergessen:

define Heizung_Bad_SliderNotify notify Heizung_Bad_Slider:* {
my $sliderwert =
ReadingsVal("Heizung_Bad_Slider","state","on");
fhem ("set temp_feuchte_Bad_Climate desired-temp $sliderwert");
}


4. Schritt – zweites Notify anlegen:

define Heizung_Bad_Slider2Notify notify Heizung_Bad_Slider:* {
my $timerwert =
ReadingsVal("Heizung_Bad_Slider","ReadingName","on");
fhem ("set temp_feuchte_Bad_Climate desired-temp $timerwert") if( $timerwert != Value("Heizung_Bad_Slider");
}

Problem: Der Slider kann nicht auf 0,5er Werte gestellt werden. Nur ganze Werte werden eingeblendet und auch an das Thermostat/die Heizung gesendet.

thi69

Ich hatte das gleiche Problem.

Hier die Lösung für die Nachkommastelle : state:slider,5.0,0.5,30.0,1

Leinad

#10
Super, danke für die Info!

Noch eine "Anfängerfrage"... ähm... wofür ist jetzt nochmal das zweite Notify? Beide reagieren doch auf das gleiche Ereignis, den "Slider"?

Müsste nicht einer auf temp_feuchte_Bad_Climate reagieren?

tomspatz

Ich würde gerne hier meinen Senf dazu packen.
Der Slider an sich ist ja OK, diesen habe ich bei meinen Z-Wave Ventilen in Funktion.
Doch bekomme ich nicht hin das der Slider den aktuellen Wert anzeigt :(.

Nochmal, Slider Funktion OK, die eingestellte Temperatur (z.B.25) wird so übertragen und das Ventil Regelt nach.
Zeitgesteuert wird die Heizung aber dann heruntergefahren auf 17, der Slider zeigt aber immer noch 25 an.

define Heizung.Buero.Slider dummy
attr Heizung.Buero.Slider setList state:slider,4.0,0.5,28.0
attr Heizung.Buero.Slider webCmd state


define Heizung.Buero.Slider.Notify notify Heizung.Buero.Slider:* {\
my $sliderwert = \
ReadingsVal("Heizung.Buero.Slider","state","on");; \
fhem ("set Heizung.Buero setpointHeating $sliderwert");;\
}


sloth

#12
Diese Slider waren bei mir über ein Jahr im Einsatz. Dann habe ich mein fhem vom raspberry (immer häufigere korrupte sd-Karte) auf meinen qnap umgezogen. In dem Zusammenhang habe ich die neueste Version installiert. Ich muss gestehen, dass ich zuvor sehr faul war, was die updates anging. Beim Versuch meine alte fhem.cfg zu übertragen hatte ich einige Probleme mit fehlenden perl-Modulen, welche ich beheben konnte. Eins der letzten Probleme ist folgendes:

Dieser Teil in der fhem.cfg:
define Slider_wz_HeizungFensterfront_Clima dummy
attr Slider_wz_HeizungFensterfront_Clima alias Heizung Wohnzimmer Fensterfront
attr Slider_wz_HeizungFensterfront_Clima fp_Erdgeschoss 64,1175,7,Heizungsregelung
attr Slider_wz_HeizungFensterfront_Clima group Heizungsregelung
attr Slider_wz_HeizungFensterfront_Clima room Wohnzimmer
attr Slider_wz_HeizungFensterfront_Clima setList state:slider,15.0,0.5,25.0
attr Slider_wz_HeizungFensterfront_Clima sortby 01
attr Slider_wz_HeizungFensterfront_Clima webCmd state



Produziert beim Speichern:
Slider_wz_HeizungFensterfront_Clima: unknown attribute sortby. Type 'attr Slider_wz_HeizungFensterfront_Clima ?' for a detailed list. Slider_wz_HeizungFensterfront_Clima: unknown attribute webCmd. Type 'attr Slider_wz_HeizungFensterfront_Clima ?' for a detailed list.

Hat sich da mit den letzten Versionen an dem webCmd-Attribut für dummy's was geändert?

sloth

Sry, ich muss den pushen, komme da alleine nicht weiter. Gibt es irgendwelche Infos von mir, die noch helfen könnten?

Leinad

Hmm... was machst du in dieser Zeile?

attr Slider_wz_HeizungFensterfront_Clima fp_Erdgeschoss 64,1175,7,Heizungsregelung