Neues Modul: 22_HOMEMODE.pm - grundlegende Automationen und mehr

Begonnen von DeeSPe, 07 Januar 2017, 15:59:43

Vorheriges Thema - Nächstes Thema

DeeSPe

Ich bin gestern über ein allgemeines Problem gestolpert.
Obwohl der ddclient bei mir ordnungsgemäß eingerichtet ist, stimmte die IP Adresse nicht mehr.
Ergo: Zugriff nicht möglich. >:(

Darum habe ich mir gestern kurzer Hand einen Public-IP-Check in eine (non-blocking) Funktion gegossen und als "get <name> public-ip" in HOMEMODE eingebaut.
Diese Funktion wird im Moment automatisch beim Setzen von daytime mit ausgeführt. Somit ist sichergestellt dass alle paar Stunden die IP aktualisiert wird.
Weitergehend habe ich auch ein Attribut "HomeCMDpublic-ip-change" erstellt in welchem ich mir dann die geänderte IP per msg zusenden lasse:
attr Home HomeCMDpublic-ip-change msg Neue öffentliche IP-Adresse: [%SELF%:public_ip]
Das Senden der msg passiert natürlich bei jedem IP-Wechsel nur einmalig.

Nun meine Fragen:

  • Besteht allgemeines Interesse diesen Public-IP-Check fest in HOMEMODE zu integrieren?
  • Wenn ja zu 1., wie sollte die Aktualisierung erfolgen? Ich stelle mir das evtl. so vor: Ein Attribut HomePublicIpCheckInterval, welches den Default Wert 0 hat, somit wird kein Check ausgeführt. Bei Bedarf kann man dieses Attribut auf einen beliebigen Wert in Sekunden setzen, nach denen der Check wieder ausgeführt werden soll.

Wie ist Eure Meinung dazu?

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

l2r

finde ich gut so wie du es vorschlägst!

Gruß Michael
Wissen ist Macht.
Ich weiß nix.
Macht nix.

Schlimbo

Hallo Dan,
Zitat von: DeeSPe am 01 März 2017, 15:16:03
Ich bin gestern über ein allgemeines Problem gestolpert.
Obwohl der ddclient bei mir ordnungsgemäß eingerichtet ist, stimmte die IP Adresse nicht mehr.
Ergo: Zugriff nicht möglich. >:(
Das hört sich aber mehr nach einem Problem mit deinem DDNS Anbieter an, denn genau das ist ja die Aufgabe von DDNS.
Mit deinem workaround bekommst du dann zwar deine Externe IP Adresse zugeschickt, aber über deine DDNS Adresse kannst du dann ja trotzdem nicht zugreifen.

Ob das Public-IP handling wirkliche Aufgabe eines "HOME-Moduls" ist, bin ich mir momentan auch noch etwas unschlüssig.
Die Externe IP Adresse liefert bei mir das FritzBox Modul und könnte zur Not hier ein Notify triggern, bis jetzt hatte ich aber noch keine Probleme mit nicht aktuellem DDNS.

Wenn die Integration aber von einigen benötigt und als hilfreich angesehen wird, soll es mit auch recht sein ;)
Gruß
Schlimbo







DeeSPe

Zitat von: Schlimbo am 01 März 2017, 21:47:27
Hallo Dan,Das hört sich aber mehr nach einem Problem mit deinem DDNS Anbieter an, denn genau das ist ja die Aufgabe von DDNS.

Es stelle sich heraus dass die Ursache ein längerer Stromausfall war.
Also alles gut mit meinem DDNS...

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Spezialtrick

Nach einem FHEM Neustart finden sich viele PERL Warnings bzgl. des Moduls im Log:


2017.03.03 21:25:48 1: PERL WARNING: Subroutine HOMEMODE_updateInternals redefined at ./FHEM/22_HOMEMODE.pm line 312.
2017.03.03 21:25:48 1: PERL WARNING: Subroutine HOMEMODE_GetUpdate redefined at ./FHEM/22_HOMEMODE.pm line 475.
2017.03.03 21:25:48 1: PERL WARNING: Subroutine HOMEMODE_alarmTriggered redefined at ./FHEM/22_HOMEMODE.pm line 703.
2017.03.03 21:25:48 1: PERL WARNING: Subroutine HOMEMODE_makeHR redefined at ./FHEM/22_HOMEMODE.pm line 727.
2017.03.03 21:25:48 1: PERL WARNING: Subroutine HOMEMODE_alarmTampered redefined at ./FHEM/22_HOMEMODE.pm line 758.
2017.03.03 21:25:48 1: PERL WARNING: Subroutine HOMEMODE_RESIDENTS redefined at ./FHEM/22_HOMEMODE.pm line 779.
2017.03.03 21:25:48 1: PERL WARNING: Subroutine HOMEMODE_Attributes redefined at ./FHEM/22_HOMEMODE.pm line 888.
2017.03.03 21:25:48 1: PERL WARNING: Subroutine HOMEMODE_userattr redefined at ./FHEM/22_HOMEMODE.pm line 1009.
2017.03.03 21:25:48 1: PERL WARNING: Subroutine HOMEMODE_cleanUserattr redefined at ./FHEM/22_HOMEMODE.pm line 1095.
2017.03.03 21:25:48 1: PERL WARNING: Subroutine HOMEMODE_replacePlaceholders redefined at ./FHEM/22_HOMEMODE.pm line 1354.
2017.03.03 21:25:48 1: PERL WARNING: Subroutine HOMEMODE_serializeCMD redefined at ./FHEM/22_HOMEMODE.pm line 1499.
2017.03.03 21:25:48 1: PERL WARNING: Subroutine HOMEMODE_ReadingTrend redefined at ./FHEM/22_HOMEMODE.pm line 1525.
2017.03.03 21:25:48 1: PERL WARNING: Subroutine HOMEMODE_WeatherTXT redefined at ./FHEM/22_HOMEMODE.pm line 1548.
2017.03.03 21:25:48 1: PERL WARNING: Subroutine HOMEMODE_ForecastTXT redefined at ./FHEM/22_HOMEMODE.pm line 1572.
2017.03.03 21:25:48 1: PERL WARNING: Subroutine HOMEMODE_CheckIfIsValidDevspec redefined at ./FHEM/22_HOMEMODE.pm line 1611.
2017.03.03 21:25:48 1: PERL WARNING: Subroutine HOMEMODE_execUserCMDs redefined at ./FHEM/22_HOMEMODE.pm line 1624.
2017.03.03 21:25:48 1: PERL WARNING: Subroutine HOMEMODE_execCMDs redefined at ./FHEM/22_HOMEMODE.pm line 1636.
2017.03.03 21:25:48 1: PERL WARNING: Subroutine HOMEMODE_AttrCheck redefined at ./FHEM/22_HOMEMODE.pm line 1651.
2017.03.03 21:25:48 1: PERL WARNING: Subroutine HOMEMODE_DayTime redefined at ./FHEM/22_HOMEMODE.pm line 1668.
2017.03.03 21:25:48 1: PERL WARNING: Subroutine HOMEMODE_SetDaytime redefined at ./FHEM/22_HOMEMODE.pm line 1679.
2017.03.03 21:25:48 1: PERL WARNING: Subroutine HOMEMODE_SetSeason redefined at ./FHEM/22_HOMEMODE.pm line 1698.
2017.03.03 21:25:48 1: PERL WARNING: Subroutine HOMEMODE_hourMaker redefined at ./FHEM/22_HOMEMODE.pm line 1721.
2017.03.03 21:25:48 1: PERL WARNING: Subroutine HOMEMODE_addSensorsuserattr redefined at ./FHEM/22_HOMEMODE.pm line 1734.
2017.03.03 21:25:48 1: PERL WARNING: Subroutine HOMEMODE_TriggerState redefined at ./FHEM/22_HOMEMODE.pm line 1781.
2017.03.03 21:25:48 1: PERL WARNING: Subroutine HOMEMODE_name2alias redefined at ./FHEM/22_HOMEMODE.pm line 1983.
2017.03.03 21:25:48 1: PERL WARNING: Subroutine HOMEMODE_ContactOpenCheck redefined at ./FHEM/22_HOMEMODE.pm line 1995.
2017.03.03 21:25:48 1: PERL WARNING: Subroutine HOMEMODE_ContactOpenCheckAfterModeChange redefined at ./FHEM/22_HOMEMODE.pm line 2075.
2017.03.03 21:25:48 1: PERL WARNING: Subroutine HOMEMODE_ContactCommands redefined at ./FHEM/22_HOMEMODE.pm line 2089.
2017.03.03 21:25:48 1: PERL WARNING: Subroutine HOMEMODE_MotionCommands redefined at ./FHEM/22_HOMEMODE.pm line 2117.
2017.03.03 21:25:48 1: PERL WARNING: Subroutine HOMEMODE_EventCommands redefined at ./FHEM/22_HOMEMODE.pm line 2142.
2017.03.03 21:25:48 1: PERL WARNING: Subroutine HOMEMODE_HomebridgeMapping redefined at ./FHEM/22_HOMEMODE.pm line 2170.
2017.03.03 21:25:48 1: PERL WARNING: Subroutine HOMEMODE_calcPowerAndEnergy redefined at ./FHEM/22_HOMEMODE.pm line 2192.
2017.03.03 21:25:48 1: PERL WARNING: Subroutine HOMEMODE_calcPowerOrEnergy redefined at ./FHEM/22_HOMEMODE.pm line 2208.
2017.03.03 21:25:48 1: PERL WARNING: Subroutine HOMEMODE_Weather redefined at ./FHEM/22_HOMEMODE.pm line 2220.
2017.03.03 21:25:48 1: PERL WARNING: Subroutine HOMEMODE_Twilight redefined at ./FHEM/22_HOMEMODE.pm line 2238.
2017.03.03 21:25:48 1: PERL WARNING: Subroutine HOMEMODE_Icewarning redefined at ./FHEM/22_HOMEMODE.pm line 2280.
2017.03.03 21:25:48 1: PERL WARNING: Subroutine HOMEMODE_CheckHolidayDevices redefined at ./FHEM/22_HOMEMODE.pm line 2306.
2017.03.03 21:25:48 1: PERL WARNING: Subroutine HOMEMODE_HolidayEvents redefined at ./FHEM/22_HOMEMODE.pm line 2318.
2017.03.03 21:25:48 1: PERL WARNING: Subroutine HOMEMODE_devStateIcon redefined at ./FHEM/22_HOMEMODE.pm line 2345.


Kann das jemand bestätigen oder liegt der Fehler in einem System?
FHEM - Debmatic - Zigbee2MQTT - Homekit

Icinger

Sieht so aus, als wurde das Modul doppelt geladen.......
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

Spezialtrick

FHEM - Debmatic - Zigbee2MQTT - Homekit

DeeSPe

Da wird nichts doppelt geladen.
Sorry, ist ein kleiner Bug, der aber außer der Anzeige im Log keine weiteren Auswirkungen hat.
Wird gefixt mit der nächsten Version.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Spezialtrick

Kein Grund sich zu entschuldigen, Dan.  ;)

