OpenHAB auf einer QNAP-NAS installieren
- Jürgen
- Offline
- Moderator
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
- Autor
- Offline
- Senior Boarder
- Beiträge: 69
- Dank erhalten: 1
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.
- Jürgen
- Offline
- Moderator
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)
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Ricotchet
- Autor
- Offline
- Senior Boarder
- Beiträge: 69
- Dank erhalten: 1
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.
- Jürgen
- Offline
- Moderator
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
- Autor
- Offline
- Senior Boarder
- Beiträge: 69
- Dank erhalten: 1
hänge jetzt hier Fest siehe QNAP Forum
qnap forum
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Ricotchet
- Autor
- Offline
- Senior Boarder
- Beiträge: 69
- Dank erhalten: 1
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
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Jürgen
- Offline
- Moderator
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
- Autor
- Offline
- Senior Boarder
- Beiträge: 69
- Dank erhalten: 1
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
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.
- Jürgen
- Offline
- Moderator
"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
- Autor
- Offline
- Senior Boarder
- Beiträge: 69
- Dank erhalten: 1
Habs gefunden ich poste gleich mal
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Ricotchet
- Autor
- Offline
- Senior Boarder
- Beiträge: 69
- Dank erhalten: 1
Und diese um folgendes erweitert
in der openhab.log Datei steht bei jedem schaltenSwitch 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]" }
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.
- Jürgen
- Offline
- Moderator
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.
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
- Autor
- Offline
- Senior Boarder
- Beiträge: 69
- Dank erhalten: 1
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
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Jürgen
- Offline
- Moderator
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.
- Aktuelle Seite:
- Startseite
- Forum
- PHC-Forum
- Visualisierung
- OpenHAB auf einer QNAP-NAS installieren