Heizungssteuerung mit FHT80B für absoluten Anfänger

Begonnen von romarira, 16 März 2013, 14:51:44

Vorheriges Thema - Nächstes Thema

romarira

Hallo,

ich möchte meine Heizung in der Wohnung über FHEM steuern. Diese Woche habe ich meine Geräte bekommen.
- FHT80B
- FHTTK
- FHT8V
- CUL V3

Nach vielen Mühen habe ich den CUL geflasht bekommen und er läuft jetzt an einer Fritzbox. Alle Geräte wurde erkannt.
Mit rename habe ich die Geräte umbenannt.
Mit attr habe ich die Geräte sowohl Räumen (z.B. Kinder1) und Gruppen (z.B. HeizKinder) zugeordnet.

Jetzt möchte ich eine Steuerung aufbauen und hier gehen meine Probleme los, da ich nicht programmieren kann.
Meine Kenntnisse erschöpfen sich dabei auf Grundkenntnisse in Basis, die ich mir beim Commodore 64 angeeignet habe.
Technisch bin ich eigentlich sehr versiert, so dass ich mir zutraue, mit etwas Unterstützung die Programmierung hinzubekommen.

Ich verstehe insbesondere nicht, was es mit den define und notify auf sich hat.

Ich habe es so verstanden, dass "define" dem System ein Gerät bekannt macht, was durch das autocreate und mein Umbenennen eigentlich schon geschehen ist.
Notify verstehe ich gar nicht.

Was möchte ich erreichen?

Ich möchte, dass die Heizkörper zu verschiedenen Zeiten die Temperatur hochfahren bzw. runterfahren.
Dabei soll an den Arbeitstagen Montag - Donnerstag ein anderes Programm laufen, als am Freitag, Samstag und Sonntag.
Das nach Möglichkeit auch für Räume von Gruppen (z.B. die beiden Kinderzimmer in einer Befehlssequenz).
Wenn das geregelt ist, möchte ich die Ferientermine und Feiertage einarbeiten.
Ferientage, an denen wir nicht da sind, sollen auf niedriger Temperatur laufen, Ferientage an denen wir zuhause sind, auf Wochenendprogramm.
Die Überwachung bzw. Einhaltung der Temperaturen sollen durch die FHT80B erfolgen.

Um die Ferientage und sonstige Tage bequem ändern zu können, wäre eine Dialogbox schön.

Ich habe im Wiki eine Datei gefunden, die evtl. hierzu angepasst werden kann (s. Link unten). Aber der Autor macht hier Anpassungen in verschiedenen Dateien und ich befürchte, dass ich hier die Konfiguration eher zerschieße als mein Ziel zu erreichen.

Kann mir jemand einen Tipp geben, wie der Beginn aussehen könnte mit define, notify, at und soweiter.
Oder einen Link, wo ich für einen blutigen Perl-Anfänger einfach verständliche Infos finde.

Ich würde dann gerne weiter machen und mein Ergebnis hier nochmal posten um auf Fehler checken zu lassen.

Hier mal ein erster Versuch auf Basis des WIKI-Eitnrags:

###########################################
##### Hier werden die Heizzeiten definiert
# 0-6 Wochentag beginnt mit Sonntag
# 00-23 Volle Stunde
# 00 oder 15 oder 30 oder 45 Minute
# PID-Name
# Dummy-Name
# gewünschte Temp. in vollen Graden
#### Wochenschaltzeiten####################
 # Sonntag
 0 09 00 HeizKinder HeizKinder_desired_temp 22  
 0 20 00 HeizKinder HeizKinder_desired_temp 17
 # Montag
 1 05 00 HeizKinder HeizKinder_desired_temp 22
 1 07 00 HeizKinder HeizKinder_desired_temp 17  
 #
 1 13 00 HeizKinder HeizKinder_desired_temp 22
 1 20 00 HeizKinder HeizKinder_desired_temp 17  
 # usw.
 # Freitag
 5 05 00 HeizKinder HeizKinder_desired_temp 22
 5 07 00 HeizKinder HeizKinder_desired_temp 17  
 #
 5 13 00 HeizKinder HeizKinder_desired_temp 22
 5 22 00 HeizKinder HeizKinder_desired_temp 17  
 # Samstag
 6 09 00 HeizKinder HeizKinder_desired_temp 22
 6 22 00 HeizKinder HeizKinder_desired_temp 17  
 ############################################

Hier fehlen auf jeden Fall noch die Protokolle und die Ferienzeiten, Feiertag und Dialogbox.
 
