Neues Modul für Hyperion Server 98_Hyperion.pm

Begonnen von DeeSPe, 29 Juni 2016, 18:54:18

Vorheriges Thema - Nächstes Thema

DeeSPe

#210
Richtig chic und rund wird es so:
define Notify_FernseherAmbilightWohnzimmer notify FernseherWohnzimmer:(on|off) {\
  if ($EVENT eq "on") {\
    my $conf = "hyperion.tv";;\
    $conf = "hyperion.kodi" if (ReadingsVal("FernseherWohnzimmer","input","") eq "hdmi1");;\
    $conf = "hyperion.hdmi" if (ReadingsVal("FernseherWohnzimmer","input","") eq "hdmi2");;\
    fhem "set FernseherAmbilightWohnzimmer:FILTER=configFile!=$conf configFile $conf";;\
    fhem "sleep 5;; set FernseherAmbilightWohnzimmer:FILTER=state!=clearall clearall";;\
  } else {\
    fhem "set FernseherAmbilightWohnzimmer:FILTER=state!=off off";;\
  }\
}\


hyperion.tv wird damit als default configFile genommen falls kein anderer Input als hdmi1 oder hdmi2 anliegt.
Damit wird wirklich nur geschaltet wenn etwas verändert wurde. Spart also Funktelegramme/Netzwerktraffic.

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

Grinsekatze

Mit deinem Notify blinkt er nun schon mal nur noch 1x - statt 3x wie zuvor bei mir.

Zu meinem Aufbau:
Der Pi3 FHEM-Server hängt im WLAN (da am LAN der HMLAN). Am Fernseher ist ein zweiter Pi3 angeschlossen. Dort läuft Hyperion. Dieser Pi ist mit dem LAN-Kabel angeschlossen.
Der Router ist ca. 1 Meter neben dem FHEM-Pi in Sichtreichweite.

DeeSPe

Hast Du in den configFile(s) eventuell einen Startup Effekt/Farbe eingestellt?
Habe nie probiert was passiert wenn man da gar nichts einstellt.

Gruß
Dan

EDIT: Macht denn das notify sonst das was es soll?
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

Ich frage mich sowieso gerade ob diese Herangehensweise sinnvoll ist, da ja das notify so nur auf on/off triggert! Somit schaltet nichts wenn Du nur den Input im laufenden Betrieb wechselst.
Besser wäre doch wenn es auf input triggert und dann abfragt ob on 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

Grinsekatze

Das Notify selbst funktioniert soweit gut. Gefällt mir auch besser, als meines - danke :)
Jedoch ist die Responsetime etwas langsam. Wenn ich es direkt aus dem Modul mache (im Web Interface), dann schaltet es direkt um - auch ohne das eine Mal blinken.

Ich habe mal probiert und es sieht so aus, als ob der Hyperion / FernseherAmbilightWohnzimmer jedes mal Disconnected, wenn eine andere config geladen wird.
Ich habe es eben mal direkt im Modul probiert.


Edit:
Ach ja, die Configs sind mit HyperCon gemacht. Dort habe ich keinen Starteffekt oder  - Farbe eingestellt.

Grinsekatze

Zitat von: DeeSPe am 10 Oktober 2016, 16:50:33
Ich frage mich sowieso gerade ob diese Herangehensweise sinnvoll ist, da ja das notify so nur auf on/off triggert! Somit schaltet nichts wenn Du nur den Input im laufenden Betrieb wechselst.
Besser wäre doch wenn es auf input triggert und dann abfragt ob on ist.

Gruß
Dan

Hm, also die Config wird aber trotzdem gewechselt, wenn der Input gewechselt wird.

DeeSPe

Zitat von: Grinsekatze am 10 Oktober 2016, 16:53:32
Ich habe mal probiert und es sieht so aus, als ob der Hyperion / FernseherAmbilightWohnzimmer jedes mal Disconnected, wenn eine andere config geladen wird.

Ja, das geht leider nicht anders da ja der ursprünglich laufende hyperiond Prozess gekillt wird. Somit geht natürlich auch die Verbindung von FHEM zu Hyperion verloren. Diese sollte aber automatisch wiederhergestellt werden. Somit ist aber der Log Eintrag wirklich richtig und auch sinnvoll erklärbar.

Zitat von: Grinsekatze am 10 Oktober 2016, 16:55:30
Hm, also die Config wird aber trotzdem gewechselt, wenn der Input gewechselt wird.

Okay, dann wird vermutlich auch der on Status damit aktualisiert. Gut für Dich.

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

Grinsekatze

Zitat von: DeeSPe am 10 Oktober 2016, 16:16:20
Richtig chic und rund wird es so:
define Notify_FernseherAmbilightWohnzimmer notify FernseherWohnzimmer:(on|off) {\
  if ($EVENT eq "on") {\
    my $conf = "hyperion.tv";;\
    $conf = "hyperion.kodi" if (ReadingsVal("FernseherWohnzimmer","input","") eq "hdmi1");;\
    $conf = "hyperion.hdmi" if (ReadingsVal("FernseherWohnzimmer","input","") eq "hdmi2");;\
    fhem "set FernseherAmbilightWohnzimmer:FILTER=configFile!=$conf configFile $conf";;\
    fhem "sleep 5;; set FernseherAmbilightWohnzimmer:FILTER=state!=clearall clearall";;\
  } else {\
    fhem "set FernseherAmbilightWohnzimmer:FILTER=state!=off off";;\
  }\
}\


hyperion.tv wird damit als default configFile genommen falls kein anderer Input als hdmi1 oder hdmi2 anliegt.
Damit wird wirklich nur geschaltet wenn etwas verändert wurde. Spart also Funktelegramme/Netzwerktraffic.

Gruß
Dan

