[alexa-fhem | Generell] Alles zu Installation und damit verbundenen Problemen

Begonnen von prodigy7, 09 November 2016, 19:42:01

Vorheriges Thema - Nächstes Thema

Aladin222

@MadMax-Fhem ,

also wenn ich in der Console sudo /etc/init.d/alexa status eingebe :


fhem@aladin212-nuc:~$ sudo /etc/init.d/alexa status
Alexa is not running
script done
fhem@aladin212-nuc:~$


hier mal das List des DOIF:


Internals:
   DEF        ([FHEM.Alexa] eq "start") (set FHEM.Alexa on, {system ("sudo /etc/init.d/alexa start > /dev/null 2>&1 &")})
DOELSEIF ([FHEM.Alexa] eq "stop") (set FHEM.Alexa on, {system ("sudo /etc/init.d/alexa stop > /dev/null 2>&1 &")})
DOELSEIF ([FHEM.Alexa] eq "restart") (set FHEM.Alexa on, {system ("sudo /etc/init.d/alexa restart > /dev/null 2>&1 &")})
DOELSEIF ([FHEM.Alexa] eq "status") (set FHEM.Alexa on, {system ("sudo /etc/init.d/alexa status > /dev/null 2>&1 &")})
   NAME       doif_FHEM.Alexa
   NR         1616
   NTFY_ORDER 50-doif_FHEM.Alexa
   STATE      cmd_4
   TYPE       DOIF
   Readings:
     2016-12-11 04:13:14   Device          FHEM.Alexa
     2016-12-11 04:13:14   cmd             4
     2016-12-11 04:13:14   cmd_event       FHEM.Alexa
     2016-12-11 04:13:14   cmd_nr          4
     2016-12-11 04:13:14   e_FHEM.Alexa_STATE status
     2016-12-11 04:13:14   error           {system ("sudo /etc/init.d/alexa status > /dev/null 2>&1 &")}: -1
     2016-12-11 04:13:14   state           cmd_4
   Condition:
     0          InternalDoIf($hash,'FHEM.Alexa','STATE') eq "start"
     1          InternalDoIf($hash,'FHEM.Alexa','STATE') eq "stop"
     2          InternalDoIf($hash,'FHEM.Alexa','STATE') eq "restart"
     3          InternalDoIf($hash,'FHEM.Alexa','STATE') eq "status"
   Devices:
     0           FHEM.Alexa
     1           FHEM.Alexa
     2           FHEM.Alexa
     3           FHEM.Alexa
     all         FHEM.Alexa
   Do:
     0:
       0          set FHEM.Alexa on, {system ("sudo /etc/init.d/alexa start > /dev/null 2>&1 &")}
     1:
       0          set FHEM.Alexa on, {system ("sudo /etc/init.d/alexa stop > /dev/null 2>&1 &")}
     2:
       0          set FHEM.Alexa on, {system ("sudo /etc/init.d/alexa restart > /dev/null 2>&1 &")}
     3:
       0          set FHEM.Alexa on, {system ("sudo /etc/init.d/alexa status > /dev/null 2>&1 &")}
   Helper:
     globalinit 1
     last_timer 0
     sleeptimer -1
   Internals:
     0           FHEM.Alexa:STATE
     1           FHEM.Alexa:STATE
     2           FHEM.Alexa:STATE
     3           FHEM.Alexa:STATE
     all         FHEM.Alexa:STATE
   Itimer:
   Regexp:
     All:
   State:
Attributes:
   room       alexaServer


Wie gesagt das schalten über DOIF aus Fhem heraus funktioniert soweit , aber ich bekomme im Reading des DOIF jeweils den folgenden Fehler


2016-12-11 04:13:14   error           {system ("sudo /etc/init.d/alexa status > /dev/null 2>&1 &")}: -1
oder
2016-12-11 04:13:14   error           {system ("sudo /etc/init.d/alexa start > /dev/null 2>&1 &")}: -1
oder
2016-12-11 04:13:14   error           {system ("sudo /etc/init.d/alexa stop > /dev/null 2>&1 &")}: -1


