Heizungssteuerung mit FHT80B für absoluten Anfänger

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

Vorheriges Thema - Nächstes Thema

Zrrronggg!

Ich würde grundsäzlich immer empfehlen, Autocreate abzuschalten wenn man es nicht braucht.

Ich geh sogar soweit , Autocreate gar nicht zu verwenden, ausser es handelt sich um "exotische" Devices, wo man die richtige Definition gerade nicht zur Hand hat oder die richtig gepairt werden muss wie bei HM.

Ansonsten wenn ich Puschel74 ausnahmesweise mal wiedersprechen darf:

ignore ist nur eine halb gute Idee. Denn die FHT8b (die du ja wohl hast) senden ja durchaus TValvemessages (bzw die Ventile amchen das), die man ja vielleicht brauchen kann. Ignore blendet die aber weg.

Im FHT Modul gibts daher extra für diese Dinger das Attribut DUMMY.

Dummy als attr im Zusammenhang mit FHTs, FS20 und was auch immer bedeutet ja: NIX SENDEN, nur empfangen.

Ich darf dazu mal kurz die commandref zittieren:

FHT attributes
dummy
Note:It makes sense to define an FHT device even for an FHT8b, else you will receive "unknown FHT device, please define one" message for each FHT8b as the CUL is reporting the 8b valve messages. But you should set the dummy attribute for these devices, else the internal FHT buffer of the CUL will be filled with data for the 8b's which is never consumed. If the buffer is full, you'll get "EOB" messages from the CUL, and you cannot transmit any data to the 80b's

Also: Ganz normal als FHT anlegen (lassen)

und dann
attr FHT8b_name dummy

an die definiton anfügen

sollte helfen.


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

Alles richtig. Man muss eben nur aufpassen, bei solchen Aktionen, wie Lesen der Wochenprgramme (aka set report1 255) oder dem neusetzen der Wochenprogramme  schön gestreckt vorzugehen. Wenn man das bei mehr als 2-3 FHTs auf einmal versucht, dann ist Feirabend. Wenn die Programme erstmal übertragen sind ist alles gut.
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

So, in dem letzten Posting von mir, waren noch Fehler für die Steuerung des Heizkörpers im Badezimmer drin.
Ich kam nicht damit klar, mehrere Befehle in eine Zeile zu packen :-( daher habe ich es mit mehreren fhem-Anweisungen gemacht.
So läuft es jetzt (zumindest bis jetzt). Für diejenigen die im Forum stöbern und gerne Beispiele haben daher hier der Code:

################################################################
# 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 {\
   if (!($we)) {fhem ("set hzg_BZ_oben desired-temp 17")\
   }}