Hier mal die bisherigen Definition von mir:
FHT80B: HeizKind1, HeizKind2, HeizKind3 HeizBZoben, HeizBZunten, HeizWohnzimmer
FHTTK: Fenster_Kind1, Fenster_Kind2, Fenster_Kind3, Fenster_BZoben, Fenster_BZunten, Fenster_Wohnzimmer
Raum: RaumKind1, RaumKind2, RaumKind3, Wohnzimmer, Badezimmer_Oben, Badezimmer_Unten
Gruppe: HeizKinder,
FHTKKB: FHTKind1, FHTKind2, FHTKind3, FHTWohnzimmer, FHTBZoben, FHTBZunten

Muss ich in den FHT80B noch etwas einstellen, damit die Steuerung durch die FHEM-Programmierung läuft (z.B. ausschließlicher Betrieb auf manuell oder die Programmierung auf jeden Tag von 0-24 Uhr auf eine feste Zeit)?


Vielen Dank für die Hilfe.



Link auf den Eintrag im WIKI:

http://www.fhemwiki.de/wiki/FHT_8v_direkt_ansprechen

Zrrronggg!

Hast du das PDF
FHEM-Übersicht für Anfänger
gelesen?

Da wird das grob erklärt. Der Artikel FHT8v direkt ansteuern ist für dich falsch, das genau nicht machen willst, sondern über FHT80b verwendest.

Dies hier solltest du auch mal durcharbeiten:
http://fhem.de/commandref_DE.html


Kurz:

mit "define" wird FHEM irgendwas bekannt gemacht.
Ein Geräte
Eine Aktion
Eine Variable mit der man Programieren kann ("dummy")

"notify" hingegen löst eine (vorher "define"te) Aktion aus, wenn ein Ereigniss passiert ist.

Für eine ganz simple Heizungsteuerung brauchst du kein Notify.


Da zumindest ich jetzt nicht die Zeit habe, dir dein komplettes Wunschprogramm zu entwerfen, im folgenden mal ein paar "Brocken" mit denen du vielleicht spielen kannst.

Zunächst: Alles was in den Beispielen mit "my..." anfängt kannst du frei benennen. Wenn ich also schreibe "myheizung", dann ist das nur ein Name den du wählen kannst wie du willst, Der Name diehnt nur dazu, dass du dir leichter merken kannst worum es geht. Jedes define muss aber eine eigenen Namen haben.


So jetzt ein paar typische Aktionen einer Heizungssteuerung:
Eine Heizung immr um 8 uhr auf 22 Grad stellen, FHT_Kinderzimmer1 sei der Name des per Autocreate angelgten FHTs.

define myHeizungKinderzimmer_an at *08:00:00 set FHT_Kinderzimmer1 desired-temp 22



Das Selbe,  aber nur werktags:
define myHeizungKinderzimmer_an at *08:00:00  {if (!($we)) {fhem ("set FHT_Kinderzimmer1 desired-temp 22") }}

Am Wochenende später:
define myHeizungKinderzimmer_WE_an at *09:00:00  {if ($we)){fhem ("set FHT_Kinderzimmer1 desired-temp 22") }}

Mit einem Schlag nur Werktags mehrere Heizungen einschalten
define myHeizungAlle_an at *08:00:00  {if (!($we)) {fhem ("set FHT_Kinderzimmer1 desired-temp 22 ;; set FHT_Badezimmer1 desired-temp 23 ;; set FHT_Flur desired-temp 20") }}


Abends alle FHTs ausschalten:
define myHeizung_ausat *23:00:00 set FHT.* desired-temp 15

(An dem Beispiel kann man sehen, das es gut ist, alle FHTs am Anfang gleich zu benennen... Bei mir heissen sie nicht FHT, fangen aber alle mit "hzg_" an. Was ist egal, nur eben systematisch)

Spiel damit erstmal rum bitte und dann Stelle einzelne Fragen. Es ist vorteilhaft, wenn du je Post nur 1-2 konkrete Fragen stellst und nicht in einem Post mehr oder weniger:
"Kann mir mal einer FHEM komplett erklären und eine vollständige Heizungssteuerung schreiben bitte?"

Vor so einem Berg schreckt hier jeder zurück.
Also das Einsteiger PDF lesen, mit dem oben rumspielen und jeweils einige konkrete Fragen stellen.



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

romarira

Erst mal ganz herzlichen Dank für deine Antwort. Ich denke, das hilft mir schon unheimlich weiter. Ich werde das jetzt entsprechend anpassen und in meine fhem.cfg einbauen und testen.

ZitatHast du das PDF
FHEM-Übersicht für Anfänger
gelesen?

Ja, hatte ich - aber das war zum Teil ziemlich verwirrend für mich, insbesondere weil es sehr stark um Schaltvorgänge ging und Heizungsbefehle irgendwie etwas kurz kamen.

