Neues Modul für Hyperion Server 98_Hyperion.pm

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

Vorheriges Thema - Nächstes Thema

DeeSPe

Ich habe soeben ein Update eingecheckt welches meinen Anfängerfehler behebt.
Die Änderungen habe ich heute Abend lange getestet und denke dass alles wie vorher funktionieren sollte, nur besser.  8)

Changelog:

  • Modul spezifische sets geändert auf Device spezifische sets

Ab morgen im Update.

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

#106
Grüße.

@ Dan

Wie ich sehe, hast du in deiner Signatur ebenfalls die HueBridge drin.
Mir kam da gerade so ein Gedanke!

Wäre es nicht irgendwie möglich,dass Hyperion Farbwerte an die HueBridge sendet, und man die Birnen dann als erweitertes Ambilight nutzt?Vll lässt sich das durch Fhem i-wie verbinden?
Ich muss sagen,der Gedanke das der ganze Raum ein einziges Farbspiel ist, gefällt mir i-wie. ;D  8)

Grüße

DeeSPe

Mit dem Ambilight wird das nicht gehen, da ja jede LED eine andere Farbe haben/annehmen kann.

Bei einfarbiger Einstellung (rgb) geht das relativ simpel ohne es ins Modul programmieren zu müssen.
Einfach ein notify auf das Hyperion Device aufs Reading rgb. Sobald sich das ändert einfach den selben Wert auf die gewünschten Hue Lichter schicken.

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

ScotchTape

Erstmal vielen Dank für das Modul, habe ich schon immer irgendwie vermisst :)

Nun aber zu meinem 'Problem' oder vielleicht ist das ja auch so gewollt?
Wenn Hyperion im Ambilight-Modus (mode clearall) läuft wird der state immer als 'off' ausgegeben, nur wenn ein Effekt ausgegeben wird steht dort dann rgb <hexwert>, was die Abfrage etwas anstrengend macht. ;)
Währe es nicht besser den als 'on' bzw 'ambilight' auszugeben wenn der ursprüngliche state != rgb ist, aber ne priority <= 0 hat?

DeeSPe

Hi ScotchTape,

vielen Dank für Dein Interesse an dem Modul und schön dass es Dir soweit zu gefallen scheint.

Zitat von: ScotchTape am 14 August 2016, 16:16:12
Nun aber zu meinem 'Problem' oder vielleicht ist das ja auch so gewollt?
Wenn Hyperion im Ambilight-Modus (mode clearall) läuft wird der state immer als 'off' ausgegeben, nur wenn ein Effekt ausgegeben wird steht dort dann rgb <hexwert>, was die Abfrage etwas anstrengend macht. ;)

Das ist natürlich nicht so gewollt!!!
Mir war das in meiner Testumgebung auch schon aufgefallen dass es da offenbar noch einen Denkfehler beim Auswerten des JSON bei mir gab. Um ehrlich zu sein habe ich am Anfang überhaupt nicht gewußt wie ich off und clearall auseinanderhalten soll.
Ich habe mich aber eben nochmal rangesetzt und ein paar Sachen probiert die nun in meiner Testumgebung und auch im Livesystem ein zufriedenstellendes Ergebnis liefern.
Habe das Update soeben eingecheckt. Gibt es ab morgen im Update.

Changelog:

  • Bugfix: Status clearall sollte nun zuverlässig in allen Konfigurationen von Hyperion erkannt werden

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

Zusätzlich habe ich noch mit verbose 4 eine Logausgabe eingebaut die beim statusRequest die Priorität ausgibt die clearall gerade hat. Wäre mal interessant was bei Dir, ScotchTape, da für ein Wert kommt.
Die Ausgabe im Log sieht wie folgt aus:
Hyperion_ParseHttpResponse clearall priority: <WERT>

Bei meinem Livesystem ist die Priorität 1100, beim Testsystem (mit Hyperion Dummy Konfig, also keine LEDs dran) ist sie 890.

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

ScotchTape

Moin,

Schön' Schrank für die schnelle Umsetzung :)
Zu deiner Frage bzgl. priority: meine steht immer auf 800, ich vermute ganz stark das er dort den Wert aus der grabber-Sektion übenimmt, bei mir zumindest ist da 800 eingetragen. Kann ich aber heute abend beides testen.
Nen hyperion-remote -l wirft aber zwei aus:


...
"hostname" : "fhem",
   "hyperion_build" : [
      {
         "time" : "Jul 25 2016 06:54:36",
         "version" : "V1.03.2 (brindosch-99d9396/d3713a8-1469452981"
      }
   ],
   "priorities" : [
      {
         "priority" : 100
      },
      {
         "duration_ms" : 4281720437,
         "priority" : 800
      }
   ],


Noch was anderes: was machst du bei 'on'? Bei mir wird dort nur nen effekt abgespielt..? Ich hätte erwartet das er einfach nur ambilight wieder anmacht, also wie bei nem
Hintergrund zu meiner Konfiguration: Hyperion & fhem auf dem selben RPi2, kein homekit. Hyperion wird nur über zustände / aktionen (DOIF) und 2-3 shellscripts gesteuert, Hyperion macht bei mir nur ambilight, den anderen Leuchteffekt-Krempel brauch ich nicht ;)

DeeSPe

