Neues Modul für Hyperion Server 98_Hyperion.pm

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

Vorheriges Thema - Nächstes Thema

DeeSPe

Bitte im Dateinamen nicht die zusammengehörige Endung ".config.json" zerreissen, denn nach dieser werden die Dateien gesucht.
Benenne sie einfach "hyperion.ext.config.json" und "hyperion.kodi.config.json".

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

Klouse

Hey,

oh Mann - perfekt, Problem gelöst! :)

Vielen Dank!

LG,
Klaus

Schlimbo

Hi Dan,
habe mir nach der Anleitung:
http://www.forum-raspberrypi.de/Thread-hyperion-tutorial-esp8266-nodemcu-addon-wifi-led-controller-udp
einen ESP8266, mit angeschlossen WS2812 LED Stripe, über WIFI an eine Hyperion Instanz angebunden.
Somit habe ich mittlerweile schon drei Hyperion Instanzen laufen. 8)
Vor einiger Zeit war mal ein shutdown/restart Befehl für Hyperion im Gespräch:
https://forum.fhem.de/index.php/topic,55112.msg538287.html#msg538287
Würde mich freuen wenn du das shutdown/restart & Prozess-ID Thema noch mal ausgraben könntest? ;)

Beste Grüße Schlimbo

triagony

#423
Guten Tag!
Ich bin nun von Pimatic zu FHEM gewechselt. Aller Anfang ist schwer, wie mir scheint. Ich betreibe FHEM unter Xen als VM (Ubuntu) und habe es wenigstens schon Mal geschafft, einen nanoCUL mit 433 MHz zum Laufen zu bringen. Nun versuche ich mich an hyperion, das bei mir auf einem Pi im Schlafzimmer läuft. Das läuft soweit auch. Allerdings habe ich häufiger Disconnects und das Senden von Befehlen funktioniert auch eher unzuverlässig. Außerdem haut irgendwas mit der ssh-Verbindung nicht hin. Ich habe auf dem Pi den User root "freigeschaltet" und das passwortlose Login per SSH vom FHEM-Server zum Pi (mit dem User root) funktioniert auch. Allerdings erscheint bei mir die Meldung, dass unter /etc/hyperion/ keine Dateien gefunden werden. Ich habe dort aber meine hyperion.config.json liegen (ja, da bin ich sicher).  Hat jemand eine Idee, wie ich FHEM nun dazu bringen kann, die Config auch zu sehen?

PS: attr Bettlicht hyperionSshUser root ist gesetzt...

Besten Dank im Voraus!

-triagony

Gesendet von meinem HTC 10 mit Tapatalk

Schlimbo

Hallo triagony,
erstmal herzlich Willkommen im FHEM Forum :).
Wenn unter /etc/hyperion/ keine Konfiguration gefunden wird stimmt höchstwahrscheinlich etwas mit dem ssh Zugang nicht.
Hier noch mal ein paar Dinge, die oft falsch gemacht werden:
-SSH Zugang für den user: "fhem" (viele sind auf der Konsole mit einem anderen User eingeloggt!)
-key file (authorized_keys) in dem home Verzeichnis des users "fhem" (z.B. /opt/fhem/.ssh)
-passende known_hosts Datei im .ssh Ordner
-richtige Berechtigungen der key file:
chown -R fhem:dialout /opt/fhem/.ssh
chmod 700 /opt/fhem/.ssh
chmod 500 /opt/fhem/.ssh/authorized_keys


zu:
ZitatAllerdings habe ich häufiger Disconnects und das Senden von Befehlen funktioniert auch eher unzuverlässig.
Die Steuerung von Hyperion läuft ja nicht über ssh, wenn du hier Probleme hast gehe ich eher von Netzwerk Problemen aus. Funktioniert die Steuerung denn über andere Geräte problemlos? (z.B. Hyperion APP)

Gruß Schlimbo

DeeSPe