somit zeigt der Dummy auch nicht an ob Alexa läuft :-(

MadMax-FHEM

Hi Aladin222,

könnte es das hier sein:

https://forum.fhem.de/index.php/topic,60452.msg536939.html#msg536939

Bzw. gehen die Aufrufe "sudo /etc/init.d/alexa status|start|stop" als user pi per Console!? Aber nicht als user fhem (nehme ich mal an, dass fhem unter fhem läuft!?) per "Systemaufruf" (-1 als Returnwert)...
...also könnte es ein Rechteproblem sein...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

MadMax-FHEM

Hi Aladin222,

muss wohl zurückziehen...

Habe gesehen, dass der Aufruf wohl auch von der Console aus als user fhem ausgeführt wurde...

Zitatfhem@aladin212-nuc:~$ sudo /etc/init.d/alexa status

Hmmm aber der Aufruf per fhem-System-call schlägt dann wohl fehl: -1...

Ich weiß nicht, wie man da rausfindet warum das vom fhem-system aus dann nicht geht...

Sorry, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

MadMax-FHEM

ZitatWie gesagt das schalten über DOIF aus Fhem heraus funktioniert soweit , aber ich bekomme im Reading des DOIF jeweils den folgenden Fehler

Wobei das dann auch eigenartig ist...

Vielleicht mal statt "> /dev/null 2>&1" eine Umleitung in eine Datei z.B. "> /opt/fhem/log/alexasyscall.log 2>&1"...

Dann müsste man doch eigentlich sehen welcher Fehler kommt...
...beim DOIF konnte ich so mal nix sehen...

Sieht aus wie beim Beispiel aus dem wiki...

Wie gesagt: ich selbst schalte (noch) nicht per fhem/DOIF...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

robu

Danke! Beim zweiten Mal hab ich es auch gerafft  ;D

Zitat von: justme1968 am 12 Dezember 2016, 13:23:58
@robu: ein dummy braucht ein setList on off damit er automatisch erkannt wird!


@Aladin222
@MadMax-FHEM

Auch bei mir...
FHEM.Alexa.DOIF: {system ("sudo /etc/init.d/alexa start > /dev/null 2>&1 &")}: -1

Ist schade, dass es aus Fhem heraus (noch) nicht funktioniert. Wie kann man aber die Console schließen, ohne dabei alexa zu beenden?

MadMax-FHEM

Starten von der Console mit weiterlaufendem Programm nach Console beenden: "nohap" (not hang up ;-)  )...

Also: nohap <Programmpfad> &

https://wiki.ubuntuusers.de/nohup/

Dann sollte es nach dem Schließen der Console weiterlaufen...
...aber ist das sinnvoll??

Bei mir geht es mit der Anleitung im WIKI bzw. alexa-Thread, dass alexa automatisch beim Boot gestartet wird.

Was ich noch nicht umgesetzt habe ist das Steuern per fhem/DOIF etc.

Folgt demnächst, mal sehen ob das dann bei mir klappt...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

McUles

Aus fhem raus funktioniert es eigentlich problemlos.
Schaut doch mal welche Logs dazu geschrieben werden.
Ansonsten auch mal screen anschauen.


Gesendet von iPhone mit Tapatalk
FHEM @Proxmox, 27" Touchscreen@PI3
1xZME_UZB1@PI2, 1xZME_RAZ_EU@PI2, 1xZME_WALLC-S, 1xFIBEFGS-222, 2xFIBEFGS-212, 6xFIB_FGMS-001, 4xZME_05467
1xMAXCube, 12xMAX! Heizkörper-Thermostat+
1xHM-LGW-O-TW-W-EU, 5xHM-CC-RT-DN, 2xHM-TC-IT-WM-W-EU, 1xHM-LC-Sw4-DR, 1xKeymatic, 3xHM-ES-PMSw1-Pl
Liste zu lang...