Bei "on" stellt das Modul den letzten aktiven Zustand von Hyperion wieder her. Und wenn das eben ein Effekt war (z.B. beim Restart von Hyperion weil ein Startup-Effekt eingestellt ist), dann wird eben dieser Zustand wieder hergestellt.
Du kannst mit "set $NAME mode clearall" den Ambilight Modus "forcen".

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

ScotchTape

#113
Sooo..

mal eben nen Update gefahren, state steht auf clearall, priority auf 100, also im stanby, weil ich nicht zuhause bin. Spasseshalber hyperion mal an gemacht, priority wechselt dann auch auf 800:

],
   "hostname" : "fhem",
   "hyperion_build" : [
      {
         "time" : "Jul 25 2016 06:54:36",
         "version" : "V1.03.2 (brindosch-99d9396/d3713a8-1469452981"
      }
   ],
   "priorities" : [
      {
         "duration_ms" : 970,
         "priority" : 800
      }
   ],


Standby mache ich so:


#!/bin/sh
/usr/bin/hyperion-remote -m 0.1 >/dev/null 2>&1 && /usr/bin/hyperion-remote --color black >/dev/null 2>&1


mit dem set zum forcen kann ich leben :)

achja, den logeintrage finde ich weder im log noch im Eventlog, Hyperion brbbelt da immer nur:

2016-08-15 11:54:35 I2C_TSL2561 TSL2561 gain: 1
2016-08-15 11:54:35 I2C_TSL2561 TSL2561 integrationTime: 0.0137
2016-08-15 11:54:35 I2C_TSL2561 TSL2561 broadband: 129
2016-08-15 11:54:35 I2C_TSL2561 TSL2561 ir: 49
2016-08-15 11:54:35 I2C_TSL2561 TSL2561 luminosity: 871
2016-08-15 11:54:44 Hyperion Ambilight serverResponse: success
2016-08-15 11:54:54 Hyperion Ambilight serverResponse: success
2016-08-15 11:55:00 Hyperion Ambilight serverResponse: success
2016-08-15 11:55:04 Hyperion Ambilight serverResponse: success


Wie gesagt, status und Priority langen mir um das abzufragen und meine shellscripts zu ersetzen :)

DeeSPe

#114
Wenn der Status nun richtig interpretiert wird bin ich froh!

Den Log Eintrag siehst Du nur wenn Du für Dein Hyperion Device das attr verbose kurzzeitig auf 4 setzt.
EDIT: Aber eigentlich ist das gar nicht nötig, denn die aktuelle Priorität wird ja auch als Reading angezeigt, das sollte der selbe Wert sein.

Gruß
Dan

EDIT: standby/aus mache ich per JSON auch über das Setzen von black.
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

Die Umsetzung mir dem Schreiben der Konfig Datei wird noch etwas dauern.
Bin gerade dabei das Modul nonblocking zu machen. Die Kommunikation mit dem JSON Server habe ich schon nonblocking umgesetzt. Die SSH Geschichte nonblocking zu machen stellt mich vor eine neue Herausforderung.
Wenn alles klappt werde ich heute Abend eine erste Testversion hier bereitstellen.

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

#116
Soeben habe ich ein Mini-Update eingecheckt mit folgenden Ergänzungen:

  • neues Attribut disable
  • neues devStateIcon für Effekt Modus
  • commandref summary hinzugefügt

Ab sofort erhältlich via SVN oder ab morgen per regulärem Update.

Muss noch ein Wenig Testen, dann werde ich später die Testversion mit nonblocking hier einstellen.
Würde mich freuen wenn die wieder ein paar Leute testen würden.

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

#117
Hier wie versprochen die erste Testversion nonblocking.

Bisher ist nur die JSON Kommunikation nonblocking.
SSH dauert noch, aber mal schauen ob ich bisher alles wieder fehlerfrei hinbekommen habe.
Das Attribut disable aus dem letzten offiziellen Update ist auch hier enthalten.

Ich freue mich auf Euer Feedback und hoffe dass das Modul sonst läuft wie vorher.

Gruß
Dan

P.S. Nach Einspielen dieser 98_Hyperion.pm wird ein reload des Moduls nicht reichen. Bitte einmal "shutdown restart".
EDIT: P.P.S. Wäre toll wenn auch das Neuanlegen eines Hyperion Device getestet würde. Also einfach nochmal mit neuem Namen ein define des selben Hyperion Servers. Kann danach auch wieder gelöscht werden, ist ja nur zum Testen ob define/undefine funktioniert. Ganz hervorrangend wäre auch ein Wheezy-Tester.
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

#118
Anbei eine neue Testversion.
"shutdown restart" muss nach Einspielen des neuen Moduls 1x ausgeführt werden, da sich der Verbindungsaufbau grundlegend verändert hat.

In dieser Version habe ich zusätzlich noch am devStateIcon für den RGB Modus gefeilt. Es wird nun das passende Icon zur jeweiligen Dim-Stufe angezeigt.

Gruß
Dan

EDIT: Testversion entfernt, seit 25.8.2016 in SVN übernommen und per Update erhältlich.
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 ein kleines Update eingecheckt.
Neu enthalten ist nur das "devStateIcon mit dim Wert für RGB Modus" aus der aktuellen Beta Version aus dem vorherigen Post.

Ab sofort erhältlich via SVN oder ab morgen per regulärem Update.

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