Super, jetzt ist auch das blinken weg :)

DeeSPe

Also läuft es nun wie gewünscht? Das wäre ja super.

Und wie verhält es sich mit den default Attributen? Sind die so störend dass ich sie rausnehmen müsste?
Ich könnte auch einen set Befehl einbauen um die default Attribute wiederherzustellen wenn sie nicht vorhanden sind.

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

#219
Ich habe soeben ein Update eingecheckt.
Unter Anderem ist es nun auch möglich die Erstellung der Default Attribute zu unterdrücken.


  • Fehler mit "set <name> dimUp/dimDown <value>" behoben
  • devStateIcon für disconnected hinzugefügt
  • Anzeige der Anzahl an gefunden .config.json Dateien beim "get <name> configFiles"
  • neues Attribut hyperionAttrRestore um die automatische Erstellung der mitgelieferten Attribute zu unterbinden
  • Hyperion_readingsBulkUpdateIfChanged entfernt und ersetzt durch readingsBulkUpdate um dem Anwender die volle Kontrolle über die Erstellung der Readings zurückzugeben
  • exessivere Benutzung von RegEx
  • obsoleten Code entfernt
  • Anpassungen der Dokumentation

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

Kuzl

Hab jetzt auch mal ein update über hypercon gemacht.

Das hat nicht funktioniert, da hypercon erwartet, dass sudo ohne passwort funktioniert - ist bei ubuntu aber standardmäßig nicht so.

Hab dann einfach den Befehl rauskopiert und ins Terminal eingegeben - so hats funktioniert.

Unterschied: es werden keine  Priorities über 1000 mehr unterstützt, was dazu führte, dass meins erst mal gar nicht mehr ging.

Aber das Modul funktioniert :)

DeeSPe

Zitat von: Kuzl am 11 Oktober 2016, 07:55:31
Unterschied: es werden keine  Priorities über 1000 mehr unterstützt, was dazu führte, dass meins erst mal gar nicht mehr ging.

Aber das Modul funktioniert :)

Schön dass das Modul funktioniert!

Wie meinst Du das mit den Priorities?
Seit wann funktioniert das nicht mehr (Hyperion/Modul Update)?
Normalweise müsste das funktionieren, allerdings musst Du ein "clearall" senden wenn Du vorher manuell eine Farbe/Effekt eingestellt hast, da diese per default auf "priority 0" gesendet werden damit FHEM immer Vorrang bekommt. Nach "clearall" sollten alle Priorities wieder angenommen werden.
Die default Priority lässt sich auch über das Attribut "hyperionDefaultPriority" einstellen.

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

Ich habe eben wieder ein Update eingecheckt.
Nach dieser Diskussion habe ich mich entschlossen das gestern neu eingeführte Attribut "hyperionAttrRestore" wieder zu entfernen. Stattdessen werden die Default Attribute nur noch beim Definieren des Geräts einmalig hinzugefügt. Somit ist wieder volle Freiheit für den User bei der Benutzung der Attribute gegeben ohne dafür erst extra ein Attribut setzen zu müssen.

Changelog:

  • Attribut hyperionAttrRestore entfernt, Default Attribute werden nur noch beim Definieren angelegt

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

Kuzl

Zitat von: DeeSPe am 11 Oktober 2016, 13:22:45
Wie meinst Du das mit den Priorities?
Seit wann funktioniert das nicht mehr (Hyperion/Modul Update)?

Hallo,

mit der aktuellen Version gehen nur alle über 1000 nicht mehr - darunter wie gewohnt. Welche Version ich davor hatte, kann ich leider nicht sagen.
Ich musste die Priority von Kodi und dem Grabber von 1200 und 1300 auf einen Wert unter 1000 setzen, da sie sonst einfach ignoriert wurden.

Das FHEM-Modul läuft mit beiden Versionen, da es ja unter 1000 ist

Feuerpfeil

Hallo zusammen,

auch ich möchte mich zunächst bei Dan ganz herzlich für das Modul bedanken !

Ich muss nun leider doch um Hilfe rufen, da ich nicht mehr weiter weiß...
Es scheint, dass bereits der Verbindungsaufbau zum Hyperion-Server scheitert.


2016-10-12 11:08:51 Hyperion wz_hyperion lastError: 192.168.82.10: Verbindungsaufbau abgelehnt
2016-10-12 11:08:51 Hyperion wz_hyperion serverResponse: ERROR
2016-10-12 11:08:51 Hyperion wz_hyperion ERROR


Folgende Situation :

- Hyperion auf OpenElec 6.03 (192.168.82.10)
- Fhem auf Raspberry pi
- Hyperion Android App funktioniert ohne Probleme (192.168.82.10:19444)
- Passwordless SSHLogin mit dem User fhem zu openelec funktioniert (sudo -u fhem ssh root@192.168.82.10 -p 22)
- folgende Attribute sind gesetzt :


attr wz_hyperion hyperionBin /storage/hyperion/bin/hyperiond
attr wz_hyperion hyperionConfigDir /storage/.config/ambilight/
attr wz_hyperion hyperionNoSudo 1
attr wz_hyperion hyperionSshUser root


Der Befehl get wz_hyperion configFiles erzeugt folgenden Fehler :

Maybe the wrong directory? If SSH is used, has the user root been configured to log in without entering a password (http://www.linuxproblem.org/art_9.html)?

Folgende ConfigFiles sind in dem Ordner vorhanden :
hyperion.config_KODIWATCH_lpd8806.json
hyperion.config_KODI_lpd8806.json
hyperion.config_VIDEOGRABBER_lpd8806.json


Ich habe nun leider keine Idee mehr, woran es liegen oder was ich noch ausprobieren könnte.
Bin für jeden Tipp dankbar.

VG
Lars