Neues Modul für Hyperion Server 98_Hyperion.pm

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

Vorheriges Thema - Nächstes Thema

meilon

Servus,

ich habe ein kleines Problem mit Hyperion welches dann zu einem Absturz führt:

Wenn ein Kontakt an meinem Raspberry Pi geschlossen wird, dann werden ein paar Kommandos versendet, unter anderem soll das Hyperion erst rot, dann grün, leuchten um den Alarm zu visualisieren. Rot wird es eigentlich auch immer, nur stürzt kurz darauf FHEM ab und es wird nicht grün. Die letzte Meldung im Log ist dann:

Can't use an undefined value as an ARRAY reference at ./FHEM/98_Hyperion.pm line 241.

Das Problem habe ich seit dem vorletzten Update. Was läuft da schief?

Grüße
meilon

DeeSPe

Hi meilon,

vielen Dank für Dein Feedback, auch wenn es nicht erfreulich ist.

Der von Dir berichtete Fehler klingt sehr merkwürdig, denn in Zeile 241 wird lediglich einer Variablen ein Wert (redAdjust) aus dem JSON zugewiesen. Das Merkwürdige daran ist, dass diese Zeile schon seit der ersten Version des Moduls so vorhanden ist und sich nie geändert hat.
Du berichtest dass das Problem seit dem vorletzten Update besteht. Das würde bedeuten seit der Umstellung auf non-blocking. Leider hatte sich für's Testen der non-blocking Version niemand außer jsChris bereit erklärt, sonst wäre das Problem sicher schon vorher jemandem aufgefallen. Damit habe ich als noch recht frischer Modulentwickler wieder was dazu gelernt: Es müssen viel mehr Leute testen bevor ich was per Update verteile. Sorry dafür...

Jedenfalls kann ich den besagten Fehler im Moment weder reproduzieren noch anderwärtig nachvollziehen.

Könntest Du eventuell mal probieren das definierte Hyperion device zu löschen und neu zu definieren? Tritt der Fehler dann auch/wieder auf?

Ich möchte das Problem gerne lösen, im Moment fehlen mir aber Anhaltspunkte woran es liegen könnte.

Vielen Dank im Voraus.

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

meilon

Grrr. Nachdem das Forum wegen eines falsch getippten Captchas meinen kompletten Text gelöscht hat hier nur die Kurzfassung:

Kein Problem, danke das du überhaupt das Modul zur Verfügung stellst!

Ich habe etwas analysiert, an Backup von 98_Hyperion.pm vom 07.08. funktioniert, also muss es wirklich an der Non-Blocking Umstellung liegen.

Bei meinen drei notifys ist mir aufgefallen, dass der für off (neben on und longpress) Perl Code beinhaltet (ich Frage einen Value() ab bevor ich die Kommandos sende). Also nur auf FHEM Befehle "set xxx yyy" abgeändert und FHEM stürzt nicht mehr ab. Warum?

Grüße
meilon

DeeSPe

Das mit dem Perl Code musst Du mal bitte näher erklären!

Hattest Du mal probiert mit der aktuellen Version das Hyperion Device neu zu definieren?

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

Soeben habe ich ein Mini-Update für das Modul eingecheckt.
Ich denke dem Absturzproblem auf die Schliche gekommen zu sein und habe es repariert.

Ab sofort via SVN oder nachher im regulären 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

meilon

Leider hilft das Update nicht. Und ja, ich habe das Device gelöscht und neu definiert (ging beim Neuschreiben unter). Hier der DEF eines normalen FHEM notifys:

RPiAlarmPin:on set RPiAlarmFired ja;set Hyperion rgb aa0000;set HarmonyHub command pause

und hier der Perl-Code notify:

RPiAlarmPin:off {
my $fired = Value('RPiAlarmFired');;
if ($fired eq "ja") {
sleep 15;;
fhem "set Hyperion clearall";;
fhem "set RPiAlarmFired nein";;
}
}

DeeSPe

#141
Habe soeben ein neues Update in SVN eingecheckt bei dem der RegEx für den statusRequest noch enger spezifiziert ist. Ich hoffe somit gehen wirklich nur noch vollständige JSON Daten durch und der Fehler bleibt aus.

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

meilon

1a, funktioniert jetzt ohne jegliche Änderung an meiner Config. Danke für den schnellen Fix!

DeeSPe

Oh schön dass es nun funktioniert!!!!
Danke fürs Testen und die schnelle Rückmeldung.