Kannst du dir erklären weshalb nachfolgendes nicht mehr funktioniert?

Ich habe im Attribut "HomeCMDpresence-absent" folgende Befehle eingesetzt:

set FL.Kamera on;
set Sonos stopAll;
set Pushover msg 'Auf Wiedersehen!';


Alles bis auf "set FL.Kamera on" wird ausgeführt. Es handelt sich um einen HM-Aktor, der außerhalb des Moduls einwandfrei funktioniert. Wenn das Modul das Schalten übernimmt, bleibt der Aktor mit einem MissingACK stehen, also einer Glühbirne mit rotem Ausrufezeichen. Wenn ich "set FL.Kamera on" in die Befehlszeile eingebe funktioniert das Schalten auch.  :o
FHEM - Debmatic - Zigbee2MQTT - Homekit

DeeSPe

Zitat von: Spezialtrick am 04 März 2017, 21:45:44
Kein Grund sich zu entschuldigen, Dan.  ;)

Kannst du dir erklären weshalb nachfolgendes nicht mehr funktioniert?

Ich habe im Attribut "HomeCMDpresence-absent" folgende Befehle eingesetzt:

set FL.Kamera on;
set Sonos stopAll;
set Pushover msg 'Auf Wiedersehen!';


Alles bis auf "set FL.Kamera on" wird ausgeführt. Es handelt sich um einen HM-Aktor, der außerhalb des Moduls einwandfrei funktioniert. Wenn das Modul das Schalten übernimmt, bleibt der Aktor mit einem MissingACK stehen, also einer Glühbirne mit rotem Ausrufezeichen. Wenn ich "set FL.Kamera on" in die Befehlszeile eingebe funktioniert das Schalten auch.  :o