define AUS_2_BadezimmerOben at *22:00:00 {\
   if (!($we)) {fhem ("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_WE_BadezimmerOben at *22:00:00 {\
   if ($we) {fhem ("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 manual")}
#################################################################
define AN_2_BadezimmerOben at *13:00:00 {\
   if (!($we)) {fhem ("set hzg_BZ_oben desired-temp 22")\
   }}
#################################################################
# Ende Badezimmer Oben
#################################################################


romarira

Mittlerweile konnte ich auch alle anderen FHT80b über den SET-Befehl programmieren.

Wenn man das per Telnet verfolgt (get CUL_0 raw FT02) sieht man gut, wie die Befehle in die Warteschlange gehen und im ca. 2-Minuten-Rhytmus dort abgearbeitet werden.

Wahrscheinlich werde ich da so schnell nichts mehr ändern müssen. Dennoch würde mich interessieren, wie man die einzelnen Befehle mit einer automatischen Zeitverzögerung absenden könnte, so dass man nicht jede Zeile einzeln schicken müsste.

Bsp.:
        set hzg_Kind.* mon-from1 05:30 mon-to1 07:00 mon-from2 13:00 mon-to2 20:00
   hier jetzt der Befehl, warte bitte 3 Minuten
        set hzg_Kind.* tue-from1 05:30 tue-to1 07:00 tue-from2 13:00 tue-to2 20:00
        hier jetzt der Befehl, warte bitte 3 Minuten
   set hzg_Kind.* wed-from1 05:30 wed-to1 07:00 wed-from2 13:00 wed-to2 20:00
        hier jetzt der Befehl, warte bitte 3 Minuten

Ist das machbar und wie würde ein solcher Befehl lauten?

romarira

ZitatBsp.:
set hzg_Kind.* mon-from1 05:30 mon-to1 07:00 mon-from2 13:00 mon-to2 20:00
hier jetzt der Befehl, warte bitte 3 Minuten

Ich glaube so könnte es gehen ?!

set hzg_Kind.* mon-from1 05:30 mon-to1 07:00 mon-from2 13:00 mon-to2 20:00
sleep 180000


Sleep wird in Millisekunden angegeben, also müssten 180000 Millisekunden = 3 Minuten sein.

Zrrronggg!

3 Minuten reicht eventuell nicht aus. Und sleep ist nicht ganz ungefährlich. Und wird sleep nicht in Sekunden angegeben?

Ich würde lieber folgendes machen:

define hzg_set_1 at  17:00:00 set hzg_Kind.* mon-from1 05:30 mon-to1 07:00 mon-from2 13:00 mon-to2 20:00
define hzg_set_2 at  17:15:00 set hzg_Kind.* tue-from1 05:30 tue-to1 07:00 tue-from2 13:00 tue-to2 20:00
define hzg_set_3 at  17:30:00 set hzg_Kind.* wed-from1 05:30 wed-to1 07:00 wed-from2 13:00 wed-to2 20:00
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

ZitatIch würde lieber folgendes machen:

define hzg_set_1 at 17:00:00 set hzg_Kind.* mon-from1 05:30 mon-to1 07:00 mon-from2 13:00 mon-to2 20:00
define hzg_set_2 at 17:15:00 set hzg_Kind.* tue-from1 05:30 tue-to1 07:00 tue-from2 13:00 tue-to2 20:00

Das ist prima und gefällt mir auch viel besser.

Das kann ich dann komplett in einer Datei zusammenfassen. In der fhem.cfg mache ich dann einen Verweis auf diese Datei, der auskommentiert ist und wenn ich die Datei dann mal laufen lassen muss, wird kurz die Auskommentierung herausgenommen und anschließend wieder reingenommen.

so z.B.

# FHT80b intern programmieren
# include /etc/fhem/prog_fht80b.cfg


Dann nur das # raus bzw. reinnehmen.

Ich gehe mal davon aus, dass ich die prog_fht80b.cfg vorher mit chmod 777 prog_fht80b.cfg die Datei ausführbar machen muss.

Puschel74

Hallo,

du kannst das mit dem einbinden deiner Codes natürlich halten wie du willst.
Das steht jedem frei.

Aber ein kurzer Gedankenstoss vllt.

Definier dir doch einen Dummy den du betätigst wenn der Code ausgeführt werden soll.
Ob du die fhem.cfg bearbeitest oder den Dummy betätigst - ich weiß was mir zumindest lieber wäre ;-)

Auslagern kannst du den Code ja dennoch und per include einbinden.
Du erstparst dir nur das jeweilige neu einlesen der Config wenn du das include auskommentierst.

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!

Jenau:

define hzg_set_1 at *17:00:00 {if (Value("FHT_Update") eq "on" ) { fhem("set hzg_Kind.* mon-from1 05:30 mon-to1 07:00 mon-from2 13:00 mon-to2 20:00") } }

...
...
...

define hzg_set_7 at *19:00:00 {if (Value("FHT_Update") eq "on" ) { fhem("set hzg_letzter_Raum.* mon-from1 05:30 mon-to1 07:00 mon-from2 13:00 mon-to2 20:00 ;; set FHT_Update off ") } }


Und wenn du das so machst, kannst du die Zeiten sogar nacht legen, damit es sonstigem Kram besonders wenig in die Quere kommt.
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,

achso, bezgl. dieser Frage noch

ZitatIch gehe mal davon aus, dass ich die prog_fht80b.cfg vorher mit chmod 777 prog_fht80b.cfg die Datei ausführbar machen muss.

Die Datei brauchst du nicht ausführbar machen.
FHEM liest diese ein wenn du sie mit

include ./prog_fht80b.cfg

einbindest - den Pfad evtl. noch anpassen aber ich denke der sollte so passen.

Um den Rest kümmert sich dann schon FHEM bzw. Perl.

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.

romarira

ZitatOb du die fhem.cfg bearbeitest oder den Dummy betätigst - ich weiß was mir zumindest lieber wäre ;-)

Ich bestimmt auch, wenn ich wüsste was ein Dummy ist und wie ich den dann starte ;-)
Aber ich habe in den letzten Tage soviel gelernt, das werde ich durch Suche im Forum und googlen herausfinden.

