Homematic-Virtual-Interface
Homematic-Virtual-Interface copied to clipboard
Core Boot Options setzen funktioniert nicht
Hallo!
Ich wollte gerade die Boot Options "HVL beim Sytemstart starten" setzen. Als ich auf den Link geklickt habe, passierte nichts weiter, die Adresszeile hat kurz geladen und dann ging es nicht weiter:
Kann es vielleicht daran liegen, dass HVL bei mir nicht in /home/pi installiert ist sondern in /home/hvl ?
Was an der Stelle passiert ist :
- das Shellscript aus lib\hmvi_npm wird nach /etc/init.d/hvl_service kopiert
- /etc/init.d/hvl_service bekommt das execute Flag und der Launchdaemon wird aktualisiert.
Folgendes kann schief gehen:
User unter dem HVL läuft darf kein sudo Es gibt kein etc/init.d/ Launcher mehr sondern der Launch passiert über systemd Das Ganze basiert auch auf der Vorraussetzung das hvl unter einem User namens hmvi läuft. der User kam ursprünglich mal aus dem alten Installer.
Das müsste ich vorher alles ermitteln und entsprechend reagieren. Ich nehm das Problem mal ins Backlog auf
sollte mit 0.2.74 besser funktionieren. Es wird jetzt systemd benutzt. Der User unter dem das läuft sollte sudo rechte haben. Sonst wird es schwer einen Service zu installieren
Okay. Wie kann ich das was Du wissen musst, alles kontrollieren?
Den Ordner "/etc/init.d/" gibt es auf jeden Fall. Aber dort ist nichts von HVL zu sehen:

HVL ist nach "home/hvl/" installiert und nicht nach "home/pi/" falls das auch Auswirkungen darauf haben sollte.
Wenn ich mich dem User "hvl" einlogge und dann "su" eingebe, muss ich danach das root Passwort eingeben. Danach kann ich alles machen, reboot, poweroff, Dateien editieren usw.
Wenn ich mich dem User "hvl" eingeloggt bin und z.B. eingebe:
sudo reboot --> Meldung: "Kein Passworteintrag für Benutzer »reboot«"
oder
su reboot --> Meldung: "Kein Passworteintrag für Benutzer »reboot«"
oder
Mit Nano eine Datei editieren will --> Meldung: "[ Fehler beim Schreiben von /etc/hosts: Keine Berechtigung ]"
Falls das hierauf ein Hinweis ist "User unter dem HVL läuft darf kein sudo"
in der neuen Version generiere ich das Servicefile .. das heisst es ist Wurst wo das ganze liegt. Das ermittelt hvl selber. Ich ermittle auch den User unter dem das gerade läuft.
Wenn der Automatismus nicht funktioniert (weil der User kein sudoer ist) Es wird in /tmp/ ein File namens hvl.service abgelegt. Folgende Commands sind als root nötig:
mv /tmp/hvl.service /etc/systemd/system
systemctl daemon-reload
systemctl enable hvl
Ich schau mal noch wie ich elegant checken kann ob ich mit sudo root Rechte bekommen kann
Ich habe das Update auf Version 0.2.74 gemacht. HVL sagte "please restart". Habe dann unter "Service" auf Neustart geklickt, aber HVL hat keinen Neustart gemacht, ist das normal?
Im Ordner "/etc/systemd/system" ist nichts von "hvl.service" zu sehen, im Ordner "/tmp/" jedoch auch nicht.
kommt drauf an wie hvl gestartet wurde. Daher geht HVL erstmal davon aus das es über den node daemon Prozess gestartet wurde. Wenn der Autostart enabled wurde, dann wird das umgebaut auf sudo service hvl restart
Nach der Installation habe ich HVL das erste Mal so gestartet:
/home/hvl/node_modules/homematic-virtual-interface/bin/hmviservice start
Ich habe jetzt das Update auf Version 0.2.75 gemacht. Aber auch hier, hat der Neustart unter Service nicht geklappt. HVL läuft immer weiter.
Auch funktioniert dieser Befehl dann nicht bzw. HVL läuft weiter:
/home/hvl/node_modules/homematic-virtual-interface/bin/hmviservice stop
Es kommt dann zwar:
Stopping HMVirtual daemon...
Stopping daemon...
HMVirtual daemon stopped.
Daemon stopped.
Aber HVL läuft immer weiter.
Ich Dummkopf muss natürlich trotz Update erstmal hier klicken:

Danach ist die hvl.service im /tmp/ Ordner gelandet.
Nach
mv /tmp/hvl.service /etc/systemd/system
systemctl daemon-reload
systemctl enable hvl
Funktioniert dann auch der Autostart.
Also kann der User wohl kein sudo das hvl.service im /tmp/ Ordner landet und nicht in /etc/systemd/system ?
Ja genau ich schreibe es erst nach /tmp und lasse das File dann via sudo mv nach /etc/systemd/system umziehen...
Ich werde mal nach dem move noch einen Check einbauen ob das File dort gelandet ist.
Ok. Bei mir ist es nicht in /etc/systemd/system gelandet sondern in /tmp/ geblieben. Ich habe es dann manuell von /tmp/ nach /etc/systemd/system verschoben.
ja weil der User, unter dem HVL läuft kein sudo darf. Und != root darf nicht nach /etc/systemd schreiben
Okay dann haben wir das Problem. Bekommst du das intern hin?
Edit: Ich denke das liegt aber im moment daran, dass ich HVL auf Debian teste. Wenn jetzt demnächst die verschiedenen Bugs beseitigt sind, dann kommt HVL sowieso wieder auf einen Pi drauf und da sollte der User „pi“ ja Sudo dürfen. Also brauchst du Dir da eigentlich keine Mühe machen.
Ich denke die meisten installieren HVL als Addon auf der CCU oder außerhalb auf einem Pi. Werde da wohl mit Debian gerade die absolute Ausnahme sein.
Edit2: @thkl bei mir war kein sudo installiert. Ein apt-get install sudo hat Abhilfe geschaffen.
Nun landet die hvl.service direkt in /etc/systemd/system
HVL unter Boot Options beim Sytemstart starten aktivieren klappt jetzt also.
Was aber nicht klappt: HVL Start beim Sytemstart deaktivieren wenn ich da drauf klicke, dann bleibt die hvl.service in /etc/systemd/system drin.