FHEM > Automatisierung

Ein seltsames Phänomen mit Makros und Intertechno

(1/2) > >>

sumacova:
Liebe FHEM-Gemeinde
Zuerst grossen Dank an die Entwickler dieses tollen Produkts und an die vielen Helfer für die vielseitige Unterstützung und die vielen Verbesserungen!
Ich betreibe FHEM nun ca. 3 Monate zuverlässig und problemlos auf einem Himbeertörtchen (Raspberry Pi). Steuere/überwache die Temperatur mehrerer Heizkörper in 3 Zimmern und schalte Strom und Licht zeitgesteuert mit Intertechno Schaltern. Hier nun das Phänomen, bei welchem ich nicht schlau werde. Die Konfiguration der Schalter und Makros habe ich von einer Vorlage kopiert.
------------
Funktioniert:
define warmwasser.nmittag.wk at *13:00:00 {if (!($we)) {fhem("trigger n.warmwasser.auto on-till 13:55")} }
define n.warmwasser.auto notify n.warmwasser.auto { if ($value{"warmwasser.schalt.S"} eq "auto") { fhem("set warmwasser.schalt %") } }
------------
Funktioniert nicht:
define wasserbett.nacht at *21:30 trigger {fhem("n.wasserbett.auto on-till 06:00")}
define n.wasserbett.auto notify n.wasserbett.auto { if ($value{"wasserbett.schalt.S"} eq "auto") { fhem("set wasserbett.schalt %") } }
------------
Es gibt keine Fehlermeldung, kein Log - nichts.
Wenn ich einen Fehler einbaue (on-till ohne Zeitangabe, On-till 06:) erfolgt eine Fehlermeldung, wenn ichs korrigiere passiert wieder nichts.
Gibt es eine Beschränkung der Anzahl, hat jemand Erfahrungen gemacht oder gibt es andere Suchmöglichkeiten?
Ich wäre für Eure Hinweise sehr dankbar. Bei Bedarf lade ich das komplette Fhem.cfg hoch.

Freundliche Grüsse aus der Schweiz
Martin

bsl02:
Hallo Martin,

>Funktioniert nicht:
>define wasserbett.nacht at *21:30 trigger {fhem("n.wasserbett.auto on-till 06:00")}...

Teste bitte mal die Zeit in der langen Version mit *21:30:00 trigger... einzugeben, wie bei Deinem Warmwasser auch.

Wobei ich gerade sehe, das es auch mit "kurzer" Uhrzeit gehen sollte:
Commandref /Notes: on-till requires an absolute time in the "at" format (HH:MM:SS, HH:MM or { <perl code> }, where the perl-code returns a time specification).

Am Rande bemerkt: Mein WaBett lasse ich ca. 4 Stunden vorher aufheizen, kürzer traue ich mich nicht.

Gruß und ein rechtzeitig temperiertes Wasserbett,
Stefan

rudolfkoenig:
> ... trigger {fhem("n.wasserbett.auto on-till 06:00")}

Eigentlich muesste das die Fehlermeldung

Please define {fhem("n.wasserbett.auto first

liefern, da trigger sein Argument nicht als Perl Skript interpretiert. Selbst wenn, wuerde das o.g. nicht sehr sinnvoll sein. Ich empfehle die Argumente (d.h. das was ausgefuehrt werden soll) von at/notify in der Kommandozeile direkt zu testen, da sieht man direkter die Fehlermeldungen.

sumacova:
Ciao Stefan
Danke für die prompte Antwort. In der Übersicht unter AT bekomme ich als Next: 21:30:00 angezeigt, deshalb vermute ich die Startzeit funktioniert auch mit 4 Stellen, aber du hast recht, die anderen Zeiten habe ich 6-stellig eingetragen - ich versuchs. Ansonsten habe ich wirklich keine Ahnung weshalb dies ohne Fehlerangabe einfach nicht funktioniert.
Apropos Wasserbett: Bisher war es permanent eingeschaltet - mit Temperatur-Regler natürlich - da ein Wasserbett jedoch pro Jahr 500 kWh braucht x2 = 1000kWh/Jahr dachte ich es lohnt sich dieses per Nacht-Tarif zu beheizen, deshalb 21:30 Uhr :)

Gruss Martin

sumacova:
Stimmt, würde keinen Sinn machen, wenns nicht definiert wäre......

Das ganze simuliert Zeitschaltuhren, wo ich Lampen/Geräte etc. zu verschiedenen Zeiten schalten kann. Damit's pflegeleicht ist, fragt jeder at Befehl einen (auto/man) Schalter ab, damit das Ganze einfach ein und ausgeschaltet werden kann.
Hier die Definitionen:
IT Schalter:
define wasserbett.schalt IT L5 FF F0
attr wasserbett.schalt IODev CUL_0
attr wasserbett.schalt devStateIcon on:Heizung_Hauptschalter.on off:Heizung_Hauptschalter.off
attr wasserbett.schalt icon icoLichtHaus
attr wasserbett.schalt model itswitch
attr wasserbett.schalt room 30_Schalter
Auto/Man Dummy Schalter
define wasserbett.schalt.S dummy
attr wasserbett.schalt.S devStateIcon auto:Restart man:StandBy
attr wasserbett.schalt.S eventMap on:auto off:man
attr wasserbett.schalt.S room 30_Schalter
attr wasserbett.schalt.S setList state:auto,man
attr wasserbett.schalt.S webCmd state
define n.wasserbett.auto notify n.wasserbett.auto { if ($value{"wasserbett.schalt.S"} eq "auto") { fhem("set wasserbett.schalt %") } }
define wasserbett.nacht at *21:30 trigger {fhem("n.wasserbett.auto on-till 06:00")}

Die ganze Geschichte mit "Warmwasser" funktioniert

Sogar die einfach Variante klappt nicht:
define n.wasserbett.man notify n.wasserbett.man set wasserbett.schalt %
trigger n.wasserbett.man on-till 06:00 = keine Reaktion
trigger n.wasserbett.man on-till 06 = Fehlermeldung
n.wasserbett.man return value: Wrong timespec 06: either HH:MM:SS or {perlcode}

Was mich beunruhigt, 5 Schalter sind nach gleichem Muster aufgebaut nur dieser funktioniert nicht.
Wenn jemand grundsätlich eine bessere Lösung hat, bin ich dankbarer Abnehmer.

Herzlichen Dank

Gruss Martin

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln