Topic-icon OpenHAB auf einer QNAP-NAS installieren

Mehr
19 Jun 2015 16:44 #16 von Jürgen
Das stimmt - das habe ich auch übersehen.

Hier ein Auszug aus meiner ITEM:
Rollershutter Rolladen_EG_Wohnzimmer "Rolladen" (EG_Wohnzimmer) { exec=">[STOP:lynx http://192.168.178.199/postEvent.html?action=input&STM=0&MOD=2&CHA=6&EVT=2] >[UP:lynx http://192.168.178.199/postEvent.html?action=input&STM=0&MOD=2&CHA=7&EVT=4] >[DOWN:lynx http://192.168.178.199/postEvent.html?action=input&STM=0&MOD=2&CHA=6&EVT=4]" }

Der "lynx"-Befehl - besser gesagt das Lynx-Programm ist ja nur ein Text-basierter Browser unter Linux. Das habe ich benutzen müssen, da das klassische HTTP-Binding von OpenHAB bei mir irgendwie nicht korrekt funktionierte. Ich habe dann diesen Workaround benutzt, indem ich über einen Browser die HTTP-Befehle absetze.

Unter einem "normalen" Linux-System wie Debian würde ich dir empfehlen einfach mal auf Kommandozeile den Befehl "lynx" einzutippen (oder auch "lynx http://<IP>//postEvent.html?action=input&STM=0&MOD=2") und schauen, ob das funktioniert.

Falls Du in deiner NAS keine Kommandozeile hast, wird es schwierig. Dann wird wohl aber auch kein Lynx vorhanden sein - wozu auch.

In diesem Falle: HTTP-Binding ausprobieren oder OpenHAB doch auf einem anderen System laufen lassen. (z. B. Raspberry o. ä.)

Gruß
Jürgen

"The quiter you become the more you are able to hear ..."
(PHC STM V3, EMD, AMD, JRM, Netatmo-Wetterstation - Visualisierung mit OpenHAB)

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Ricotchet
  • Ricotchets Avatar Autor
  • Offline
  • Senior Boarder
  • Senior Boarder
Mehr
19 Jun 2015 18:37 #17 von Ricotchet
Ricotchet antwortete auf OpenHAB auf einer QNAP-NAS installieren
Hallo Zusammen bin jetzt zuhause um das ganze einfacher zu gestalten habe Openhab unter Windows 7 laufen.

Nun versuche ich ein HTTP binding für licht wie folgt:

Switch EG_Buro_Licht_Decke "Decke" { http=">[ON:POST:http://192.168.179.28:80/postEvent.html?action=input&STM=0&MOD=16&CHA=0&EVT=2]"}


Leider ohne erfolg warum? :(

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
19 Jun 2015 20:10 - 19 Jun 2015 20:14 #18 von Jürgen

Hallo Zusammen bin jetzt zuhause um das ganze einfacher zu gestalten habe Openhab unter Windows 7 laufen.

Nun versuche ich ein HTTP binding für licht wie folgt:

Switch EG_Buro_Licht_Decke "Decke" { http=">[ON:POST:http://192.168.179.28:80/postEvent.html?action=input&STM=0&MOD=16&CHA=0&EVT=2]"}


Leider ohne erfolg warum? :(


Wenn du die HTTP-Anweisung in eine Browser-Zeile eingibst - funktioniert es dann?

Ich hatte das gleiche Problem. Siehe auch: phc-forum.de/index.php/forum/visualisier...indung-an-openhab#60

Fakt ist, dass die V3-Steuereinheit keinen HTTP-POST-Befehl verträgt, sondern nur HTTP-GET.

Nun kommt das nächste Problem (zumindest bei mir): Beim HTTP-GET werden bei mir mehrfache HTTP-Befehle zur Steuereinheit gesendet. Siehe hier:
phc-forum.de/index.php/forum/visualisier...indung-an-openhab#64

Genau das war dann der Grund den Workaround mit "Lynx" anzuwenden. Unter Windows könntest du jetzt z. B. den Internet-Explorer oder Firefox nehmen. Das habe ich gerade selbst getestet - und es funktioniert (Beispiel: "c:\program files\Internet Explorer\iexplore http://192.168.179.28:80/postEvent.html?action=input&STM=0&MOD=16&CHA=0&EVT=2")

Der riesige Nachteil dieser Lösung ist aber, dass bei jedem Schaltbefehl ein "Zombie-Internet-Explorer" auf dem System stehen bleibt, da sich der IE (oder Firefox) nach dem Ausführen nicht selber wieder beendet. Es gibt dafür auch leider keinen Parameter. Andere Browser habe ich jetzt nicht getestet.

Allerdings (was ich bisher auch nicht wusste) gibt es Lynx auch für Windows: lynx.browser.org/
Einfach mal installieren und ausprobieren. Das sollte genauso gut funktionieren wie unter Linux.

Zum Testen ist das sicherlich ein guter Weg. Die Frage ist aber: Wo soll OpenHAB später dann 24x7 laufen?

Gruß
Jürgen

"The quiter you become the more you are able to hear ..."
(PHC STM V3, EMD, AMD, JRM, Netatmo-Wetterstation - Visualisierung mit OpenHAB)
Letzte Änderung: 19 Jun 2015 20:14 von Jürgen.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Ricotchet
  • Ricotchets Avatar Autor
  • Offline
  • Senior Boarder
  • Senior Boarder
Mehr
19 Jun 2015 20:19 #19 von Ricotchet
Ricotchet antwortete auf OpenHAB auf einer QNAP-NAS installieren
im Internet Explorer funktioniert der htttp Befehl.

Ich bin jetzt schon etwas weiter mitlerwweile läuft Openhab auf meinem QNAP Nas
was mir jetzt noch fehlt ist Lynx.
Leider bin ich in Linux wirklich kein As du hänge jetzt ein bischen fest.
Die Frage ist wo finde ich die richtige Version von lynx

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
19 Jun 2015 20:29 #20 von Jürgen
Bist Du sicher, dass kein lynx auf dem System installiert ist? Was passiert, wenn du auf der Kommandozeile lynx aufrufst?

Anscheinend gibt es auf der QNAP-NAS einen Paket-Installer "ipkg".

Wie lauten die Parameter von ipkg? (Aufruf: ipkg --help) -> Achtung 2 x "-"

Folgendes würde ich mal ausprobieren:
> ipkg update
> ipkg install lynx

Das könnte funktionieren, wenn die Syntax ähnlich den gängigen Linux-Systemen ist.

"The quiter you become the more you are able to hear ..."
(PHC STM V3, EMD, AMD, JRM, Netatmo-Wetterstation - Visualisierung mit OpenHAB)

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Ricotchet
  • Ricotchets Avatar Autor
  • Offline
  • Senior Boarder
  • Senior Boarder
Mehr
19 Jun 2015 21:23 #21 von Ricotchet
Ricotchet antwortete auf OpenHAB auf einer QNAP-NAS installieren
Das hatte ich versucht jedoch bekomme ich dann ipkg: unbekannter Befehl
hänge jetzt hier Fest siehe QNAP Forum
qnap forum

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Ricotchet
  • Ricotchets Avatar Autor
  • Offline
  • Senior Boarder
  • Senior Boarder
Mehr
20 Jun 2015 19:52 - 20 Jun 2015 19:54 #22 von Ricotchet
Ricotchet antwortete auf OpenHAB auf einer QNAP-NAS installieren
lynx ist drauf hat aber länger gedauert.
Leider funktioniert der http Befehl nicht einer ne Idee?

[~] # lynx http://192.168.179.28:80/postEvent.html?action=input&STM=0&MOD=16&C>
[29] 3575
[30] 3576
[31] 3577
[32] 3578
[~] #


Er scheint die & Zeichen irgend wie zu interpretieren
Letzte Änderung: 20 Jun 2015 19:54 von Ricotchet.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
20 Jun 2015 19:58 #23 von Jürgen
Das ist Linux-Wissen:

Wenn in einem Befehl ein "&"-Zeichen enthalten ist, wird Linux diesen Befehl als Hintergrund-Job ausführen.

Wenn du lynx auf der Kommandozeile aufrufst, musst du den http-Befehl in Anführungszeichen setzen:
lynx "http://192.168.179.28:80/postEvent.html?action=input ...... "

In der OpenHAB-Item-Konfiguration darfst du die Anführungszeichen aber nicht benutzen!

Gruß
Jürgen

"The quiter you become the more you are able to hear ..."
(PHC STM V3, EMD, AMD, JRM, Netatmo-Wetterstation - Visualisierung mit OpenHAB)

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Ricotchet
  • Ricotchets Avatar Autor
  • Offline
  • Senior Boarder
  • Senior Boarder
Mehr
21 Jun 2015 00:08 #24 von Ricotchet
Ricotchet antwortete auf OpenHAB auf einer QNAP-NAS installieren
Also wieder ein kleiner Schritt für mich und ein noch kleinerer für die Menschheit :lol:

Unter der Console funktioniert der folgende Befehl und mein Büro lich t wechselt den zustand:

lynx "http://192.168.179.28:80/postEvent.html?action=input&STM=0&MOD=16&CHA=0&EVT=2"


ich habe diesen Befehl imOpenhab und es passiert nichts :angry:

Switch EG_Buro_Licht_Decke "Decke1" { exec=">[*:lynx http://192.168.179.28:80/postEvent.html?action=input&STM=0&MOD=16&CHA=0&EVT=2]" }

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
21 Jun 2015 00:14 #25 von Jürgen
Was steht denn in den Logs?

"The quiter you become the more you are able to hear ..."
(PHC STM V3, EMD, AMD, JRM, Netatmo-Wetterstation - Visualisierung mit OpenHAB)

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Ricotchet
  • Ricotchets Avatar Autor
  • Offline
  • Senior Boarder
  • Senior Boarder
Mehr
21 Jun 2015 00:17 - 21 Jun 2015 00:23 #26 von Ricotchet
Ricotchet antwortete auf OpenHAB auf einer QNAP-NAS installieren
jetzt müsste ich nur noch wissen wo ich die finde :huh:

Habs gefunden ich poste gleich mal
Letzte Änderung: 21 Jun 2015 00:23 von Ricotchet.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Ricotchet
  • Ricotchets Avatar Autor
  • Offline
  • Senior Boarder
  • Senior Boarder
Mehr
21 Jun 2015 00:44 #27 von Ricotchet
Ricotchet antwortete auf OpenHAB auf einer QNAP-NAS installieren
Da ich ne menge Fehler hatte hab ich zurück die demo Version draufgespielt :
Und diese um folgendes erweitert

Switch Light_GF_Corridor_Ceiling "Ceiling" (GF_Corridor, Lights) { exec=">[*:lynx http://192.168.179.28:80/postEvent.html?action=input&STM=0&MOD=16&CHA=0&EVT=2]" }
Switch Light_GF_Kitchen_Ceiling "Ceiling" (GF_Kitchen, Lights) { exec=">[*:lynx http://192.168.179.28:80/postEvent.html?action=input&STM=0&MOD=16&CHA=0&EVT=2]" }
Switch Light_GF_Kitchen_Table "Table" (GF_Kitchen, Lights) { exec=">[*:lynx http://192.168.179.28:80/postEvent.html?action=input&STM=0&MOD=16&CHA=0&EVT=2]" }

in der openhab.log Datei steht bei jedem schalten

2015-06-21 00:39:46.769 [WARN ] [t.i.s.MapTransformationService] - Could not find a mapping for '-' in the file 'en.map'.


und in der Events.log Datei

2015-06-21 00:39:05 - Light_GF_Corridor_Ceiling received command ON
2015-06-21 00:39:15 - Light_GF_Corridor_Ceiling received command OFF
2015-06-21 00:39:36 - Light_GF_Corridor_Ceiling received command ON
2015-06-21 00:39:46 - Light_GF_Corridor_Ceiling received command OFF

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
21 Jun 2015 08:08 - 21 Jun 2015 08:27 #28 von Jürgen
Die Item-Datei scheint korrekt zu sein. Im openhab.log stehen auch keine Fehler.

Erste Frage: Ist das EXEC-Binding unter Openhab überhaupt installiert? Gehe mal in das ADDON-Verzeichnis von Openhab (Unterverzeichnis der Openhab-Installation) und prüfe, ob die Datei "org.openhab.binding.exec-1.7.0.jar" vorhanden ist:
root@icinga:/usr/bin# cd /usr/share/openhab/addons/
root@icinga:/usr/share/openhab/addons# ls -la
insgesamt 1136
drwxr-xr-x 2 root root   4096 Jun 18 08:25 .
drwxr-xr-x 7 root root   4096 Jun 10 21:23 ..
-rw-r--r-- 1 root root  80794 Mai 25 22:45 org.openhab.binding.astro-1.7.0.jar
-rw-r--r-- 1 root root  63873 Mai 25 22:48 org.openhab.binding.exec-1.7.0.jar
-rw-r--r-- 1 root root  19503 Mai 25 22:49 org.openhab.binding.http-1.7.0.jar
(usw...)


Jetzt wirds schwierig. Da ich deine QNAP - bzw. deren Betriebssystem und Openhab-Installation nicht kenne - kann ich allenfalls Tipps geben, wie man unter Linux vorgehen würde. Vielleicht kommst du dann auf die Problem-Ursache.

Meine erste Annahme ist, dass Du auf der QNAP als Benutzer "root" - also mit sämtlichen Rechten ausgestattet - angemeldet bist.

Du hast ja schon Tests gemacht mit dem lynx-Aufruf. Lynx ist also installiert. Wie bei DOS/Windows werden Programme über einen so genannten "Pfad" gefunden. Da jeder User aber ein anderes "Environment" (=Umgebungsvariablen und somit Pfad-Angabe) haben kann, Könnte es ganz einfach sein, dass lynx gar nicht gefunden wird. Mein erster Versuch wäre also lynx mit komplettem Pfad aufzurufen.

Unter Linux erhält man mit dem Befehl "which lynx" den Speicherort (oder die Speicherorte falls es mehrere gibt) zurück:
root@icinga:~# which lynx
/usr/bin/lynx

In meinem Fall also unter "/usr/bin"

Erster Versuch wäre also im EXEC-Binding den Programmaufruf voll qualifiziert mit Pfadangabe zu machen: "[*:/usr/bin/lynx http://192.168.179.28...."

Falls das dann immer noch nicht funktioniert, würde sich mir die Frage stellen, ob der User unter dem Openhab läuft auch Berechtigt ist, lynx zu starten.

Mit dem "ps"-Befehl kann man nachschauen, ob und unter welchem User Openhab läuft. Da die Ausgabe sehr lang wird (sämtliche Prozesse werden angezeigt), kann man einen Filter setzen durch die Angabe von "| grep openhab":
root@icinga:~# ps faux | grep openhab
root     24718  0.0  0.0   9896   924 pts/0    S+   08:00   0:00          \_ grep openhab
openhab    972  0.2 15.2 2032524 235632 ?      Sl   Jun19   6:08 /usr/bin/java -Dlogback.configurationFile=/etc/openhab/logback.xml -Dosgi.clean=true -Declipse.ignoreApp=true -Dosgi.noShutdown=true -Djetty.port=8080 -Dopenhab.configfile=/etc/openhab/configurations/openhab.cfg -Dopenhab.configdir=/etc/openhab/configurations -Dopenhab.logdir=/var/log/openhab -Dsmarthome.userdata=/var/lib/openhab -Djetty.home=/usr/share/openhab -Djetty.port.ssl=8443 -Djetty.config=/etc/openhab/jetty -Djetty.logs=/var/log/openhab -Djetty.rundir=/usr/share/openhab -Dfelix.fileinstall.dir=/usr/share/openhab/addons -Dfelix.fileinstall.filter=.*\.jar -Djava.library.path=/usr/share/openhab/lib -Djava.security.auth.login.config=/etc/openhab/login.conf -Dorg.quartz.properties=/etc/openhab/quartz.properties -Dequinox.ds.block_timeout=240000 -Dequinox.scr.waitTimeOnBlock=60000 -Dfelix.fileinstall.active.level=4 -Djava.awt.headless=true -jar /usr/share/openhab/server/plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar -configuration /var/lib/openhab/workspace -data /var/lib/openhab/workspace -console 5555

Das Ergebnis liefert zwei Zeilen zurück. Die erste ist einfach meine Kommandozeile mit der Suche - die zweite der eigentliche Openhab-Daemon. In meinem Fall läuft Openhab unter einem User "openhab" (siehe Anfang der Zeile).

Nun würde ich schauen, ob dieser User überhaupt berechtigt ist lynx zu starten.

Dazu schaue ich mir mal die Attribute von lynx an:
root@icinga:/usr/bin# which lynx
/usr/bin/lynx
root@icinga:/usr/bin# cd /usr/bin
root@icinga:/usr/bin# ls -la lynx
-rwxr-xr-x 1 root root 1489712 Mär 26  2012 lynx
root@icinga:/usr/bin# chmod a+x lynx

Ich wechsle also in das Verzeichnis wo lynx gespeichert ist und zeige mir mit "ls" mal das Inhaltsverzeichnis an. In der ersten Spalte "-rwxr-xr-x" stehen die Attribute. Das "x" steht für "Ausführen". Da sollte 3 mal ein "x" stehen. Falls nicht, kann man das als Benutzer "root" mit dem "chmod"-Befehl setzen.

So das war mal eine schnelle Linux-Fehlereingrenzung. Das sind auf jeden Fall die Hauptursachen für dein Problem. Probier das mal aus. Grundsätzlich wäre es aber auch wichtig, sich gewisse Grund-Linuxkenntnisse anzueignen. :whistle:

Gruß
Jürgen

"The quiter you become the more you are able to hear ..."
(PHC STM V3, EMD, AMD, JRM, Netatmo-Wetterstation - Visualisierung mit OpenHAB)
Letzte Änderung: 21 Jun 2015 08:27 von Jürgen.
Folgende Benutzer bedankten sich: Ricotchet

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Ricotchet
  • Ricotchets Avatar Autor
  • Offline
  • Senior Boarder
  • Senior Boarder
Mehr
21 Jun 2015 21:03 #29 von Ricotchet
Ricotchet antwortete auf OpenHAB auf einer QNAP-NAS installieren
Hallo Jürgen danke für deine Geduld mit mir.

Also du hattest gleich mehrmals recht.
1. Das Exec binding war nicht drauf hatte es vertauscht mit "org.openhab.persistence.exec-1.7.0"
2. Lynx muss mit kompletten Pfad ausgeführt werden.
in meinem Fall /opt/bin/lynx
dann kommt im openhab log:

2015-06-21 20:54:01.516 [INFO ] [.o.b.exec.internal.ExecBinding] - executed commandLine '/opt/bin/lynx http://192.168.179.28:80/postEvent.html?action=input&STM=0&MOD=16&CHA=0&EVT=2'
2015-06-21 20:54:01.763 [WARN ] [t.i.s.MapTransformationService] - Could not find a mapping for '-' in the file 'en.map'.


So nun zum Benutzer:

[/opt/bin] # ps | grep openhab
32149 admin 548 S grep openhab

[/opt/bin] # ls -la lynx
-rwxr-xr-x 1 admin administ 1141424 Feb 17 2012 lynx*
[/opt/bin] #


ist doch OK der Benutzer admin sollte es ausführen können,
Leider geht das Licht immer noch nicht an.

Hast du noch einen Tipp und ja du hast recht wird Zeit für Linux :blush:

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
21 Jun 2015 21:27 #30 von Jürgen

dann kommt im openhab log:

2015-06-21 20:54:01.516 [INFO ] [.o.b.exec.internal.ExecBinding] - executed commandLine '/opt/bin/lynx http://192.168.179.28:80/postEvent.html?action=input&STM=0&MOD=16&CHA=0&EVT=2'
2015-06-21 20:54:01.763 [WARN ] [t.i.s.MapTransformationService] - Could not find a mapping for '-' in the file 'en.map'.


So nun zum Benutzer:

[/opt/bin] # ps | grep openhab
32149 admin 548 S grep openhab

[/opt/bin] # ls -la lynx
-rwxr-xr-x 1 admin administ 1141424 Feb 17 2012 lynx*
[/opt/bin] #


Ich fange mal von Hinten an. Die Rechte von lynx scheinen in Ordnung zu sein. Bei der Prozessanzeige wird nur dein eigener ps-Befehl angezeigt. Du musst ps mit Parameter aufrufen: "ps faux | grep openhab" (siehe mein Beispiel im vorherigen Post).

Was ich selbst nicht weiß: Ob die WARN-Meldung mit dem fehlenden Mapping irgendwelche negativen Auswirkungen hat.

Grundsätzlich glaube ich aber, dass das Problem noch irgendwas mit fehlenden oder falschen Rechten zu tun hat. Es gibt ja auch Befehle, die ein "normaler" User einfach nicht ausführen darf. Beispiel Befehl "shutdown" - das darf nur der Chef-User ... und der ist bei Linux-Systemen immer der Benutzer "root". Auf deiner NAS bewegst Du dich aber als Benutzer "admin". Nun könnte es sein, dass hier der User "admin" quasi dem "root" entspricht. Oder aber, dass es auch noch einen Benutzer "root" gibt.

Linux-Quick-Tipp:
- Befehl "whoami" zeigt an, als was für ein User du gerade angemeldet bist.
- Mit dem Befehl "su" (Switch User) kann der Benutzer gewechselt werden. Ein "su" ohne weitere Angabe wechselt normalerweise zum Benutzer "root" (meistens mit einer Passwortaufforderung)

Probier doch mal ein su und anschließend ein whoami. Mich würde es nur interessieren, ob es auch einen Benutzer "root" gibt.
Du könntest auch mal ein "cat /etc/passwd" machen. Dann werden alle im System verfügbaren User aufgelistet. Hier wird der User "admin" auftauchen und auch alle anderen.

Gruß
Jürgen

"The quiter you become the more you are able to hear ..."
(PHC STM V3, EMD, AMD, JRM, Netatmo-Wetterstation - Visualisierung mit OpenHAB)

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Powered by Kunena Forum