MikeRoxx

#382
Hallo zusammen,


ich habe das gleiche Problem, dass ich als Rückgabewert vom DoIF -1 bekomme.
Allerdings lasse ich Alexa automatisch beim boot starten, was auch funktioniert.
Bei Änderungen ist es halt umständlich Alexa über die Konsole neu zu starten.

Ansonsten läuft Alexa schon recht rund und vor allem vielen Dank für die Arbeit die hier drin steckt!

Das sagt das logfile bei verbose 5 vom doif.

2016.12.12 23:30:57 4: dummy set FHEM.Alexa status
2016.12.12 23:30:57 4: dummy set FHEM.Alexa on
2016.12.12 23:30:57 2: FHEM.Alexa.DOIF: {system ("/etc/init.d/alexa status > /dev/null 2>&1 &")}: -1
2016.12.12 23:30:58 4: dummy set FHEM.Alexa.Status on
2016.12.12 23:30:59 4: dummy set FHEM.Alexa off
2016.12.12 23:31:33 4: dummy set FHEM.Alexa stop
2016.12.12 23:31:33 4: dummy set FHEM.Alexa on
2016.12.12 23:31:33 2: FHEM.Alexa.DOIF: {system ('/etc/init.d/alexa stop > /dev/null 2>&1 &')}: -1
2016.12.12 23:31:35 4: dummy set FHEM.Alexa.Status off
2016.12.12 23:31:35 4: dummy set FHEM.Alexa off


über die Konsole geht das, user fhem habe ich einmal root rechte gegeben
root@bananapi ~ # /etc/init.d/alexa status
Alexa is running PID 1266
script done


hier mal ein List vom DoIF, ich habe einmal den Befehlt mit "" und einmal mit ' ' probiert, gleiches Ergebnis.  SUDO brauche ich hier nicht, da fhem hier mal root Rechte hat.

Internals:
   DEF        ([FHEM.Alexa] eq "start") (set FHEM.Alexa on, {system ("/etc/init.d/alexa start > /dev/null 2>&1 &")})
DOELSEIF
([FHEM.Alexa] eq "stop") (set FHEM.Alexa on, {system ('/etc/init.d/alexa stop > /dev/null 2>&1 &')})
DOELSEIF
([FHEM.Alexa] eq "restart") (set FHEM.Alexa on, {system ('/etc/init.d/alexa restart > /dev/null 2>&1 &')})
DOELSEIF
([FHEM.Alexa] eq "status") (set FHEM.Alexa on, {system ("/etc/init.d/alexa status > /dev/null 2>&1 &")})
   NAME       FHEM.Alexa.DOIF
   NR         1180
   NTFY_ORDER 50-FHEM.Alexa.DOIF
   STATE      cmd_2
   TYPE       DOIF
   Readings:
     2016-12-12 23:31:35   Device          FHEM.Alexa
     2016-12-12 23:31:33   cmd             2
     2016-12-12 23:31:33   cmd_event       FHEM.Alexa
     2016-12-12 23:31:33   cmd_nr          2
     2016-12-12 23:31:35   e_FHEM.Alexa_STATE off
     2016-12-12 23:31:33   error           {system ('/etc/init.d/alexa stop > /dev/null 2>&1 &')}: -1
     2016-12-12 23:31:33   state           cmd_2
   Condition:
     0          InternalDoIf($hash,'FHEM.Alexa','STATE') eq "start"
     1          InternalDoIf($hash,'FHEM.Alexa','STATE') eq "stop"
     2          InternalDoIf($hash,'FHEM.Alexa','STATE') eq "restart"
     3          InternalDoIf($hash,'FHEM.Alexa','STATE') eq "status"
   Devices:
     0           FHEM.Alexa
     1           FHEM.Alexa
     2           FHEM.Alexa
     3           FHEM.Alexa
     all         FHEM.Alexa
   Do:
     0:
       0          set FHEM.Alexa on, {system ("/etc/init.d/alexa start > /dev/null 2>&1 &")}
     1:
       0          set FHEM.Alexa on, {system ('/etc/init.d/alexa stop > /dev/null 2>&1 &')}
     2:
       0          set FHEM.Alexa on, {system ('/etc/init.d/alexa restart > /dev/null 2>&1 &')}
     3:
       0          set FHEM.Alexa on, {system ("/etc/init.d/alexa status > /dev/null 2>&1 &")}
     4:
   Helper:
     event      off
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   FHEM.Alexa
     timerevent stop
     triggerDev FHEM.Alexa
     timerevents:
       stop
       on
     timereventsState:
       state: stop
     triggerEvents:
       off
     triggerEventsState:
       state: off
   Internals:
     0           FHEM.Alexa:STATE
     1           FHEM.Alexa:STATE
     2           FHEM.Alexa:STATE
     3           FHEM.Alexa:STATE
     all         FHEM.Alexa:STATE
   Itimer:
   Readings:
   Regexp:
     0:
     1:
     2:
     3:
     All:
   State:
   Trigger:
Attributes:
   genericDeviceType ignore
   room       Alexa
   verbose    5


Proxmox mit FHEM und Debmatic auf Deb. Buster
HM / HmIP / FS20

McUles

Warum gibst du dem fhem User root Rechte?
Löse das besser über sudo und nur für einzelne Befehle.
Ansonsten reißt du dir nur potentielle Löcher in dein System.


Gesendet von iPhone mit Tapatalk
FHEM @Proxmox, 27" Touchscreen@PI3
1xZME_UZB1@PI2, 1xZME_RAZ_EU@PI2, 1xZME_WALLC-S, 1xFIBEFGS-222, 2xFIBEFGS-212, 6xFIB_FGMS-001, 4xZME_05467
1xMAXCube, 12xMAX! Heizkörper-Thermostat+
1xHM-LGW-O-TW-W-EU, 5xHM-CC-RT-DN, 2xHM-TC-IT-WM-W-EU, 1xHM-LC-Sw4-DR, 1xKeymatic, 3xHM-ES-PMSw1-Pl
Liste zu lang...

MikeRoxx

Ich geben dem user root Rechte um auszuschließen das es an den Rechten liegt.

Gesendet von meinem A0001 mit Tapatalk

Proxmox mit FHEM und Debmatic auf Deb. Buster
HM / HmIP / FS20

McUles

Das testet du besser indem du das Script direkt mit root startest. Anderen Benutzern root geben ist irgendwie evil
FHEM @Proxmox, 27" Touchscreen@PI3
1xZME_UZB1@PI2, 1xZME_RAZ_EU@PI2, 1xZME_WALLC-S, 1xFIBEFGS-222, 2xFIBEFGS-212, 6xFIB_FGMS-001, 4xZME_05467
1xMAXCube, 12xMAX! Heizkörper-Thermostat+
1xHM-LGW-O-TW-W-EU, 5xHM-CC-RT-DN, 2xHM-TC-IT-WM-W-EU, 1xHM-LC-Sw4-DR, 1xKeymatic, 3xHM-ES-PMSw1-Pl
Liste zu lang...

robu

Hallo,

auch von mir ein großes Dankeschön für die tolle Arbeit, die hier geleistet wurde! Der Anfang war zwar etwas holprig, wenn man nicht so in der Materie steckt, aber mithilfe des Wikis und des Forums war schnell ein funktionierendes System geschaffen.

Zwei Sachen funktionieren leider noch nicht. Bei mir wird nach einem Raspberry Reboot die Alexa-Routine nicht automatisch gestartet. Und wie schon angesprochen, ist ein Starten aus Fhem heraus auch nicht möglich. Hier mal eine Zusammenfassung:

Raspberry:
Automatischer Start nach Reboot funktioniert nicht
Durch Aufruf von ./bin/alexa wird die Alexa-Routine gestartet -> Port 3000 offen -> alles funktioniert dann einwandfrei, solange die Console geöffnet bleibt

FHEM:
FHEM.Alexa: Start -> FHEM.Alexa.Status: ON -> Port 3000 bleibt geschlossen -> Alexa Routine startet nicht (ohne vorheriges Starten mit ./bin/alexa)
FHEM.Alexa: Stop -> FHEM.Alexa.Status: OFF -> Alexa-Routine wird beendet (nach dem Starten mit ./bin/alexa)

/etc/init.d/alexa wurde von https://forum.fhem.de/index.php/topic,60244.msg517271.html#msg517271 kopiert
Script liegt wie im Wiki beschrieben unter /opt/fhem/alexa-fhem und die Logfiles unter /opt/fhem/log
sudo chmod 755 /etc/init.d/alexa und sudo update-rc.d alexa defaults wurde ausgeführt
In der Datei /etc/sudoers wurde die Zeile fhem ALL=(ALL) NOPASSWD: ALL eingefügt

@McUles
Was meinst du mit "Schaut doch mal welche Logs dazu geschrieben werden.
Ansonsten auch mal screen anschauen."?

Im FHEM-Logfile erscheint nur
FHEM.Alexa.DOIF: {system ("sudo /etc/init.d/alexa start > /dev/null 2>&1 &")}: -1


McUles

zB:
fhem/logs/alexa-2016-12.log (Jahr und Monat ändern sich ;) )
fhem/logs/fhem-2016-12.log (Jahr und Monat ändern sich ;) )
/var/log/syslog

Schau mal was darin passiert wenn du das Init Script starten willst. Vielleicht ist es ja sogar schon gestartet?
FHEM @Proxmox, 27" Touchscreen@PI3
1xZME_UZB1@PI2, 1xZME_RAZ_EU@PI2, 1xZME_WALLC-S, 1xFIBEFGS-222, 2xFIBEFGS-212, 6xFIB_FGMS-001, 4xZME_05467
1xMAXCube, 12xMAX! Heizkörper-Thermostat+
1xHM-LGW-O-TW-W-EU, 5xHM-CC-RT-DN, 2xHM-TC-IT-WM-W-EU, 1xHM-LC-Sw4-DR, 1xKeymatic, 3xHM-ES-PMSw1-Pl
Liste zu lang...

robu

fhem/logs/alexa-2016-12.log
[2016-12-13 09:44:32] using /.alexa/config.json
[2016-12-13 09:44:32] Couldn't find a config.json file at '/.alexa/config.json'. Look at config-sample.json for an example.


--> der Aufruf von ./bin/alexa funktioniert aber

fhem/logs/fhem-2016-12.log
2016.12.13 09:44:29 2: FHEM.Alexa.DOIF: {system ("sudo /etc/init.d/alexa start > /dev/null 2>&1 &")}: -1

/var/log/syslog
Dec 13 09:44:29 raspberrypi systemd[1]: Starting Session c13 of user pi.
Dec 13 09:44:29 raspberrypi systemd[1]: Started Session c13 of user pi.

McUles

#389
Dann schau mal ob die Datei unter /home/fhem/.alexa/config.json existiert. (Denke ja du startest über den Benutzer fhem?)
FHEM @Proxmox, 27" Touchscreen@PI3
1xZME_UZB1@PI2, 1xZME_RAZ_EU@PI2, 1xZME_WALLC-S, 1xFIBEFGS-222, 2xFIBEFGS-212, 6xFIB_FGMS-001, 4xZME_05467
1xMAXCube, 12xMAX! Heizkörper-Thermostat+
1xHM-LGW-O-TW-W-EU, 5xHM-CC-RT-DN, 2xHM-TC-IT-WM-W-EU, 1xHM-LC-Sw4-DR, 1xKeymatic, 3xHM-ES-PMSw1-Pl
Liste zu lang...