Neues Modul für Hyperion Server 98_Hyperion.pm

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

Vorheriges Thema - Nächstes Thema

DeeSPe

Zitat von: juppzupp am 20 September 2016, 20:18:14
Ich würde nicht versuchen alle Versionen zu supporten. Ich konnte nicht erkennen, warum fhem komplett stirbt, daher kein Lösungsvorschlag.

Quick and dirty Workaround : Attribut disable_version_check.

Grüße

Hmmm, gefällt mir gar nicht so schlecht die Idee mit dem Attribut. Da bin ich irgendwie noch nicht drauf gekommen.
Ich denke nochmal drüber nach, aber das wäre zumindest eine halbwegs vernünftige Lösung. Somit könnte jeder eigenverantwortlich auf die Versionsprüfung verzichten und hoffen dass das Modul läuft mit der installierten Hyperion Version.

Vielen Dank für die Idee...

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

#196
Ich habe mal eine Version mit der Hyperion Versionsprüfung und dem neuen Attribut "hyperionVersionCheck" fertig gestellt. Die Idee hat mir gut gefallen und war auch schnell umzusetzen. Quick, aber nicht dirty... 8)
Man kann dieses Attribut nur auf 0 (null) setzen oder löschen. Wenn das Attribut nicht gesetzt ist, bedeutet es dass die Versionsprüfung aktiviert ist. Setzt man das Attribut, wird die Versionsprüfung komplett umgangen. Dieses Setzen des Attributs tut jeder eigenverantwortlich. Im schlimmsten Falle könnte es sein dass FHEM durch die nicht unterstützte Hyperion Version zum Absturz gebracht wird.

Die aktuell voll von diesem Modul unterstützte Hyperion Mindestversion ist V1.03.2 (also die z.Z. aktuelle).
Mit der direkten Vorversion sollte das Modul auch fehlerfrei laufen, allerdings nicht mehr mit meinem "full saturation color fix", da dieser in der aktuellen Version des Moduls nicht mehr enthalten ist.
Alle älteren Hyperion Versionen, als die Mindestversion, nur auf eigene Verantwortung!

Die Doku ist auch schon soweit angepasst.

Würde mich freuen wenn das mal der eine oder die andere testen könnte.

Danke.

Gruß
Dan

EDIT: Modul entfernt. Funktionen nun im Modul im Update vorhanden.
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

Nach nun knapp 2 Wochen Testzeitraum und keinen Widerworten werde ich das neue Modul mit der Versionsprüfung heute einchecken.

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

Jack_n

Hallo Dan,

vielen Dank für dieses tolle Modul !

Ich bin heute erst drauf gestossen und habe noch kleinere Startprobleme.

Ich habe Hyperion auf einem externen Host laufen.

Es geht Alles, man kann die Effekte aus FHEM raus anwählen und auch die RGB Farbe am Picker einstellen.

Was im Moment Probleme macht:

-Wenn ich zB.set Ambilight dim 60 anwende, dann wird nicht die aktuelle Farbe gedimmt, sondern die LED's werden rot, der dim Wert wird aber genommen und auch richtig eingestellt von der Helligkeit.

- Bei set Ambilight rgb 1C0000 bekomme ich die Fehlermeldung Value of rgb has to be in RGB hex format like ffffff or 3f7d90 - ist aber in RGB ausgedrückt 28,0,0

!! Ich habe heute noch keinen FHEM Update gemacht - kann es sein dass dann meine Probleme weg sind ? !!

LG
Joachim




DeeSPe

Schön dass Dir das Modul gefällt.
Zu Deinen Fragen:

Bei "set .... rgb ....." funktionieren nur Kleinbuchstaben. Deshalb heißt es "set .... rgb ..." und nicht "set ... RGB ....".

Das Dimmen funktioniert bei mir wie erwünscht!
Stelle ich ein:
set Ambilight rgb 0000ff

und dimme das dann auf 60%:
set Ambilight dim 60

kommt die richtige Farbe dabei heraus:
00009b

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

Zitat von: Jack_n am 03 Oktober 2016, 17:03:41
- Bei set Ambilight rgb 1C0000 bekomme ich die Fehlermeldung Value of rgb has to be in RGB hex format like ffffff or 3f7d90

Ich habe das mal im Modul angepasst auf:
Value of rgb has to be in rgb hex format like ffffff or 3f7d90

Vielleicht ist es damit noch einleuchtender Kleinbuchstaben zu verwenden. ;)

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

Jack_n

Hallo Dan,

ich habe Kleinbuchstaben verwendet !  8) !

set Ambilight rgb 1C0000 bekomme ich die Fehlermeldung Value of rgb has to be in RGB hex format like ffffff or 3f7d90

Mach das bitte auch mal mit 1C0000  ob Du auch den Fehler bekommst.

Beim Dimmen sollte sich doch der Farbwert nicht ändern, nur die Helligkeit - oder ?


DeeSPe

