Neues Modul für Hyperion Server 98_Hyperion.pm

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

Vorheriges Thema - Nächstes Thema

Esjay

Zitat von: DeeSPe am 12 April 2022, 15:47:44
Ich weiß zwar nicht was das ist aber ich denke nicht.

Gruß
Dan
Das basiert wohl auf Hyperion NG oder 2.0 oder wie man es auch nennen möchte. Als ich mich zuletzt darüber informiert habe, war HyperHDR sogar noch ein Derivat von Hyperion NG.
Unter dem Strich eine komplett andere API, daher auch nicht kompatiebel.

Zitat von: slawekking am 12 April 2022, 14:29:11
Versuch es mal hier. https://forum.fhem.de/index.php?topic=116433.0

Grüße

Hallo,

unterstuetzt das Modul auch HyperHDR?

Komme uber de Status opended nicht drueber hinweg.

Gruss

Christoph

mp747

Hallo zusammen,

ich habe nicht den ganzen Thread durchgesucht, bin aber gestern wieder über das Thema gestolpert, dass das hyperion-Modul nicht direkt mit hyperion.ng funktioniert. Prinzipiell ist die Anpassung scheinbar einfach (bei mir geht es), aber da ich kein Entwickler bin und nicht weiß wie ein Modul gepatched wird, hier die Frage, ob noch irgendjemand Interesse daran hat, das Modul anzupassen...

Das Problem liegt darin, dass sich die Antwort auf die initiale "serverinfo"-Anfrage zwischen hyperion und hyperion.ng leicht geändert hat:

1.) Normalerweise wird die Version von hyperion geprüft. Das habe ich über das Attribute hyperionVersionCheck umgangen.

2.) Die regex-Ausdrücke zur Validierung der Antworten muss angepasst werden. Folgende Änderung müsste sowohl für hyperion als auch hyperion.ng gehen:

216c216
<  return if ($buf !~ /(^.+"success":(true|false).*\}$)/);
---
>  return if ($buf !~ /(^.+"success":(true|false)\}$)/);
219c219
<  if ($result =~ /^\{"success":true.*\}$/)
---
>  if ($result =~ /^\{"success":true\}$/)
225c225
<  elsif ($result =~ /^\{.*"info":\{.+\}.*"success":true.*\}$/)
---
>  elsif ($result =~ /^\{"info":\{.+\},"success":true\}$/)

3. Die Namen von Farb-Adjustments haben sich geändert. Folgende Änderung führt dazu, dass das Modul mit hyperion.ng geht (aber nicht mehr mit hyperion). Prinzipiell wäre es sinnvoll, wenn man die Versionprüfung erweitert und anhand der Version die Korrekten Namen nutzt (aber ich bin kein Entwickler):

280,282c280,282
<    my $adjR        = $adj ? join(",",@{$adj->{red}}) : undef;
<    my $adjG        = $adj ? join(",",@{$adj->{green}}) : undef;
<    my $adjB        = $adj ? join(",",@{$adj->{blue}}) : undef;
---
>    my $adjR        = $adj ? join(",",@{$adj->{redAdjust}}) : undef;
>    my $adjG        = $adj ? join(",",@{$adj->{greenAdjust}}) : undef;
>    my $adjB        = $adj ? join(",",@{$adj->{blueAdjust}}) : undef;

Ich hoffe, dass das jemand aufgreifen kann...

Viele Grüße!


DeeSPe

Leider habe ich im Moment keine zeitlichen Kapazitäten um an dem Modul die nötigen Änderungen vorzunehmen.
Momentan habe ich auch überhaupt kein Hyperion irgendwo zu laufen, weder das alte noch das neue NG.

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