Eine Frage habe ich noch.

Muss ich im FHT80B noch etwas umprogrammieren? Wenn ich das Ding richtig verstehe, kann man die interne Programmierung dort gar nicht löschen?!

Puschel74

Hallo,

welche
Zitatinterne Programmierung
?

Grüße

Edith: Zu früh abgeschickt.
Der FHT80b kann intern programmiert werden, muss aber nicht.
Du könntest deine Tagesprogramme auch direkt in deinen FHT80b einstellen (geht auch über fhem).
Dann würden deine Heizkörperventile auch noch aufmachen (oder schliessen) wenn fhem mal nicht erreichbar ist.
Kommt halt immer drauf an wie die Heizung ein- und ausgeschaltet wird.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Zrrronggg!

Ich bevorzuge, in die FHT80 eine Art Notprogramm einzuprogrammieren, aber die eigentliche Steuerung über Befehle wie oben durchzuführen.
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

romarira

Zitat von: Zrrronggg! schrieb am So, 17 März 2013 00:42Ich bevorzuge, in die FHT80 eine Art Notprogramm einzuprogrammieren, aber die eigentliche Steuerung über Befehle wie oben durchzuführen.

Welche Programmierung ist denn dabei bevorrechtigt?

Es wäre ja schlecht, wenn das "Notprogramm" die FHEM-Befehle wieder aufhebt.

ZitatDu könntest deine Tagesprogramme auch direkt in deinen FHT80b einstellen (geht auch über fhem).

Welche Befehle muss ich denn über FHEM senden, damit die Programmierung im FHT80b eingestellt wird?

Danke schon mal vorab.

Puschel74

Hallo,

führend ist natürlich das Programm im FHT.
Dieses wird auch ohne fhem ausgeführt/abgespult.

ZitatEs wäre ja schlecht, wenn das "Notprogramm" die FHEM-Befehle wieder aufhebt.

Das geschieht, aber nur zu den programmierten Schaltzeiten im FHT.

ZitatWelche Befehle muss ich denn über FHEM senden, damit die Programmierung im FHT80b eingestellt wird?

Das kommt drauf an welchen Wert im FHT du ändern willst.
Wenn du einen Schaltzeitpunkt einstellen willst geht das am einfachsten mit einem

set <Name_des_FHT> mon-from1 07:00

Nun hast du den ersten Punkt am Montag um 07:00 uhr eingestellt.
Zu diesem Zeitpunkt wechselt der FHT vom Nacht- zum Tagesprogramm und stellt die gewünschte day-temp ein.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Zrrronggg!

set <Name_des_FHT> mon-from1 07:00

Bitte diese Sachen nicht dazu verwenden, die FHTs normal zu steuern. Das führt meistens zu hoher Funklast und überschreiten der 1% Grenze.

Das wird dir beim Rumspielen noch oft genug passieren. Lies dir sicherheitshalber schonmal die Passenden Wikiartikel durch.

Ansonsten:

Man kann "Notprogramme" in die FHTs einprogrammieren (auch am FHT selbst) und das FHT dann auf "manuellen" Modus stellen. Dann werde die in den FHTs einprogramierten Sachen nicht ausgeführt.  Wenn FHEM jetzt ausfällt, muss man allerdingss an den FHTs lokal auf automatisch wechseln, damit das Notprogramm greift.

Ich hatte noch nie einen FHEM Ausfall übrigens.
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

Puschel74

Hallo,

Zitat Zrrronggg!!!
ZitatDas führt meistens zu hoher Funklast und überschreiten der 1% Grenze.

Jep. Das ist richtig und darf nicht übersehen werden.
Gerade bei den FHT hast du ganz schnell die 1%-Grenze erreicht und der CUL loggt dich mit LOVF voll.

Da im Eingangspost die Zeiten aber recht genau definiert sind kann man diese ja im jeweiligen FHT als Auto-Programm laufen lassen.

Vorteil:
1%-Grenze bleibt unberührt davon da die FHT selbst ihr Programm abfahren.

Eingriffsmöglichkeit mit fhem bleibt dennoch mittels

set <FHT_Device> mode manual

