Manuell und Zeitgesteuerte Heizungssteuerung

Begonnen von Holzwurmssj, 29 März 2016, 17:31:03

Vorheriges Thema - Nächstes Thema

Holzwurmssj

Hallo,

ich habe ein Raspberry Pi 2 mit Raspbian und FHEM drauf.
Dazu eine Relaisplatine und WiringPi um die Relais von FHEM zu steuern.
An den Relais hängen Stellantriebe um meine Fußbodenheizung Ein und Aus zu schalten.

Ich kann die Antriebe per Hand Ein und Aus schalten.

Nun würde ich gerne eine Zeitsteuerung einbauen.
Die Ventile sollen abhängig von der aktuellen Zeit jeweils morgens und abends zu variablen Zeiten Ein/Aus geschaltet werden.

Um die Zeiten zu ändern habe ich dummys erstellt.
define Kueche_Zeit_Ein_1 dummy
attr Kueche_Zeit_Ein_1 webCmd state
attr Kueche_Zeit_Ein_1 setList state:time
attr Kueche_Zeit_Ein_1 room 1.0_Steuerung
attr Kueche_Zeit_Ein_1 group Heizungssteuerung
attr Kueche_Zeit_Ein_1 sortby 1
attr Kueche_Zeit_Ein_1 alias Küche Ein


Wie kann ich nun mit dem "at" Befehlt die GPIOs jeweils ein/aus schalten?
Ich habe den folgenden Code gefunden, allerdings scheint dieser nicht zu funktionieren. Es gibt jedoch auch keine Fehlermeldung:
define at_Kueche_Zeit_Ein_1 at *00:00 {set GPIO_7 on}

define ntfy_Kueche_Zeit_Ein_1 notify Kueche_Zeit_Ein_1 { fhem("modify Kueche_Zeit_Ein_1 *$EVENT") }


Hat jemand ein ähnliches Projekt laufen oder kann mir sonst helfen?


Holzwurmssj

Zitat von: linuxpaul am 29 März 2016, 18:14:06
hilft das wiki?
http://www.fhemwiki.de/wiki/Raspberry_Pi:_GPIOs_schalten

:)
linuxpaul

Vielen Dank. Aber das Schalten der GPIOs ist nicht das Problem. Die Frage ist eher wie ich den Status der GPIOs ändern kann mit dem at Befehl abhängig von einer Uhrzeit die im dummy steht.

MadMax-FHEM

Dein 'at' sofern der 'set' Befehl funktioniert (lässt sich über das eingabefeld leicht testen) schaltet jeden Tag um Null Uhr den GPIO ein.

Der Notify reagiert wohl auf jede Änderung des Dummy aber der 'modify' Befehl macht so keinen Sinn.
Er modifiziert irgendwas am Dummy...
...soll das so sein?

Kenne den 'modify' Befehl nicht (bzw. noch nicht verwendet) aber laut commandref/wiki dient er zum "Manipulieren" von Notify und at...
...aber nicht für Dummy!?

Evtl. ein Notify welcher ausschließlich auf Zeiteinstellungen am Dummy reagiert und dann den entsprechenden 'at' Befehl erzeugt/manipuliert...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Holzwurmssj

Ich habe es jetzt mal angepasst.
Jetzt muss ich jedoch immer save config klicken um den Wert zu übernehmen.

Und das "at" scheint er auch nicht auszuführen.

define at_Kueche_Zeit_Ein_1 at *19:19 {set GPIO_2 on}

define ntfy_Kueche_Zeit_Ein_1 notify Kueche_Zeit_Ein_1 { fhem("modify at_Kueche_Zeit_Ein_1 *$EVENT") }

define at_Kueche_Zeit_Aus_1 at *19:25 {set GPIO_2 off}

define ntfy_Kueche_Zeit_Aus_1 notify Kueche_Zeit_Aus_1 { fhem("modify at_Kueche_Zeit_Aus_1 *$EVENT") }

Ellert

Mit einem DOIF geht es recht einfach:

define Kueche_di DOIF ([[Kueche_Zeit_Ein]]) (set GPIO_2 on)
DOELSEIF ([[Kueche_Zeit_Aus]]) (set GPIO_2 off)


siehe auch http://fhem.de/commandref_DE.html#DOIF_Zeitsteuerung

Holzwurmssj

Zitat von: Ellert am 29 März 2016, 19:44:50
Mit einem DOIF geht es recht einfach:

define Kueche_di DOIF ([[Kueche_Zeit_Ein]]) (set GPIO_2 on)
DOELSEIF ([[Kueche_Zeit_Aus]]) (set GPIO_2 off)


siehe auch http://fhem.de/commandref_DE.html#DOIF_Zeitsteuerung

Das scheint sich gut für mein Projekt zu eignen.
Was ist der Unterschied zwischen DOIF und DOELSEIF?
Weil ich bei Eingabe in die .cfg einen Fehler bei DOELSEIF bekomme.
Erreiche ich das gleiche, wenn ich mehrere DOIF parallel habe?

MadMax-FHEM

DOIF: wenn dann
DOELSEIF: wenn nicht WAS BEI ELSE WAR aber wenn dann

Alles in eine Zeile geschrieben!?


define Kueche_di DOIF ([[Kueche_Zeit_Ein]]) (set GPIO_2 on) DOELSEIF ([[Kueche_Zeit_Aus]]) (set GPIO_2 off)


oder


define Kueche_di DOIF ([[Kueche_Zeit_Ein]]) (set GPIO_2 on) \
DOELSEIF ([[Kueche_Zeit_Aus]]) (set GPIO_2 off)


müsste auch gehen...
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Holzwurmssj

Zitat von: MadMax-FHEM am 29 März 2016, 21:06:46


define Kueche_di DOIF ([[Kueche_Zeit_Ein]]) (set GPIO_2 on) \
DOELSEIF ([[Kueche_Zeit_Aus]]) (set GPIO_2 off)


Das funktioniert. Er zeigt auch an, dass der cmd1 bzw. 2 ausgeführt wird. Allerdings passiert nichts.
Wenn ich den Schalter mit der gleichen Anweisung drücke schaltet er aber.

Wie lange wird ein notify denn ausgeführt?
Da ich den Schalter so ausgeführt habe:
define d_NGPIO_2 notify d_GPIO_2 { \
if ("$EVENT" ne "off") {\
  fhem("set GPIO_2 on")\
} else {\
  fhem("set GPIO_2 off")\
}\

MadMax-FHEM

Zitat
Das funktioniert. Er zeigt auch an, dass der cmd1 bzw. 2 ausgeführt wird. Allerdings passiert nichts.

Wo siehst du das?
Logdatei??

Zitat
Wenn ich den Schalter mit der gleichen Anweisung drücke schaltet er aber.
Schalter? Drücken?

Soll das heißen: set GPIO_2 on bzw. set GPIO_2 off in der "commandzeile" funktioniert nur beim DOIF/DOELSEIF nicht???

Verstehe nicht so ganz worauf du hinaus willst, sorry...
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Holzwurmssj

Ich hatte Dummy schalter erstellt um das Manuelle Schalten zu erreichen.

Das Problem hat sich allerdings erledigt. mit dem DOELSEIF funktioniert jetzt auch der Befehl.

Ist es möglich gleichzeitig in eine neue Log Datei zu schreiben (gleichzeitig mit dem Schaltbefehl)?

MadMax-FHEM

sowas wie


define GPIO_2_Log FileLog ./log/GPIO_2_Log-%Y-%m.log GPIO_2(on|off)


könnte das evtl. machen...
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)