FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: bjoernhoefer am 14 Januar 2013, 14:37:24

Titel: Variablen für set desired-temp verwenden?
Beitrag von: bjoernhoefer am 14 Januar 2013, 14:37:24
Hallo,

ich habe mir mit FHEM einen "Heizungsplan" konstruiert, der recht gut läuft.

Einzige Frage wäre nun noch, ob ich mir in meiner eigenen Konfig-Datei (schedule.cfg) Variablen setzen kann, die dann in Zahlen umgewandelt werden und dich ich dann für das setzen der Wunsch-Temperatur verwenden kann.

z.B.:
temp_abgesenkt = 20
temp_normal = 22.5

set *_thermo desired-temp temp_abgesenkt
set badzeimmer_thermo desired_temp temp_normal

Geht das? Wenn ja, wie kann ich die Variablen richtig sezten? Ich glaube ein dummy-Device is dafür ja nicht geeignet....
Titel: Aw: Variablen für set desired-temp verwenden?
Beitrag von: Puschel74 am 14 Januar 2013, 14:44:32
Hallo,

so hab ich das gelöst:

define Gewuenschte_Temp_innen_Max dummy
attr Gewuenschte_Temp_innen_Max room 01_Anzeige
attr Gewuenschte_Temp_innen_Max setList 21.0 21.5 22.0 22.5 23.0 23.5

define Gewuenschte_Temp_innen_Min dummy
attr Gewuenschte_Temp_innen_Min room 01_Anzeige
attr Gewuenschte_Temp_innen_Min setList 20.0 20.5 21.0 21.5 22.0 22.5


Und dann ein

my $gew_temp_innen_wz_max = (Value("Gewuenschte_Temp_innen_Max"));
my $gew_temp_innen_wz_min = (Value("Gewuenschte_Temp_innen_Min"));

fhem ("set EG_Wohnzimmer_Heizung desired-temp ".$gew_temp_innen_wz_max);


Ist bei mir zwar noch etwas komplexer aber so kannst du die gewünschte Temperatur auswählen und per set an den FHT übertragen.

Grüße
Titel: Aw: Variablen für set desired-temp verwenden?
Beitrag von: bjoernhoefer am 14 Januar 2013, 14:56:02
anstatt einer liste könnte ich aber auch nur einen wert nehmen, oder?

die zwei Code-Zeilen sind in der gleichen Konfig-Datei?
Titel: Aw: Variablen für set desired-temp verwenden?
Beitrag von: Puschel74 am 14 Januar 2013, 15:08:20
Ich habe das deswegen mit setList gelöst weil ich verschiedene Werte ausprobieren möchte.

Wenn du die Wert aber "hartcodiert" eingeben möchtest geht das genauso - nur dann ohne dummy oder ...
du kannst auch dem dummy dann direkt 20.5 zuweisen ohne Auswahlmenü.

Die geposteten Dummy (und noch ein paar mehr) sowie die geposteten Zeilen sind Bestandteil einer
"etwas" grösseren .cfg - ja.

Grüsse
Titel: Aw: Variablen für set desired-temp verwenden?
Beitrag von: bjoernhoefer am 15 Januar 2013, 15:05:31
Sorry, aber ich kapiers nicht...

Perl Code kann ich so nicht ausführen, soweit ich das verstanden habe, dafür brauche ich immer einen "Initiator" (z.b. notify).

Ich habe es ohne alles und jetzt mit set probiert - funktioniert leider gar nix, ausser das ich beim Neustart von fhem im Log die Meldung bekomme "21.0" und 22.5

Konkrete Frage:
- Wie kann ich die definition von my "richtig" machen
- Kann ich die mit my definierten Variablen (z.B: $absenk_temp) in jeder Konfig verwenden oder nur in dieser Konfig - oder gar nur innerhalb der {}?


### ThermoPlan
## Temperaturen setzen
# Absenk Temperatur
define absenk_temperatur dummy
attr absenk_temperatur room schedule
set absenk_temperatur 21.0 { my $absenk_temp = (Value("absenk_temperatur")) }
# Normale Temperatur
define normale_temperatur dummy
attr normale_temperatur room schedule
set normale_temperatur 22.5 { my $normale_temp = (Value("normale_temperatur"));; }
## Wochenplaene
define ThermoPlan_week_start at *01:00:01 {if(!$we) { fhem("set *_thermo desired-temp $absenk_temp") } }
attr ThermoPlan_week_start room schedule
define ThermoPlan_week_morning_start at *00:05:00 {if(!$we) { fhem("set *_thermo desired-temp $normale_temp") } }
attr ThermoPlan_week_morning_start room schedule
define ThermoPlan_week_morning_stop at *07:30:00 {if(!$we) { fhem("set *_thermo desired-temp $absenk_temp") } }
attr ThermoPlan_week_morning_stop room schedule
define ThermoPlan_week_evening_start at *15:30:00 {if(!$we) { fhem("set *_thermo desired-temp $normale_temp") } }
attr ThermoPlan_week_evening_start room schedule
define ThermoPlan_week_evening_wrap at *00:00:01 {if(!$we) { fhem("set *_thermo desired-temp $normale_temp") } }
attr ThermoPlan_week_evening_wrap room schedule
## Wochenendplaene
define ThermoPlan_weekend_start at *02:00:00 {if($we) { fhem("set *_thermo desired-temp $absenk_temp") } }
attr ThermoPlan_weekend_start room schedule
define ThermoPlan_weekend_morning_start at *07:00:00 {if($we) { fhem("set *_thermo desired-temp $normale_temp") } }
attr ThermoPlan_weekend_morning_start room schedule
define ThermoPlan_weekend_wrap at *00:00:01 {if($we) { fhem("set *_thermo desired-temp $normale_temp") } }
attr ThermoPlan_weekend_wrap room schedule
### Extras
## Handtuchheizung im Bad
define ThermoPlan_week_handtuch_start at *05:30:00 {if(!$we) { fhem("set badezimmer_thermo desired-temp 24") } }
attr ThermoPlan_week_handtuch_start room schedule
define ThermoPlan_week_handtuch_stop at *06:40:00 {if(!$we) { fhem("set *_thermo desired-temp $normale_temp") } }
attr ThermoPlan_week_handtuch_stop room schedule
Titel: Aw: Variablen für set desired-temp verwenden?
Beitrag von: Puschel74 am 15 Januar 2013, 16:13:33
Ich habs soweit noch nicht probiert aber ich vermute das ein


my $temp_abgesenkt = "20.0";
my $temp_normal = "22.5";


das ist was du suchst?

Diese Variablen sind lokale Variablen, also nur innerhalb dieses notify verwendbar.
Möchtest du diese über dieses notify hinaus retten musst du sie global definieren - gibt es einen Beitrag dazu.

Grüße
Titel: Aw: Variablen für set desired-temp verwenden?
Beitrag von: bjoernhoefer am 15 Januar 2013, 21:17:56
Auf die Gefahr hin, jetzt böse beschimpft zu werden bzw. als suchfaul tituliert zu werden - aber ich find einfach nix wie ich global variablen definiere, oder bzw. wie ich die mit werten setzen kann.

Tut mir echt leid, hier nervig zu sein... :-(
Titel: Aw: Variablen für set desired-temp verwenden?
Beitrag von: LaLeLu am 18 Januar 2013, 14:22:25
Puschel74 hat Dir doch am Mo, 14 Januar 2013 14:44 die Lösung mit Dummies geschrieben!?????