Zitat von: Schlimbo am 19 September 2017, 19:22:58
Hi Dan,
habe mir nach der Anleitung:
http://www.forum-raspberrypi.de/Thread-hyperion-tutorial-esp8266-nodemcu-addon-wifi-led-controller-udp
einen ESP8266, mit angeschlossen WS2812 LED Stripe, über WIFI an eine Hyperion Instanz angebunden.
Somit habe ich mittlerweile schon drei Hyperion Instanzen laufen. 8)
Vor einiger Zeit war mal ein shutdown/restart Befehl für Hyperion im Gespräch:
https://forum.fhem.de/index.php/topic,55112.msg538287.html#msg538287
Würde mich freuen wenn du das shutdown/restart & Prozess-ID Thema noch mal ausgraben könntest? ;)

Beste Grüße Schlimbo

Hey Schlimbo,

sorry, hatte Deinen Post wohl übersehen.
Ich komme voraussichtlich erst ab November wieder mal dazu mich um die Weiterentwicklung meiner Module zu kümmern.
Dein Wunsch sollte machbar sein, brauche aber geistige Ruhe dafür. Bin gerade mit anderen Nicht-Programmier-Projekten aus- und überlastet... ???

@triagony:
Wie Schlimbo schon beschrieben hat muss der Linux-User unter dem FHEM läuft (meist fhem) für den passwortlosen SSH Zugang zum Hyperion Host konfiguriert sein.

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

triagony

#426
Danke für die Antworten! Der Linux-User, unter dem FHEM läuft, hat bei mir passwortlosen SSH -Zugang zum Pi mit Hyperion.. es ist aber nicht der User "fhem", sondern ein anderer User. Vielleicht liegt es ja tatsächlich daran.

Ich hätte aber noch eine andere Frage, an der ich gerade verzweifel ... Ich möchte morgens mit einem Lichtwecker (Hyperion) geweckt werden - also mit ansteigender Helligkeit der LEDs über einen bestimmten Zeitraum. Ich versuche, das ganze mit DOIF zu realisieren, scheitere aber gerade.

So sieht es bei mir aus:


DEF
([06:06]) (set Bettlicht dim 1) (set $SELF cmd_2)
DOELSEIF (0)(set Bettlicht dimUp)



attr repeatcmd 0:3
attr repeatsame 1:99


Leider wird zwar "dim" schrittweise hochgezählt, aber das vorher auszuführende "dim 1" wird nicht ausgeführt bzw. zeigt keine Wirkung, so dass er immer beim letzten gespeicherten DimLevel startet...

Hat jemand eine Idee für einen Lösungsansatz?

Danke!
-triagony

Gesendet von meinem HTC 10 mit Tapatalk

triagony



Zitat von: Schlimbo am 10 Oktober 2017, 18:48:46
Hier noch mal ein paar Dinge, die oft falsch gemacht werden:
-SSH Zugang für den user: "fhem" (viele sind auf der Konsole mit einem anderen User eingeloggt!)
...

Danke, das war's! :)



Gesendet von meinem HTC 10 mit Tapatalk


triagony

Mein Dim-Problem hab ich mithilfe von wait nun auch lösen können.

Gesendet von meinem HTC 10 mit Tapatalk


adn77

Ich habe auch ein paar ESP8266 mit LED Streifen als Ambilight und als Farblampen im Einsatz. Als Basis benutze ich ebenfalls https://forum-raspberrypi.de/forum/thread/25242-tutorial-esp8266-nodemcu-addon-wifi-led-controller-udp/ in leicht abgewandelter Form.

Da man mit dem Gerät nicht nur Hyperion UDP Pakete empfangen kann, sondern auch JSON verarbeiten kann, nutze ich nur fürs Ambilight Hyperion und steuer die Farblampen direkt per JSON an (z.B. über die Hyperion App).

Gerne würde ich das JSON Interface dahin gehend erweitern, das das FHEM Hyperion Modul die richtigen Antworten bekommt. Allerdings scheint es inzwischen zu viele Hyperion Versionen zu geben...

Nach welcher Schnittstellenbeschreibung wurde das FHEM Modul gebaut?

Schlimbo

Zitat von: DeeSPe am 11 Oktober 2017, 00:49:09
Ich komme voraussichtlich erst ab November wieder mal dazu mich um die Weiterentwicklung meiner Module zu kümmern.
Dein Wunsch sollte machbar sein, brauche aber geistige Ruhe dafür. Bin gerade mit anderen Nicht-Programmier-Projekten aus- und überlastet... ???
Kein Problem, lass dir Zeit, ich warte  ;)