Kann ich gerade nicht wirklich sagen was da schief geht!
Du könntest mal mit verbose 4 schauen was da für ein CMD zerpflückt und wieder zusammengebaut wird. Könnte mir maximal vorstellen dass da irgendwas in die Hose geht. Wüßte aber gerade nicht was!

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Esjay

Hallo Daniel,
Finde folgendes im Logfile.

017.03.07 06:57:04 1: PERL WARNING: Use of uninitialized value $d in hash element at fhem.pl line 3886.
2017.03.07 06:57:04 1: stacktrace:
2017.03.07 06:57:04 1:     main::__ANON__                      called by fhem.pl (3886)
2017.03.07 06:57:04 1:     main::ReadingsVal                   called by ./FHEM/22_HOMEMODE.pm (1349)
2017.03.07 06:57:04 1:     main::HOMEMODE_PrepareCMDs          called by ./FHEM/22_HOMEMODE.pm (1569)
2017.03.07 06:57:04 1:     main::HOMEMODE_execCMDs             called by ./FHEM/22_HOMEMODE.pm (2004)
2017.03.07 06:57:04 1:     main::HOMEMODE_ContactOpenCheck     called by (eval 508543) (1)
2017.03.07 06:57:04 1:     (eval)                              called by fhem.pl (1029)
2017.03.07 06:57:04 1:     main::AnalyzePerlCommand            called by fhem.pl (1049)
2017.03.07 06:57:04 1:     main::AnalyzeCommand                called by fhem.pl (977)
2017.03.07 06:57:04 1:     main::AnalyzeCommandChain           called by ./FHEM/90_at.pm (177)
2017.03.07 06:57:04 1:     main::at_Exec                       called by fhem.pl (2905)
2017.03.07 06:57:04 1:     main::HandleTimeout                 called by fhem.pl (607)