Mit Kleinbuchstaben meine ich den Farbwert:
set Ambilight rgb 1c0000

Im Colorpicker wird Dir dann allerdings 1C0000 angezeigt.

Das Licht wird hier über den Farbwert gedimmt. Ist im Prinzip nichts anderes als wenn Du im Colorpicker den Helligkeitsregler verwendest.

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

Jack_n

Hallo Dan,

also - ich hatte noch eine ältere Hyperion Version am Laufen und upgedatet.

Das Dimmen geht jetzt wie es soll, habe auch verstanden dass dabei der Farbwert verändert wird.
Habe jetzt auch verstanden, dass 1c000 klappt, 1C000 jedoch nicht.

Also - jetzt fluppt es wie es soll !!!!  :) :) :)

Danke noch mal für das Modul !

LG
Joachim





DeeSPe

Ich habe soeben eine neue Version des Moduls eingecheckt.
Es ist nun unter Anderem auch möglich beim Setzen von rgb Großbuchstaben zu verwenden.
Die Hyperion Versionsprüfung ist ab dieser Version des Moduls nun auch aktiviert.

Ab sofort via SVN oder ab morgen im Update.

Changelog:

  • Hyperion Versionsprüfung hinzugefügt um FHEM Abstürtze durch sehr alte Hyperion Versionen vorzubeugen
  • Mindestversion für Funktionalität mit diesem Modul ist Hyperion V1.03.2
  • neues Attribut hyperionVersionCheck um die Versionprüfung auf eigene Gefahr auszuschalten - ACHTUNG!: FHEM könnte dadurch instabil werden!
  • beim Setzen von rgb werden nun auch Großbuchstaben im Farbwert akzeptiert
  • weitere kleine Code Optimierungen und 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

DeeSPe

Zitat von: Jack_n am 03 Oktober 2016, 17:55:38
Also - jetzt fluppt es wie es soll !!!!  :) :) :)

Na bitte!

Und damit nicht noch jemand in die selben Fallen wie Du läuft, habe ich noch ein paar Optimierungen eingebaut. ;)

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

Habe soeben wieder ein kleines Update eingecheckt.

Changelog:

  • "set <name> config ....." nur verfügbar wenn wenigstens zwei .config.json Dateien mit "get <name> configFiles" gefunden werden
  • weitere kleine Code Optimierungen und 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

Grinsekatze

Hm, ich dachte, ich hab hier was gepostet vor ein paar Tagen ... man wird wohl älter .... also  nochmal:

Danke für das Modul. Damit läuft mein Ambilight nun super. Jedoch habe ich ein paar kleine Anmerkungen:

  • Ich schalte mit einem Notify zwischen den Configurationen (je eine für Kodi, HDMI und SCART/TV). Jedoch blinkt das Ambilight jedes Mal 3 oder 4 mal, wenn ich umschalte.
    Der Notify reagiert auf den Wechsel eines Readings (input:hdmi1, hdmi2, digitalTV) von meinem LGTV-Modul. Ich kann mir jedoch den Grund für das Flackern nicht erklären.
