Markisen Steuerung über SOMFY basierend auf Temperatur.

Begonnen von tomleitner, 12 April 2016, 14:42:15

Vorheriges Thema - Nächstes Thema

tomleitner

Hallo,

Wir haben einen kleinen Wintergarten mit einer Außenmarkise. Ich will nun die Markise automatisch ausfahren sobald die Temperatur im Wintergarten mehr als 20 Grad erreicht hat. Aktuell habe ich damit folgende Probleme:

1.) Die SOMFY Steuerung funktioniert zwar, allerdings nicht zuverlässig. Ich habe einen CUL868. Meine Idee ist nun einen CUL433 mit 5dBi Antenne zu kaufen um eine bessere Reichweite zu erhalten. Ist das der richtige Weg?

2.) Seit dem letzten Update gibt 10_SOMFY.pm immer folgende Meldungen der folgenden Art aus:

2016.04.09 07:57:48 1: PERL WARNING: Argument "open" isn't numeric in addition (+) at ./FHEM/10_SOMFY.pm line 956.

ist das bedenklich?

3.) Ich lese die Temperatur via USBWX Modul ein. Aktuell habe ich folgenden Code für die Temperatursteuerung:

# Wintergarten Temperaturregelung
define WintergartenThermostat THRESHOLD USBWX_Wintergarten:temperature:5:20 Markise_West
attr WintergartenThermostat state_cmd1_gt set Markise_West on ;; sleep 1 ;; set Markise_West on ;; sleep 1 ;; set Markise_West on
attr WintergartenThermostat state_cmd2_lt set Markise_West off ;; sleep 1 ;; set Markise_West off ;; sleep 1 ;; set Markise_West off
attr WintergartenThermostat state_format _m _dv _sc
define Markise_West_Off at *19:30:00 set Markise_West off ;; sleep 5 ;; set Markise_West off ;; sleep 5 ;; set Markise_West off


Was ist hier das Problem? Das Wiederholen der Kommandos war notwendig weil es eben recht unzuverlässig funktioniert.

Danke schon mal für jedwede Tipps & Ciao // Tom

Ellert

zu 1.): Das kommt auf die erforderliche Reichweite und dazwischen liegenden Hindernissen an. Ein nanoCul433 als Selbstbau müsste zum probieren ausreichen und kostet ca. 15 Euro. Bei größeren Reichweiten würde ich einen abgesetzten FHEM-Server und FHEM2FHEM nutzen, mit nanoCUL 433 Mhz und WLAN bzw. LAN Anbindung oder den nanoCUL als Repeater nutzen, siehe http://fhem.de/commandref.html#CUL_RFR
Manchmal hilft auch ein Standortwechsel des Senders.

Wenn Du die Suche bemühst, gibt es noch mehr Hinweise, hier ein Beispiel: https://forum.fhem.de/index.php/topic,36090.msg284030.html#msg284030

zu 2.): Wenn es funktioniert, dann nicht.

zu 3.): Wenn Du Code schreibst, dann setze ihn bitte in Code-Tags. Die Definitionen könntest Du auch in einem DOIF zusammenfassen, siehe http://fhem.de/commandref_DE.html#DOIF , das ist natürlich Geschmacksache.

tomleitner

Danke für Deine Antwort.

zu 1.) Die aktuelle Reichweite ist eben zu gering ... daher erwarte ich mir durch den Umstieg auf CUL433 eine Verbesserung. Einen abgesetzten CUL hab ich schon einmal realisiert mit ser2net auf dem remote Server. Das ist meine Backup Lösung wenn der CUL433 nichts hilft.

zu 3.) Werde das mit den Code-Tags machen. Allerfings habe ich das Gefühl der Code funktioniert nicht ... ich vermute dass die Zeile
attr WintergartenThermostat state_format _m _dv _sc
das Problem ist und falsche Werte für den Threshold Vergleich herangezogen werden. Wie kann ich das debuggen?

Thx // Tom

Ellert

Bei THRESHOLD kann ich nicht helfen, das benutze ich nicht.

tomleitner

Ich habe das jetzt mit "DOIF" gemacht -- das THRESHOLD Ding funktioniert einfach nicht -- oder ich benutze es falsch. Wie auch immer, der  Code aktuell ist:

define WintergartenThermostat DOIF ([USBWX_Pflanzenzelt:temperature] > 20) \
        (set Markise_West on  ;; sleep 2 ;; set Markise_West on  ;; sleep 2 ;; set Markise_West on ) \
    DOELSEIF ([USBWX_Pflanzenzelt:temperature] < 15) \
        (set Markise_West off ;; sleep 2 ;; set Markise_West off ;; sleep 2 ;; set Markise_West off )

Bleibt nur noch die Frage: Kann ich mir eigene Befehle (oder Macros?) definieren um Befehlsgruppen wie

        set Markise_West on  ;; sleep 2 ;; set Markise_West on  ;; sleep 2 ;; set Markise_West on

zu einem Befehl zusammenzufassen den ich dann im DOIF benutzen kann?

Thx // Tom

Ellert

Hat die Markise ein Attribut "repeat" oder "ITrepetition" damit könntest Du die Wiederholungen durchführen.

Im DOIF kannst Du "sleep" durch das Attribut "wait" ersetzen oder mit "repeatcmd" Befehle wiederholen und repeatsame die Wiederholung begrenzen.

http://fhem.de/commandref_DE.html#DOIF_wait
http://fhem.de/commandref_DE.html#DOIF_repeatcmd
http://fhem.de/commandref_DE.html#DOIF_repeatsame

also in Deinem Fall:
attr WintergartenThermostat repeatcmd 2:2
attr WintergartenThermostat repeatsame 3:3