und kann dann spezifisch die FHT`s "überfahren".

Siehe Link (HCS-Modul).

Und jederzeit mit einem

set <FHT_Device> mode auto

in den Automatikmodus zurück wechseln.

Aber das ist dann ja schon etwas tiefer in der Materie ;-)

@romarira

Wenn du auf den FHT in fhem klickst kannst du dir in der nächsten Ansicht auch die Befehle anschauen.

Grüße

P.S.: Ausfall hatte ich bisher auch noch keinen.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

romarira

ZitatP.S.: Ausfall hatte ich bisher auch noch keinen.

Ich habe schon seit Jahren in der Wohnung einen alten FHT8R2, der leider nicht für FHEM genutzt werden kann. Aber das Ding läuft auch bei mir super zuverlässig. Wenn ich mich in die Thematik eingearbeitet habe, werde ich den auch noch austauschen, einen FHT80B und eine Fensterkontakt anschaffen.

Nach euren Ausführungen werde ich bis auf einen FHT80B die Geräte über den set-Befehl programmieren und die Steuerung den FHT80B überlassen. Mit einem Gerät werde ich die Steuerung über FHEM machen um in die Thematik reinzukommen. Wenn das funktioniert, werde ich dann versuchen die Ferienprogramme über FHEM zu regeln. Das müsste meinen Vorstellungen eigentlich ganz gut zupass kommen. Ich werde mich dann sicher nochmal wegen der Programmierung mit Fragen an euch wenden.

Eine Frage habe ich jetzt noch. Kann ich über die FHEM-Befehlszeile ein Skript aufrufen?
Hintergrund: Ich würde die Set-Befehle alle gerne in eine Datei packen und dann über einen Aufruf dieses Skripts abarbeiten lassen. Wenn ich dann einmal später die Programmierung der FHT80B ändern will, bräuchte ich nur die Zeiten in dem Skript anpassen.

romarira

Ich habe jetzt mal den Versuch gestartet zwei Skripte zu schreiben. Ich bitte euch einmal drauf zu schauen, ob die so funktionieren dürften. Außerdem wäre ich für einen Tipp dankbar, wie ich Skript 1 in FHEM einbinde (include-Befehl) bzw. wie ich Skript 2 einmalig (und bei Bedarf nach Anpassung) starten kann.

Skript 1 soll in FHEM in einen Raum die Heizung steuern (Badezimmer Oben). Ich habe bewusst auf den Wochenendbefehl verzichtet, da ich damit etwas flexibler bleibe, wenn ich mal nur einen Tag ändern will.

###########################################
##### Hier werden die Heizzeiten definiert
#### Wochenschaltzeiten####################
###########################################
##### Hier werden die Heizzeiten definiert
# 0-6 Wochentag beginnt mit Sonntag
# 00-23 Volle Stunde
# 00 oder 15 oder 30 oder 45 Minute
############################################
# hzg_BZ_oben auf manuell setzen
define Manuell_AN at *05:00:00 fhem ("set hzg_BZ_oben mode auto"}\
# Montag
define AN_BadezimmerOben at *05:30:00 {\
  if ($wday == 1) {\
  fhem ("set hzg_BZ_oben desired-temp 22";;\
  fehm ("define AUS_BadezimmerOben at *07:00:00 set hzg_BZ_oben desired-temp 17")\
  }\
define AN_BadezimmerOben at *13:00:00 {\
  if ($wday == 1) {\
  fhem ("set hzg_BZ_oben desired-temp 22";;\
  fehm ("define AUS_BadezimmerOben at *22:00:00 set hzg_BZ_oben desired-temp 17")\
  }\
# Dienstag
define AN_BadezimmerOben at *05:30:00 {\
  if ($wday == 2) {\
  fhem ("set hzg_BZ_oben desired-temp 22";;\
  fehm ("define AUS_BadezimmerOben at *07:00:00 set hzg_BZ_oben desired-temp 17")\
  }\
define AN_BadezimmerOben at *13:00:00 {\
  if ($wday == 2) {\
  fhem ("set hzg_BZ_oben desired-temp 22";;\
  fehm ("define AUS_BadezimmerOben at *22:00:00 set hzg_BZ_oben desired-temp 17")\
  }\
# Mittwoch
define AN_BadezimmerOben at *05:30:00 {\
  if ($wday == 3) {\
  fhem ("set hzg_BZ_oben desired-temp 22";;\
  fehm ("define AUS_BadezimmerOben at *07:00:00 set hzg_BZ_oben desired-temp 17")\
  }\
define AN_BadezimmerOben at *13:00:00 {\
  if ($wday == 3) {\
  fhem ("set hzg_BZ_oben desired-temp 22";;\
  fehm ("define AUS_BadezimmerOben at *22:00:00 set hzg_BZ_oben desired-temp 17")\
  }\
# Donnerstag
define AN_BadezimmerOben at *05:30:00 {\
  if ($wday == 4) {\
  fhem ("set hzg_BZ_oben desired-temp 22";;\
  fehm ("define AUS_BadezimmerOben at *07:00:00 set hzg_BZ_oben desired-temp 17")\
  }\
define AN_BadezimmerOben at *13:00:00 {\
  if ($wday == 4) {\
  fhem ("set hzg_BZ_oben desired-temp 22";;\
  fehm ("define AUS_BadezimmerOben at *22:00:00 set hzg_BZ_oben desired-temp 17")\
  }\
# Freitag
define AN_BadezimmerOben at *05:30:00 {\
  if ($wday == 5) {\
  fhem ("set hzg_BZ_oben desired-temp 22";;\
  fehm ("define AUS_BadezimmerOben at *07:00:00 set hzg_BZ_oben desired-temp 17")\
  }\
define AN_BadezimmerOben at *13:00:00 {\
  if ($wday == 5) {\
  fhem ("set hzg_BZ_oben desired-temp 22";;\
  fehm ("define AUS_BadezimmerOben at *22:00:00 set hzg_BZ_oben desired-temp 17")\
  }\
# Samstag
define AN_BadezimmerOben at *08:00:00 {\
  if ($wday == 6) {\
  fhem ("set hzg_BZ_oben desired-temp 22";;\
  fehm ("define AUS_BadezimmerOben at *22:00:00 set hzg_BZ_oben desired-temp 17")\
  }\
# Sonntag
define AN_BadezimmerOben at *08:00:00 {\
  if ($wday == 0) {\
  fhem ("set hzg_BZ_oben desired-temp 22";;\
  fehm ("define AUS_BadezimmerOben at *22:00:00 set hzg_BZ_oben desired-temp 17")\
  }\
#####################
# ENDE
#####################


Skript 2 - Skript um die FHT80B zu programmieren und die Steuerung hierüber laufen zu lassen:

###########################################
##### Hier werden die Heizzeiten definiert, die vom FHT80B selbst gesteuert werden
#### Übertragung in das FHT80B ####################
#############################################
# Raum Kind1
  #############################################
  # Temperaturen
  set hzg_Kind1 day-temp 22.0
  set hzg_Kind1 night-temp 17.0
  set hzg_Kind1 windowopen-temp 12.0
  #############################################
  # Montag
  set hzg_Kind1 mon-from1 05:30
  set hzg_Kind1 mon-to1 7:00
  set hzg_Kind1 mon-from2 14:30
  set hzg_Kind1 mon-to2 20:00
  # Dienstag
  set hzg_Kind1 tue-from1 05:30
  set hzg_Kind1 tue-to1 7:00
  set hzg_Kind1 tue-from2 13:00
  set hzg_Kind1 tue-to2 20:00
  # Mittwoch
  set hzg_Kind1 wed-from1 05:30
  set hzg_Kind1 wed-to1 7:00
  set hzg_Kind1 wed-from2 13:00
  set hzg_Kind1 wed-to2 20:00
  # Donnerstag
  set hzg_Kind1 thu-from1 05:30
  set hzg_Kind1 thu-to1 7:00
  set hzg_Kind1 thu-from2 13:00
  set hzg_Kind1 thu-to2 20:00
  # Freitag
  set hzg_Kind1 fri-from1 05:30
  set hzg_Kind1 fri-to1 7:00
  set hzg_Kind1 fri-from2 13:00
  set hzg_Kind1 fri-to2 22:00
  # Samstag
  set hzg_Kind1 sat-from1 09:00
  set hzg_Kind1 sat-to1 22:00
  # Sonntag
  set hzg_Kind1 sun-from1 09:00
  set hzg_Kind1 sun-to1 20:00
############################################
# Raum Kind2 Arbeitszimmer
  #############################################
  # Temperaturen
  set hzg_Kind2_AZ day-temp 22.0
  set hzg_Kind2_AZ night-temp 17.0
  set hzg_Kind2_AZ windowopen-temp 12.0
  #############################################
  #############################################
  # Montag
  set hzg_Kind2_AZ mon-from1 05:30
  set hzg_Kind2_AZ mon-to1 7:00
  set hzg_Kind2_AZ mon-from2 14:30
  set hzg_Kind2_AZ mon-to2 20:00
  # Dienstag
  set hzg_Kind2_AZ tue-from1 05:30
  set hzg_Kind2_AZ tue-to1 7:00
  set hzg_Kind2_AZ tue-from2 13:00
  # Mittwoch
  set hzg_Kind2_AZ wed-from1 05:30
  set hzg_Kind2_AZ wed-to1 7:00
  set hzg_Kind2_AZ wed-from2 13:00
  set hzg_Kind2_AZ wed-to2 20:00
  # Donnerstag
  set hzg_Kind2_AZ thu-from1 05:30
  set hzg_Kind2_AZ thu-to1 7:00
  set hzg_Kind2_AZ thu-from2 13:00
  set hzg_Kind2_AZ thu-to2 20:00
  # Freitag
  set hzg_Kind2_AZ fri-from1 05:30
  set hzg_Kind2_AZ fri-to1 7:00
  set hzg_Kind2_AZ fri-from2 13:00
  set hzg_Kind2_AZ fri-to2 22:00
  # Samstag
  set hzg_Kind2_AZ sat-from1 09:00
  set hzg_Kind2_AZ sat-to1 22:00
  # Sonntag
  set hzg_Kind2_AZ sun-from1 09:00
  set hzg_Kind2_AZ sun-to1 20:00
###############################################
# Raum Kind2 Schlafzimmer
  #############################################
  # Temperaturen
  set hzg_Kind2_SZ day-temp 22.0
  set hzg_Kind2_SZ night-temp 17.0
  set hzg_Kind2_SZ windowopen-temp 12.0
  #############################################
  #############################################
  # Montag
  set hzg_Kind2_SZ mon-from1 05:30
  set hzg_Kind2_SZ mon-to1 7:00
  set hzg_Kind2_SZ mon-from2 14:30
  set hzg_Kind2_SZ mon-to2 20:00
  # Dienstag
  set hzg_Kind2_SZ tue-from1 05:30
  set hzg_Kind2_SZ tue-to1 7:00
  set hzg_Kind2_SZ tue-from2 13:00
  set hzg_Kind2_SZ tue-to2 20:00
  # Mittwoch
  set hzg_Kind2_SZ wed-from1 05:30
  set hzg_Kind2_SZ wed-to1 7:00
  set hzg_Kind2_SZ wed-from2 13:00
  set hzg_Kind2_SZ wed-to2 20:00
  # Donnerstag
  set hzg_Kind2_SZ thu-from1 05:30
  set hzg_Kind2_SZ thu-to1 7:00
  set hzg_Kind2_SZ thu-from2 13:00
  set hzg_Kind2_SZ thu-to2 20:00
  # Freitag
  set hzg_Kind2_SZ fri-from1 05:30
  set hzg_Kind2_SZ fri-to1 7:00
  set hzg_Kind2_SZ fri-from2 13:00
  set hzg_Kind2_SZ fri-to2 22:00
  # Samstag
  set hzg_Kind2_SZ sat-from1 09:00
  set hzg_Kind2_SZ sat-to1 22:00
  # Sonntag
  set hzg_Kind2_SZ sun-from1 09:00
  set hzg_Kind2_SZ sun-to1 20:00
###############################################
# Raum Badezimmer Oben
  #############################################
  # Temperaturen
 #set hzg_BZ_oben day-temp 22.0
 #set hzg_BZ_oben night-temp 17.0
 #set hzg_BZ_oben windowopen-temp 12.0
  #############################################
  #############################################
  # Montag
 #set hzg_BZ_oben mon-from1 05:30
 #set hzg_BZ_oben mon-to1 7:00
 #set hzg_BZ_oben mon-from2 13:00
 #set hzg_BZ_oben mon-to2 22:00
  # Dienstag
 #set hzg_BZ_oben tue-from1 05:30
 #set hzg_BZ_oben tue-to1 7:00
 #set hzg_BZ_oben tue-from2 13:00
 #set hzg_BZ_oben tue-to2 22:00
  # Mittwoch
  set hzg_BZ_oben wed-from1 05:30
 #set hzg_BZ_oben wed-to1 7:00
 #set hzg_BZ_oben wed-from2 13:00
 #set hzg_BZ_oben wed-to2 22:00
  # Donnerstag
 #set hzg_BZ_oben thu-from1 05:30
 #set hzg_BZ_oben thu-to1 7:00
 #set hzg_BZ_oben thu-from2 13:00
 #set hzg_BZ_oben thu-to2 22:00
  # Freitag
 #set hzg_BZ_oben fri-from1 05:30
 #set hzg_BZ_oben fri-to1 7:00
 #set hzg_BZ_oben fri-from2 13:00
 #set hzg_BZ_oben fri-to2 22:00
  # Samstag
 #set hzg_BZ_oben sat-from1 09:00
 #set hzg_Kind2_AZ sat-to1 22:00
  # Sonntag
 #set hzg_BZ_oben sun-from1 09:00
 #set hzg_BZ_oben sun-to1 22:00
##############################################
# Alle FHT80B auf Auto stellen
##############################################
set hzg_Kind1 mode auto
set hzg_Kind2_AZ mode auto
set hzg_Kind2_SZ mode auto
#set hzg_BZ_oben mode auto
##############################################
# Ende
##############################################

Zrrronggg!

Nimm's mir bitte nicht übel, aber hier ganze Konfigurationen durchsehen macht keiner gern, das ist echte Arbeit.

Du solltest bitte einfach 1-2 Tage hier vorstellen und den kann man dann kurz ansehen und kommentieren und dann musst du schon die Erweiterung auf mehrer Tage selber machen.  Auf den ersten Blick kann ich aber sagen, dass es NICHT gehen wird, weil deine Defines alle gleich heissen. Es kann "AN_BadezimmerOben " z.b. nur EINMAL geben. D.H. du muss die alle unterschiedlich nennen.

Ausserdem köntest du gleiche Zeiten an unterschiedlichen Tagen zusammenfassen:

Zitatdefine AN_BadezimmerOben at *05:30:00 {\
if ($wday == 1) || ($wday == 2) || ($wday == 3) {\
fhem ("set hzg_BZ_oben desired-temp 22";;\
fehm ("define AUS_BadezimmerOben at *07:00:00 set hzg_BZ_oben desired-temp 17")\
}\

||  = oder


Ferner: Ich weiss dass es hier in letzter Zeit Mode geworden ist, jedes FHEM Commando in eine eigene "fhem(" ") -Klammer einzupacken, das ist aber nicht nötig.

Dies geht auch:

define AN_BadezimmerOben at *05:30:00 {\
if ($wday == 1) || ($wday == 2) || ($wday == 3) {\
fhem ("set hzg_BZ_oben desired-temp 22";; define AUS_BadezimmerOben at *07:00:00 set hzg_BZ_oben desired-temp 17")\
}\


Und ausserdem hast du zumindest bisher für 5 Wochentage wie es mir scheint immer die selben Uhrzeiten. Warum machst du dann für jeden Tag einzelne defines?

Einfacher wäre da doch auf Wochenende zu testen:

{if (!($we)) {fhem ("...  (kein Wochenende, da  ! = nicht)
oder
{if ($we) {fhem (" ... Wochenende  



ZitatAußerdem wäre ich für einen Tipp dankbar, wie ich Skript 1 in FHEM einbinde

Na einfach in die fhem.cfg reinschreiben.

Zitatwie ich Skript 2 einmalig (und bei Bedarf nach Anpassung) starten kann.

Besser nicht! Wenn du alles das was da drin steht mit einem mal losschiebst, gibt's 100% LOVF und EOB Fehlermeldungen, da das die 1% Grenze überschreitet.
Das ist genau DIE Methode, wie man sich Funklastprobleme mit FHTs einhandelt.  Wir haben hier und in der alten google Group immer wieder Threads gehabt, wo Leute das trotzdem gemacht haben und dann sich gewundert haben, was alles nicht mehr geht.

Das habe ich doch weiter oben schon ausgeführt und auch Puschl74 hat davor gewarnt.
Nicht gesehen?



Lies die diversen Wikiartikel dazu:

http://www.fhemwiki.de/wiki/1%25_Regel
http://www.fhemwiki.de/wiki/LOVF
http://www.fhemwiki.de/wiki/Kommunikationsprobleme_mit_FHT





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

romarira

ZitatNimm's mir bitte nicht übel, aber hier ganze Konfigurationen durchsehen macht keiner gern, das ist echte Arbeit.

Sorry, ich hatte auch nicht erwartet, dass Zeile für Zeile geprüft wird. Ging mir mehr darum, einen Gesamteindruck zu verschaffen. Insofern war es im Endeffekt auch ganz gut, da sonst wohl der Fehler mit der mehrfach verwendeten Variable nicht von dir entdeckt worden wäre.

Habe den Code jetzt so umgestellt:

# Badezimmer oben an Wochentagen zwei Schaltprogramme, am Wochenende nur ein Schaltprogramm
define AN_1_BadezimmerOben at *05:30:00 {\
   if (!($we)) {fhem ("set hzg_BZ_oben desired-temp 22";; define AUS_1_BadezimmerOben at *07:00:00 set hzg_BZ_oben desired-temp 17")\
   }\
define AN_2_BadezimmerOben at *13:00:00 {\
   if (!($we))) fhem ("set hzg_BZ_oben desired-temp 22";; define AUS_2_BadezimmerOben at *22:00:00 set hzg_BZ_oben desired-temp 17")\
}\
#  Badezimmer Oben Wochenende Samstag-Sonntag
define AN_WE_BadezimmerOben at *08:00:00 {\
   if ($we) {fhem ("set hzg_BZ_oben desired-temp 22";; define AUS_1_BadezimmerOben at *22:00:00 set hzg_BZ_oben desired-temp 17")\
   }\
# hzg_BZ_oben auf manuell setzen
define Manuell_AN_1 at *05:00:00 fhem ("set hzg_BZ_oben mode auto"}\
#####################
# ENDE
#####################


ZitatBesser nicht! Wenn du alles das was da drin steht mit einem mal losschiebst, gibt's 100% LOVF und EOB Fehlermeldungen, da das die 1% Grenze überschreitet.
Das ist genau DIE Methode, wie man sich Funklastprobleme mit FHTs einhandelt. Wir haben hier und in der alten google Group immer wieder Threads gehabt, wo Leute das trotzdem gemacht haben und dann sich gewundert haben, was alles nicht mehr geht.

Das habe ich doch weiter oben schon ausgeführt und auch Puschl74 hat davor gewarnt.
Nicht gesehen?

Um die 1%-Regelung zu umgehen, hatte ich ja gerade den Weg gewählt, die Steuerung den FHT zu überlassen. Ich hatte mir den Artikel zur 1%-Regel durchgelesen. Da stand, dass das ungefähr 36 Sekunden Signal pro Stunde wären. Die wären ja niemals durch diese Zeilen ausgeschöpft worden.

Dank deiner weiteren Links habe ich das mit dem Funkverkehr aber jetzt besser verstanden. Es gibt da halt mehrere Probleme:
1. Die Dinger senden permanent irgendetwas zurück
2. Ein FHT kann nur alle zwei Minuten einen Befehl empfangen. Damit würde alles in den Buffer gehen und möglicherweise nie abgearbeitet werden.

Also ist es tatsächlich kein guter Vorschlag, mit einem Skript alle Befehle hochzuschicken. Ich mache das jetzt häppchenweise und fasse in einer Befehlszeitel max. 8 Befehle zusammen. Lt. Wiki müsste das gehen.

Beim ausprobieren des Befehls get CUL_0 raw T02 um den Buffer auszulesen, ist mir aufgefallen, dass acht Befehle in der Warteschlange waren. Alle Befehle waren für zwei alte FHT von ELV, die noch nicht bidirektional arbeiten. Die wurden vom CUL automatisch erkannt. Ich habe Buffer für die beiden Geräte gelöscht und jetzt ist die Warteschlange auch leer.

Da ich die ohnehin nicht steuern kann, möchte ich die gerne "unpairen". Wie kriege ich das hin, ohne dass die über autocreate sofort wieder auftauchen?

ZitatFerner: Ich weiss dass es hier in letzter Zeit Mode geworden ist, jedes FHEM Commando in eine eigene "fhem(" ") -Klammer einzupacken, das ist aber nicht nötig.

Möglicherweise kommt das daher, so Menschen wie ich, sich in das Thema einarbeiten und dabei bei anderen abschreiben. Wenn man die Beispiele so findet, übernimmt sie halt. :-)

Puschel74

Hallo,

ZitatDa ich die ohnehin nicht steuern kann, möchte ich die gerne "unpairen". Wie kriege ich das hin, ohne dass die über autocreate sofort wieder auftauchen?

Ein "unpair" in diesem Sinne gibt es nur bei HM (soweit ich weiß) aber nicht bei FS20.
Da die Geräte evtl. deinem Nachbar zuzuordnen sind hast du 2 Möglichkeiten:

a) alle Geräte durch autocreate anlegen lassen und dann jedes Gerät das NICHT zu dir gehört per
attr <Device> ignore
zu ignorieren oder

b) autocreate auszuschalten und deine Devices von Hand anlegen.

Grüße

P.S.: Einen "Gesamteindruck" kann man sich, glaube ich, nur bei einem Kunstwerk verschaffen und nicht bei einem "Programmcode" ;-)
Diesen muss man sich schon Zeile für Zeile durchlesen um sagen zu können - Ja, kann gehen oder Nein, geht so nicht.
Ausser offensichtliche "Fehler/Ausrutscher" springen einem, wie Zrrronggg!!!, ins Auge.

Edith:
ZitatUm die 1%-Regelung zu umgehen, hatte ich ja gerade den Weg gewählt, die Steuerung den FHT zu überlassen.
Wenn du Steuerung, also die Zeiten, in den FHT hinterlegst brauchst du diese in fhem nicht nochmals zu programmieren.
Mit fhem kannst du die Daten aus den FHT auslesen - sprich deine "FHT-Programme" hast du dann als Reading zum jeweiligen FHT in fhem hinterlegt.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

romarira

ZitatDa die Geräte evtl. deinem Nachbar zuzuordnen sind hast du 2 Möglichkeiten:

Das waren schon meine. Aber der Befehl attr <DEVICE> ignore das war es was ich gesucht habe.

Vielen Dank!