define Notify_FernseherAmbilightWohnzimmer notify FernseherWohnzimmer.* {\
    if (ReadingsVal("FernseherWohnzimmer", "state", "undefined") eq "on") {\
        fhem ("set FernseherAmbilightWohnzimmer on");;\
        if (ReadingsVal("FernseherWohnzimmer", "input", "undefined") eq "digitalTV") {\
            fhem ("set FernseherAmbilightWohnzimmer configFile hyperion.tv");;\
        }\
        elsif (ReadingsVal("FernseherWohnzimmer", "input", "undefined") eq "hdmi1") {\
            fhem ("set FernseherAmbilightWohnzimmer configFile hyperion.kodi");;\
        }\
        elsif (ReadingsVal("FernseherWohnzimmer", "input", "undefined") eq "hdmi2") {\
            fhem ("set FernseherAmbilightWohnzimmer configFile hyperion.hdmi");;\
        }\
    }\
    elsif (ReadingsVal("FernseherWohnzimmer_remote", "state", "undefined") eq "off") {\
        fhem ("set FernseherAmbilightWohnzimmer off");;\
    }\
}
    [/li]
  • Nachdem ich das Modul definiert habe, erstellt es selbstständig eine Vielzahl von Attributen (u.A. room, icon, alias, devstateicon). Da ich jedoch mit diesen Attributen in meinem Web Interface nicht arbeite, möchte ich sie auch beim Ambilight wieder weg bekommen. Für room klappte es auch, da ich einen anderen Raum gewählt habe. Für iconb, devstateicon und alias klappt das jedoch nicht, da das Modul jedes Mal, wenn ich die Attribute lösche, sie wieder neu generiert. Gibt's da ne Möglichkeit das zu unterbinden? Ich erinnere mich mal in meinem Informatikstudium gelernt zu haben, dass so was dem Nutzer zur Auswahl vorbehalten sein soll und ihm nicht aufgezwungen werden soll. ;)
  • Wenn ich das Ambilight beende, bekomme ich einige Fehlermeldungen im Log:
  • Zitat2016-10-10 12:51:20 Hyperion FernseherAmbilightWohnzimmer clearall
    2016-10-10 12:51:22 dummy FernseherWohnzimmer presence: absent
    2016-10-10 12:51:22 dummy FernseherWohnzimmer presence: absent
    2016-10-10 12:51:22 dummy FernseherWohnzimmer off
    2016-10-10 12:51:22 Hyperion FernseherAmbilightWohnzimmer off
    2016-10-10 12:51:22 dummy FernseherWohnzimmer off
    2016-10-10 12:51:22 dummy FernseherWohnzimmer off
    2016-10-10 12:51:22 LGTV_RS232 FernseherWohnzimmer presence: absent
    2016-10-10 12:51:22 Hyperion FernseherAmbilightWohnzimmer off
    2016-10-10 12:51:22 dummy FernseherWohnzimmer off
    2016-10-10 12:51:22 dummy FernseherWohnzimmer off
    2016-10-10 12:51:22 LGTV_RS232 FernseherWohnzimmer off
    2016-10-10 12:51:22 Hyperion FernseherAmbilightWohnzimmer DISCONNECTED
    2016-10-10 12:51:23 Hyperion FernseherAmbilightWohnzimmer serverResponse: ERROR
    2016-10-10 12:51:23 Hyperion FernseherAmbilightWohnzimmer ERROR
    2016-10-10 12:51:33 Hyperion FernseherAmbilightWohnzimmer ERROR
    2016-10-10 12:51:33 Hyperion FernseherAmbilightWohnzimmer clearall
    2016-10-10 12:51:33 Hyperion FernseherAmbilightWohnzimmer serverResponse: success
    Der Dummy FernseherWohnzimmer wird per RFHEM gefüllt, da es auf einem zweiten FHEM-System läuft.

DeeSPe

Zu erst einmal zu den Attributen:
Diese gehören auch in diesem Modul grundsätzlich dem User.
Die default-Attribute werden nur wieder hinzugefügt wenn sie ganz gelöscht werden. Sofern die Attribute vom User verändert wurden, werden sie nicht wieder auf default zurück gesetzt. Das hat sich bisher als gute Taktik erwiesen da einige versehentlich (oder nur zum Testen) die Attribute gelöscht hatten und dann nicht mehr wussten wie sie wieder richtig zu setzen sind. Deshalb habe ich mich dazu entschieden diese Attribute automatisch wieder hinzuzufügen wenn sie gelöscht wurden. Da Du nicht mit diesen Attributen arbeitest, dürften sie Dich doch eigentlich auch nicht stören. Wenn wirklich bedarf Besteht könnte ich das noch (per Attribut) konfigurierbar machen.

Zu Deinem notify:
Ich denke (nur vermutet) dass Dein notify einfach auch zu viele Events getriggert wird und somit das Blinken zu Stande kommt.
Ich vermute dass Du das configFile laden willst und auf Ambilight (clearall) umstellen willst (on stellt nur den letzten Zustand wieder her)?

Probiere doch einmal Folgendes:
define Notify_FernseherAmbilightWohnzimmer notify FernseherWohnzimmer:(on|off) {\
  if ($EVENT eq "on") {\
    fhem "set FernseherAmbilightWohnzimmer configFile hyperion.tv" if (ReadingsVal("FernseherWohnzimmer","input","") eq "digitalTV");;\
    fhem "set FernseherAmbilightWohnzimmer configFile hyperion.kodi" if (ReadingsVal("FernseherWohnzimmer","input","") eq "hdmi1");;\
    fhem "set FernseherAmbilightWohnzimmer configFile hyperion.hdmi" if (ReadingsVal("FernseherWohnzimmer","input","") eq "hdmi2");;\
    fhem "sleep 5;; set FernseherAmbilightWohnzimmer clearall";;\
  } else {\
    fhem "set FernseherAmbilightWohnzimmer off";;\
  }\
}\


Somit triggert das notify wirklich nur auf on und off.
Bevor letztendlich auf Ambilight umgeschaltet wird noch 5 Sekunden gewartet damit Hyperion auch wirklich fertig neugestartet ist. Eventuell kannst Du das auch kürzer machen, musst Du ausprobieren.

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

Zu dem DISCONNECTED:
Das kann ich mir leider i.M. nicht erklären.
Ich habe das in meinem Testsystem auch schon eimal entdeckt, konnte es es aber bisher nicht reproduzieren. Hatte die Vermutung dass es evtl. an einem instabilen WLAN lag, denn nachdem ich alles mal neugestartet hatte trat das Problem bisher nicht wieder auf.
Wenn Du das irgendwie reproduzierbar nachstellen kannst, ich wäre gespannt darauf das Rätsel zu lösen.

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