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

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

Vorheriges Thema - Nächstes Thema

binford6000

Zitat von: DeeSPe am 15 Januar 2018, 19:22:54
Wann kommt diese Warnung bei Euch?
Nach "shutdown restart"?

Könntet Ihr bitte mal die angehängte v1.4.2 testen ob die Warnung weg ist?

Gruß
Dan
Die Meldung kam heute Morgen um 00:00:07 Uhr das erste mal. Scheinbar zum Tageswechsel.
Aber wie gesagt waren bei mir heute alle Kalender leer.

Klaro, 1.4.2 ist eingespielt und wartet auf den neuen Tag  ;)

trinitywhm

Zitat von: DeeSPe am 15 Januar 2018, 19:22:54
Wann kommt diese Warnung bei Euch?
Nach "shutdown restart"?

Könntet Ihr bitte mal die angehängte v1.4.2 testen ob die Warnung weg ist?

Gruß
Dan

Bei mir kam die Warnung als einer der eingebundenen Kalender Daten geholt hat. Um kurz nach Mitternacht war alles ruhig.

Auch ich habe die Version aus deinem Beitrag eingespielt und warte nun auf den Tageswechsel, Kalenderupdate oder wann auch immer wieder was auftreten könnte.

trinitywhm

Hab aber auch noch ne andere Frage. Wie kann ich folgenden Befehl im ein HomemodeCMD schreiben dass ich keinen Syntaxfehler beim Speichern erhalte?
msg audio @Sonos_Wohnzimmer |Hint| Gute Nacht! O[{"VOLUME":"8"}]

Wenn ich das einfach so als einzelnen CMD in ein Attribut schreibe ist alles OK. Speichern, ausführen alles super.
Wenn ich das allerdings zusammen mit anderen Befehlen in geschweifte Klammern und mit fhem("") davor schreibe, bekomme ich einen Syntaxfehler. Klar, das @ vom Sonos-Lautsprecher kann ich maskieren mit einem \, aber die Volume-Angabe, an der hängt es glaube ich. Wie bekomme ich das hin?

Wenn ich das so eingebe, dann bekomme ich zwar kein Syntaxfehler beim Speichern, aber ein Error beim Ausführen:
fhem ("msg audio \@Sonos_Wohnzimmer Gute Nacht O[{'VOLUME':2}]");

Beide Varianten sollten laut Forum funktionieren bzgl der Hochkommas bei der Volume-Angabe. Aber es führt mich leider nicht zum Ziel, msg für Audioausgaben zu benutzen und in Homemode-CMD die Volumeoption mit anzugeben.

DeeSPe

Danke für's Testen Ihr beiden!

@trinitywhm:
Probier mal:
fhem ("msg audio \@Sonos_Wohnzimmer Gute Nacht O[{\"VOLUME\":2}]");

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

trinitywhm

Zitat von: DeeSPe am 15 Januar 2018, 21:10:05
Danke für's Testen Ihr beiden!

@trinitywhm:
Probier mal:
fhem ("msg audio \@Sonos_Wohnzimmer Gute Nacht O[{\"VOLUME\":2}]");

Gruß
Dan
Leider nein, das führt im Log zu folgenden Meldungen
2018.01.15 21:11:11 3: myHomemode: error: Usage: fhemdebug {enable|disable|status|memusage}
2018.01.15 21:11:11 3: myHomemode: error in command: fhem ("msg audio \@Sonos_Wohnzimmer Gute Nacht O[{\"VOLUME\":2}]");

binford6000

Zitat von: trinitywhm am 15 Januar 2018, 20:38:39
Bei mir kam die Warnung als einer der eingebundenen Kalender Daten geholt hat. Um kurz nach Mitternacht war alles ruhig.

Auch ich habe die Version aus deinem Beitrag eingespielt und warte nun auf den Tageswechsel, Kalenderupdate oder wann auch immer wieder was auftreten könnte.

Ich habe jetzt mal allen Kalendern ein manuelles set <device> update spendiert.

Im Log bleibt alles ruhig.

Bei mir starten die automatisierten Kalender-Updates (natürlich via HomeCMD...  ;)) erst um 1:30 Uhr.
Daher die Vermutung, dass es bei mir mit dem Tageswechsel zu tun hatte.
VG Sebastian

trinitywhm

Mitternacht ist rum, Kalenderupdates sind gelaufen und ein kalenderCMD würde auch durchgeführt. Im Log gab's keine Einträge mehr wie gestern.

DeeSPe

Zitat von: trinitywhm am 15 Januar 2018, 21:13:02
Leider nein, das führt im Log zu folgenden Meldungen
2018.01.15 21:11:11 3: myHomemode: error: Usage: fhemdebug {enable|disable|status|memusage}
2018.01.15 21:11:11 3: myHomemode: error in command: fhem ("msg audio \@Sonos_Wohnzimmer Gute Nacht O[{\"VOLUME\":2}]");


Komisch.
Wenn ich den Code in der FHEM Eingabezeile ausführe funktioniert er.
Wüßte gerade nicht warum das in den HomeCMD Attributen nicht gehen sollte, die nutzen am Ende die selbe Funktion zum Ausführen wie die Eingabezeile. HOMEMODE gibt nur den Fehlerwert von AnalyzeCommandChain() zurück.

Schön dass es diese Nacht bei Euch ruhig im Log geblieben ist.

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

binford6000

ZitatSchön dass es diese Nacht bei Euch ruhig im Log geblieben ist.

Hi Dan,
ja bei mir traten auch keine besonderen HOMEMODE-Ereignisse im Log auf.
VG Sebastian

trinitywhm

Zitat von: DeeSPe am 16 Januar 2018, 08:09:59
Komisch.
Wenn ich den Code in der FHEM Eingabezeile ausführe funktioniert er.
Wüßte gerade nicht warum das in den HomeCMD Attributen nicht gehen sollte, die nutzen am Ende die selbe Funktion zum Ausführen wie die Eingabezeile. HOMEMODE gibt nur den Fehlerwert von AnalyzeCommandChain() zurück.
Ja, das habe ich natürlich auch ausprobiert um Tipp- oder Syntaxfehler auszuschließen. Wenn ich es aber in einem HomemodeCMD eingebe (meist zum Testen in DND-on und dann kann ich mit DND-for-minutes testen was beim Ausführen passiert), gibt einen Eintrag im Log und denselben Eintrag wie im Log auch im Reading "lastCMDerror"

In dem Beitrag https://forum.fhem.de/index.php/topic,39983.msg408716.html#msg408716 ist erklärt dass auch verschiedene Hochkommata verwendet werden können. Wenn ich zum Beispiel so etwas mache:
{fhem ("msg audio \@Sonos_Wohnzimmer Gute Nacht! O[{'VOLUME':'8'}]")}
dann führt er mir zwar den Audio-Befehl aus und ich erhalte keine Fehler, aber die Lautstärke wird ignoriert und es wird in der Standardlautstärke vom MSG-Schema wiedergegeben. "Verschlucken" die HomemodeCMD vielleicht Anführungszeichen, oder Klammern?

DeeSPe

Eigentlich sollte da nichts verschluckt werden.
Die CMDs werden zumindest von HOMEMODE nicht verändert.
Ich teste das mal heute Abend.

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

DeeSPe

#716
Ich habe bei mir nun in HomeCMDdnd beide Varianten (auf mein System angepasst) probiert und keine dieser führt bei mir zu einer Fehlermeldung:
{
  fhem ("msg audio \@ku_Sonos Gute Nacht O[{'VOLUME':2}]");
}

{
  fhem ("msg audio \@ku_Sonos Gute Nacht O[{\"VOLUME\":2}]");
}


Das soll mal einer verstehen...

Derweil habe ich v1.4.2 eingecheckt und noch ein paar weitere Verbesserungen vorgenommen, u.a. kann man jetzt mit HomeAutoPresenceSuppressState das automatische absent/present schalten in den angegebenen Status der RESIDENTS unterdrücken.
Dadurch kann bei asleep/awoken/gotosleep verhindert werden dass plötzlich verschwindende Presence Devices den Anwesenheitsstatus ändern.
Bei Calender Events kann nun auch die Beschreibung mit %DESCRIPTION% verwendet werden.

Changelog:
Zitatv1.4.2
    - fix "Use of uninitialized value $summary/$sum"
    - fix time not assigned to variable for Calendar_GetEvents
    - add placeholder %DESCRIPTION% for Calendar events
    - add attr HomeAutoPresenceSuppressMode
    - other minor improvements

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

kjmEjfu

Ich mal wieder :-)

Kann ich bei "HomeModeAlarmActive" am Sensor auch sowas wie "none" eintragen? Hintergrund der Frage: ich habe einen Bewegungsmelder für draussen (HomeSensorLocation = outside), den ich für Motion-CMD nutzen möchte, aber der natürlich keinen Alarm auslösen soll.

Unabhängig davon: bezieht sich "HomeOpenDontTriggerModes" nur auf "HomeCMDcontactOpenWarning1" usw. oder auch auf andere CMDs wie z.B. HomeCMDcontactOpen und generell Alarmmeldungen?

Und noch etwas letztes, gibt es etwas analog zu "HomeModeAlarmArmDelay" um die Ausführung von HomeCMDalarmTriggered/HomeCMDalarmTriggered-on zu verzögern? Oder müsste man sich da ein eigenes At für basteln?
Migriere derzeit zu Home Assistant

DeeSPe

Zitat von: kjmEjfu am 17 Januar 2018, 19:19:15
Kann ich bei "HomeModeAlarmActive" am Sensor auch sowas wie "none" eintragen? Hintergrund der Frage: ich habe einen Bewegungsmelder für draussen (HomeSensorLocation = outside), den ich für Motion-CMD nutzen möchte, aber der natürlich keinen Alarm auslösen soll.

Einfach das Attribut HomeModeAlarmActive löschen.

Zitat von: kjmEjfu am 17 Januar 2018, 19:19:15
Unabhängig davon: bezieht sich "HomeOpenDontTriggerModes" nur auf "HomeCMDcontactOpenWarning1" usw. oder auch auf andere CMDs wie z.B. HomeCMDcontactOpen und generell Alarmmeldungen?

Richtig!

Zitat von: kjmEjfu am 17 Januar 2018, 19:19:15
Und noch etwas letztes, gibt es etwas analog zu "HomeModeAlarmArmDelay" um die Ausführung von HomeCMDalarmTriggered/HomeCMDalarmTriggered-on zu verzögern? Oder müsste man sich da ein eigenes At für basteln?

Nein, gibt es nicht.
Du kannst aber in den HomeCMDalarmTriggered... Attributen die Befehle per sleep oder per at verzögern.

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

kjmEjfu

Zitat von: DeeSPe am 18 Januar 2018, 08:02:00
Richtig!

Ähem, ein "richtig" auf eine Oder-Frage kann ich jetzt schwierig einordnen  ;) Gilt das vor oder nach dem oder?
Migriere derzeit zu Home Assistant