Ist doch Ehrensache das zu fixen...  8)

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

Spezialtrick

Nachdem ich fast alle anderen Baustellen meiner Fhem Installation beseitigt habe, konnte ich mich gerade endlich diesem Modul widmen.

Ein großes Lob an Dan - tolle Arbeit.  :)

Ein Problem hätte ich leider:

No files found on server 192.168.188.5 in directory /etc/hyperion/. Maybe the wrong directory? If SSH is used, has the user pi been configured to log in without entering a password (http://www.linuxproblem.org/art_9.html)?

Ich habe das remote ssh login entsprechend dem angegeben Link eingerichtet. Es funktioniert auch:

pi@cubietruck:~$ ssh pi@192.168.188.5

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sun Sep 11 16:36:39 2016
pi@Pi:~ $


Trotz allem kann ich keine Config Dateien abrufen.  :-[
FHEM - Debmatic - Zigbee2MQTT - Homekit

DeeSPe

Danke für's Lob.
Das hört man als Entwickler immer mal wieder gerne...  8)
Man will ja schließlich die Arbeit nicht nur für sich alleine gemacht haben.

Deinen geposteten Infos zu Folge hast Du passwortlosen Zugang für den User pi eingerichtet. Das ist für den Anfang auch gar nicht schlecht, aber benötigen tut das der User fhem.
Kopiere doch einfach mal die ssh Daten von pi nach fhem, also:
sudo cp /home/pi/.ssh/* /opt/fhem/.ssh/*
Eventuell musst du den Ordner vorher erst einmal anlegen mit:
sudo mkdir /opt/fhem/.ssh
Und am Ende nicht vergessen die Besitzrechte für User fhem wieder setzen:
sudo chown fhem:dialout /opt/fhem/.ssh

Falls Du andere Pfade verwendest, so müssen die natürlich angepasst werden.

Falls das alles noch nicht zum Erfolg führt, wäre nur noch die Frage ob der Ordner für die Konfig-Dateien /etc/hyperion/ richtig bei Dir 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

Spezialtrick

Zitat von: DeeSPe am 11 September 2016, 21:57:46
Danke für's Lob.
Das hört man als Entwickler immer mal wieder gerne...  8)
Man will ja schließlich die Arbeit nicht nur für sich alleine gemacht haben.

Das kann ich mir gut vorstellen! :)

Das verschieben/kopieren der Dateien an die entsprechende Stelle hat leider nicht wirklich geklappt. Daher habe ich für den Benutzer FHEM das Login per ssh erlaubt und habe über diesen nochmal einen ssh Schlüssel erstellt. Nun kann ich die Config Daten abrufen. :)

Leider findet er von den drei Dateien nur eine, und zwar die "hyperion.config.json". Die "hyperion.config.KODI.json" und "hyperion.config.HDMI.json" ignoriert er gekonnt.

Diesen Fehler konnte ich aber schon alleine beheben. Offenbar ist Vorgabe das der Teil ".config.json" nicht getrennt wird. "Hmdi.config.json" und "Kodi.config.json" funktionieren problemlos. :)

Komischerweise werden mit der aktuellsten Hyperion Version die Effekte nicht mehr geladen. Die Hyperion App am iPhone findet auch keine Effekte mehr. Bei mir liegen sie nun unter:

/usr/share/hyperion/effects

Hat sich da vielleicht etwas geändert?
FHEM - Debmatic - Zigbee2MQTT - Homekit

DeeSPe

Das ist richtig, die Endung .config.json wird beim Einlesen weggelassen damit der Name nicht so lang ist, das ist auch im Changelog und in der commandref so beschrieben.
Allerdings müssen die Dateien eben genau diese Endung haben um gefunden zu werden.

Zu Deinen Effekten kann ich mir nur vorstellen dass der Pfad eventuell in der config.json nicht stimmt.

Wenn keine Effekte gefunden werden, auch nicht in der App, liegt es zumindest nicht an diesem Modul.

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

Spezialtrick

Zitat von: DeeSPe am 12 September 2016, 09:54:06
Zu Deinen Effekten kann ich mir nur vorstellen dass der Pfad eventuell in der config.json nicht stimmt.

Das war's! :)

Vielen Dank für deine Hilfe nun funktioniert alles!  :D
FHEM - Debmatic - Zigbee2MQTT - Homekit

DeeSPe

Sehr schön, so soll das...

Viel Spaß mit Deinem Ambilight.

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