FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Thema gestartet von: Per am 15 April 2016, 18:28:07

Titel: manuelle / automatische Bedienung
Beitrag von: Per am 15 April 2016, 18:28:07
Nachdem doch einige (u.a. ich ;)) Probleme mit den Unterscheiden zwischen manueller und automatischer Bedienung von Geräten haben, stelle ich mal den Versuch einer Lösung vor:

54_MANU.pm

Aufruf einfach mit
define <name> MANU <targetdevice>
Ändert sich der Status des <targetdevice> (am Gerät oder direkt geändert), geht das Modul von einer manuellen Betätigung aus, wird über Modul betätigt, von einer automatischen.
Über folgende Attribute lässt sich das Modul steuern:
TimerAuto und TimerEnd können jeweils 0 sein, TimerEnd startet erst nach TimerAuto.
Beide Zeiten werden als reading abgelegt, TimerEnd dürfte aber, als InternalTimer nicht rebootfest sein (falls Fhem da nichts vorgesehen hat).

Mittels
Cmd kipp,100|zu,locked
TimerAuto 300
TimerEnd 300

kann man z.B. ein Fenster 10 lang geöffnet lassen, wobei es 5 min mindestens offen ist.
Bei meinem WinMatic habe ich ohnehin
attr .*.Window.cul.Win eventMap /level lock ignore 100:zu/level 100 ignore 100:kipp/
attr .*.Window.cul.Win webCmd zu:kipp

definiert gehabt, da passte das.
Titel: Antw:manuelle / automatische Bedienung
Beitrag von: Per am 15 April 2016, 23:37:02
Hm, ein Problem machen z.Zt. die GHoma, weil die neben dem state noch ein source liefern. Aber eigentlich sollte das abgefangen werden, weiss nicht, warum das durchkommt.

Tante Edit hat die Ursache: Regex-Fehler.
Muss noch nen bisschen testen. Dann kommt die Version 0.9a ;)
Titel: Antw:manuelle / automatische Bedienung
Beitrag von: Per am 16 April 2016, 22:53:37
So, o.a. Fehler beseitigt, dazu kommt ein neuer Befehl:
set XXX auto
setzt auf den Automatik-State, auch innerhalb der TimerAuto-Zeit. Die Timer werden dabei zurückgesetzt.

PS: die aktuelle Version findet sich in Post 1.
Titel: Antw:manuelle / automatische Bedienung
Beitrag von: Per am 22 April 2016, 10:49:36
Neue Version: benötigt kein set mehr, sondern kann andere Devices (Thermometer?) triggern.
set geht natürlich immer noch.
Leider eine kleine Inkompatibilität zum Vorgänger: statt Cmd on(,ein)|off(,aus) muss jetzt Cmd off(,aus):on(,ein)(:x2(,y2) geschrieben werden.
Grund sind interne Vereinfachung und Vorbereitungen zu Erweiterungen.
Der erste Term ist die Grundstellung (aus, zu...) und wird bei Problemen oder Fehlern angesteuert. Eine Notbeleuchtung sollte da natürlich an/on/ein haben ;).
Aktuelle Version wie immer im ersten Beitrag.
Titel: Antw:manuelle / automatische Bedienung
Beitrag von: reinni123 am 01 Oktober 2017, 01:38:10
Nach Umzug auf ein frisches Raspbian Stretch System funktioniert das Modul nicht mehr. Ich bekomme folgende Fehlermeldungen:

017.10.01 00:56:50 1: reload: Error:Modul 54_MANU deactivated: Can't use a hash as a reference at ./FHEM/54_MANU.pm line 136 <$fh> line 497.
2017.10.01 00:56:50 0: Can't use a hash as a reference at ./FHEM/54_MANU.pm line 136, <$fh> line 497.
2017.10.01 00:56:50 1: PERL WARNING: Subroutine MANU_Initialize redefined at ./FHEM/54_MANU.pm line 22, <$fh> line 521.
2017.10.01 00:56:50 1: PERL WARNING: Subroutine MANU_Define redefined at ./FHEM/54_MANU.pm line 37, <$fh> line 521.
2017.10.01 00:56:50 1: PERL WARNING: Subroutine MANU_Undef redefined at ./FHEM/54_MANU.pm line 52, <$fh> line 521.
2017.10.01 00:56:50 1: PERL WARNING: Subroutine MANU_Attr redefined at ./FHEM/54_MANU.pm line 56, <$fh> line 521.
2017.10.01 00:56:50 1: PERL WARNING: Subroutine MANU_Set redefined at ./FHEM/54_MANU.pm line 91, <$fh> line 521.
2017.10.01 00:56:50 1: PERL WARNING: Subroutine MANU_Get redefined at ./FHEM/54_MANU.pm line 106, <$fh> line 521.


Hab ich was vergessen zu installieren?

Titel: Antw:manuelle / automatische Bedienung
Beitrag von: mrbreil am 14 Oktober 2018, 21:09:42
Ich würde das Modul auch gerne mal ausprobieren. Die Beschreibung klingt genau nach dem was ich Suche. Leider bekomme ich genau den selben Fehler.
In diesem Thread ist zwar schon lange nix mehr passiert, aber vielleicht habe ich ja Glück.
Vielleicht hat ja der Modulautor auch einen anderen Weg gefunden diese Funktion abzubilden, bitte teile deine Weisheit mit uns  ;).

Gruß Christian
Titel: Antw:manuelle / automatische Bedienung
Beitrag von: CoolTux am 15 Oktober 2018, 09:01:45
line 136 ändern in

my $TransEvent = %{$Cmd_hash->{$event}};

Titel: Antw:manuelle / automatische Bedienung
Beitrag von: betateilchen am 15 Oktober 2018, 13:16:53
Zitat von: reinni123 am 01 Oktober 2017, 01:38:10
Nach Umzug auf ein frisches Raspbian Stretch System funktioniert das Modul nicht mehr. Ich bekomme folgende Fehlermeldungen:

....

Hab ich was vergessen zu installieren?

Nein, die Meldungen resultieren aus schlechtem Programmierstil.
Titel: Antw:manuelle / automatische Bedienung
Beitrag von: mrbreil am 15 Oktober 2018, 14:26:44
Zitat von: CoolTux am 15 Oktober 2018, 09:01:45
line 136 ändern in

my $TransEvent = %{$Cmd_hash->{$event}};


Hallo Cooltux, danke das du dich meiner annimmst. Es hat aber leider nicht funktioniert.

2018.10.15 14:24:22 1: reload: Error:Modul 54_MANU deactivated:
Global symbol "$Cmd_hash" requires explicit package name (did you forget to declare "my $Cmd_hash"?) at ./FHEM/54_MANU.pm line 136.

2018.10.15 14:24:22 0: Global symbol "$Cmd_hash" requires explicit package name (did you forget to declare "my $Cmd_hash"?) at ./FHEM/54_MANU.pm line 136.
Titel: Antw:manuelle / automatische Bedienung
Beitrag von: CoolTux am 15 Oktober 2018, 15:08:15
Sorry mein Fehler


my $TransEvent = $Cmd_hash{$event};


Der Zeiger hatte mich irritiert.
Titel: Antw:manuelle / automatische Bedienung
Beitrag von: mrbreil am 16 Oktober 2018, 10:41:32
Vielen Dank CoolTux.  Das mit dem Zeiger kapier ich zwar gerade nicht, aber es funktioniert.
Werde jetzt testen, es das so macht wie ich es mir Vorstelle.

Gruß Christian