Zitatdefine hzg_set_1 at *17:00:00 {if (Value("FHT_Update") eq "on" ) { fhem("set hzg_Kind.* mon-from1 05:30 mon-to1 07:00 mon-from2 13:00 mon-to2 20:00") } }

Das wird wohl ein Dummy sein. Aber wie "starte" ich den?

Und danke noch hierfür:
Zitatinclude ./prog_fht80b.cfg

Zrrronggg!

Du startest den Dummy gar nicht. Der Dummy ist eine Art Schalter. Der kann auf ON oder OFF sein (oder eigentlich auf beliebige Werte, aber hier ist on und off sinnvoll)


"FHT_Update" ist der hier der dummy

Den legst du so an:

define FHT_Update dummy
attr FHT_Update webcmd on:off
attr FHT_Update room Blunz


Dann findest du den auf der Weboberfläche im Zimmer Blunz.


Und "define hzg_set_1 at *17:00:00" starte jeden Tag um 17 Uhr und testet, ob dieser Schalter/dummy  auf ON ist. Und wenn ja wird die Änderung gesendet und wenn nicht eben nicht.

Und die Tempänderung des letzten Raumes schaltet den wieder aus:
... 2 20:00 ;; set FHT_Update off


Dummys sind also prima Methoden, Aktionen in FHEM davon abhängig zu machen, ob irgendwas geschaltet ist oder nicht oder bestimmte Werte vorliegen oder nicht.

Also so Sachen wie:
- Nur heizen wenn dummy "Frühschicht" auf ON ist.
- Heizung nicht anmchen wenn Dummy "Jahrezeit"  auf SOMMER steht.

Und all  so Kram

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

Hallo Zrrronggg!

Vielen Dank für deine Erklärungen zum Dummy.

ZitatOb du die fhem.cfg bearbeitest oder den Dummy betätigst - ich weiß was mir zumindest lieber wäre ;-)

Jetzt sehe ich es hunderprozentig genauso wie du, dass der Dummy die deutlich elegantere Methode ist das Update zu starten.

Danke für die Hilfe in den letzten Tagen :-)

romarira

Noch eine Ergänzung zum Include-Befehl.

Der müsste in diesem Fall so lauten:

include ./FHEM/prog_fht80b.cfg

Puschel74

Hallo und guten morgen,

das kommt drauf an wo du die Dateien speicherst ;-)

include ./Konfig/Erdgeschoss.cfg

ist es bei mir ;-)

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.

romarira

Zitat von: Puschel74 schrieb am Mi, 20 März 2013 09:17das kommt drauf an wo du die Dateien speicherst ;-)

include ./Konfig/Erdgeschoss.cfg

ist es bei mir ;-)

Hallo Puschel74,

da habe ich es mir ganz einfach gemacht. Einfach eine aufgelistete Datei mit "Save as" unter dem gewünschten Namen gespeichert, die aufgerufen, den Inhalt gelöscht und meinen Inhalt eingefügt - und natürlich neue abgespeichert.

Und anscheinend speichert FHEM die in dem von mir beschriebenen Verzeichnis.

... ich wusste nämlich nicht, wie ich eine Datei von der Festplatte auf die Fritzbox in eine "Wahlverzeichnis" kopiere :-(