Kuzl

Zitat von: adn77 am 12 Oktober 2017, 00:39:20
Gerne würde ich das JSON Interface dahin gehend erweitern, das das FHEM Hyperion Modul die richtigen Antworten bekommt. Allerdings scheint es inzwischen zu viele Hyperion Versionen zu geben...

Nach welcher Schnittstellenbeschreibung wurde das FHEM Modul gebaut?

Wenn das im ersten Beitrag noch stimmt dann V1.03.2.

Schlimbo

Hallo Dan,
habe gerade festgestellt, dass der Befehl "set configFile" mein FHEM ca. 2 Sekunden blockiert, wäre es möglich die SSH Kommunikation auch non-blocking durchzuführen?
Gruß Schlimbo

adn77

Hi ich habe den ESP8266 Sketch von Scilor (https://forum-raspberrypi.de/forum/thread/25242-tutorial-esp8266-nodemcu-addon-wifi-led-controller-udp/) stark überarbeitet, dass es sich auf der JSON Seite wie ein richtiges Hyperion verhält.

Dabei sind mir ein paar "Probleme" mit dem 98_Hyperion Modul aufgefallen:
--- FHEM/98_Hyperion.pm.orig    2017-10-19 20:32:57.753505917 +0200
+++ FHEM/98_Hyperion.pm 2017-10-20 20:05:51.862932221 +0200
@@ -211,7 +211,8 @@
   return if ($buf !~ /(^.+"success":(true|false)\}$)/);
   Log3 $name,5,"$name: url $hash->{DeviceName} returned result: $result";
   delete $hash->{PARTIAL};
-  $result =~ /(\s+)?\/{2,}.*|(?:[\t ]*(?:\r?\n|\r))+/gm;
+#  $result =~ /(\s+)?\/{2,}.*|(?:[\t ]*(?:\r?\n|\r))+/gm;
+  $result =~ s/[\r|\n]//gm;
   if ($result =~ /^\{"success":true\}$/)
   {
     fhem "sleep 1; get $name statusRequest"
@@ -931,7 +932,7 @@
   return ".*:off:toggle"
     if (Value($name) eq "off");
   return ".*:light_exclamation"
-    if (Value($name) =~ /^(ERROR|disconnected)$/);
+    if ( (Value($name) =~ /^(ERROR|disconnected)$/ && !$hash->{INTERVAL}) || (Value($name) =~ /^(ERROR)$/ && $hash->{INTERVAL}) );
   return ".*:light_light_dim_$ico@#".$rgb.":toggle"
     if (Value($name) ne "off" && ReadingsVal($name,"mode","") eq "rgb");
   return ".*:light_led_stripe_rgb@#FFFF00:toggle"


Was soll die RegEx bewirken? $result =~ /(\s+)?\/{2,}.*|(?:[\t ]*(?:\r?\n|\r))+/gm;
Meine Zeilenenden hat sie zumindest nicht abgeschnitten.

Dann habe ich noch eine Frage bzgl. des ständigen Verbindungsmodes (ohne INTERVAL).
Wenn ich hier ein Kommando schicke (Farbe oder Effekt setzen), dann fragt das Modul nicht automatisch den "serverinfo" ab, so dass der neue Status auch nicht in die Readings gelangt.

Erwartet das Modul, dass Hyperion ein "info{}" JSON nach dem {"success":true} schickt?

Schlimbo

Zitat von: adn77 am 20 Oktober 2017, 20:44:31
Hi ich habe den ESP8266 Sketch von Scilor (https://forum-raspberrypi.de/forum/thread/25242-tutorial-esp8266-nodemcu-addon-wifi-led-controller-udp/) stark überarbeitet, dass es sich auf der JSON Seite wie ein richtiges Hyperion verhält.

Das hört sich ja echt super an, hätte daran auf jeden Fall auch Interesse, so könnte man die ESP Version dann auch standalone nutzen 8)
Wenn du jemanden zum testen brauchst... stelle mich gerne zur Verfügung.
Meinst du es wäre auch möglich die "Priority" Funktion hier mit einzubauen?

Gruß
Schlimbo