Hast du eine Idee dazu?

Grüße

DeeSPe

Zitat von: Esjay am 07 März 2017, 11:53:46
Hallo Daniel,
Finde folgendes im Logfile.

017.03.07 06:57:04 1: PERL WARNING: Use of uninitialized value $d in hash element at fhem.pl line 3886.
2017.03.07 06:57:04 1: stacktrace:
2017.03.07 06:57:04 1:     main::__ANON__                      called by fhem.pl (3886)
2017.03.07 06:57:04 1:     main::ReadingsVal                   called by ./FHEM/22_HOMEMODE.pm (1349)
2017.03.07 06:57:04 1:     main::HOMEMODE_PrepareCMDs          called by ./FHEM/22_HOMEMODE.pm (1569)
2017.03.07 06:57:04 1:     main::HOMEMODE_execCMDs             called by ./FHEM/22_HOMEMODE.pm (2004)
2017.03.07 06:57:04 1:     main::HOMEMODE_ContactOpenCheck     called by (eval 508543) (1)
2017.03.07 06:57:04 1:     (eval)                              called by fhem.pl (1029)
2017.03.07 06:57:04 1:     main::AnalyzePerlCommand            called by fhem.pl (1049)
2017.03.07 06:57:04 1:     main::AnalyzeCommand                called by fhem.pl (977)
2017.03.07 06:57:04 1:     main::AnalyzeCommandChain           called by ./FHEM/90_at.pm (177)
2017.03.07 06:57:04 1:     main::at_Exec                       called by fhem.pl (2905)
2017.03.07 06:57:04 1:     main::HandleTimeout                 called by fhem.pl (607)


Hast du eine Idee dazu?

Grüße

Was soll mir das Log sagen?
Irgendwie fehlt mir die Fragestellung zu der ich eine Idee aufbringen könnte.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Esjay

Ok, ich merk es mir, und werde es das nächste mal möglichst großzügig ausformulieren.

Könntest du mir sagen, oder hast du evtl. eine Idee warum ich diesen Fehler im Log habe?Hat es evtl. mit einem speziellen Attribut zu tun, und wenn ja, wärst du so nett mir zu sagen, wo ich das herauslesen kann, um das nächste mal erst einmal selber zu schauen.

Danke und Gruß

DeeSPe

Einen Fehler kann ich leider aus Deinem Log nicht erkennen.
Ich sehe da nur ein WARNING und stacktrace.

Die Hauptfrage die sich mir stellt ist:
Was verleitet Dich zu dem Schluss dass die WARNUNG (ich nehme an um diese geht es Dir) etwas mit HOMEMODE zu tun hat?

Wenn hier wirklich ein Problem mit HOMEMODE vorliegt bin ich gern bereit das zu fixen.
Ich sehe es gerade aber nicht. 8)

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Esjay

Ok, jetzt sehe ich es selber!!

Das HOMEMODE in den Zeilen ist mir halt einfach zu sehr ins Gesicht gesprungen.



2017.03.07 06:57:04 1:     main::ReadingsVal                   called by ./FHEM/22_HOMEMODE.pm (1349)
2017.03.07 06:57:04 1:     main::HOMEMODE_PrepareCMDs          called by ./FHEM/22_HOMEMODE.pm (1569)
2017.03.07 06:57:04 1:     main::HOMEMODE_execCMDs             called by ./FHEM/22_HOMEMODE.pm (2004)


Danke fürs Gespräch  ;D ;D 8)