[gelöst] Probleme bei Installation etc. mit alexa-fhem Smart Home Skill

Begonnen von Kusselin, 04 April 2018, 20:06:44

Vorheriges Thema - Nächstes Thema

MadMax-FHEM

Zitat von: Kusselin am 12 April 2018, 22:03:23
Aber welche Fragen noch?? Hatte doch deinen Post von vorgestern zitiert....

Z.B. Fragen von hier (noch mal, da ich noch keine [genaue] Antwort finden konnte):
https://forum.fhem.de/index.php/topic,86627.msg793545.html#msg793545


Zitat von: Kusselin am 12 April 2018, 22:03:23
Ne Frage noch..da wir ja das Test Script getestet haben und es funzt ..kopieren wir einfach Den alexa Script Inhalt in den Test Script und gaugeln dem testcsript so alexa vor..kann man das so stehen lassen?
Gruss

Quasi ja, nur mal um zu sehen, ob das Script dann bei Boot auch alexa-fhem startet.

Dummy aus fhem geht damit nat. nicht, da im DOIF ja noch alexa steht ;)

Weil ich grad dabei bin:

das Script bzw. die Datei heißt aber schon: /etc/init.d/alexa
und nicht: /etc/init.d/Alexa

Groß/Kleinschreibung ist bei Linux wichtig!!
(ist kein Windows dem "alles egal ist")

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)

Kusselin

Zitat von: MadMax-FHEM am 12 April 2018, 19:41:25

Hast du den User fhem (norm. läuft damit ja fhem) in die sudoers eingetragen?

Gruß, Joachim
hallo Joachim.....da muss ich nochmal nachschauen.....

bin aber wie im Wiki beschrieben vorgegangen.......habe in putty diesen befehl abgesetzt:
sudo nano /etc/sudoers

dann hab ich mich mit Filizilla und dem user: pi angemeldet und bin in /etc/sudoers gegangen...dann habe ich diese datei mit "notepad++" geöffnet und am ende das eingetragen:
fhem ALL=(ALL) NOPASSWD: ALL

denke das ist so richtig......

Zitat von: MadMax-FHEM am 12 April 2018, 19:41:25
Ist das Log von nach einem Boot!?
nach einem boot

Zitat von: MadMax-FHEM am 12 April 2018, 19:41:25

Du hast wirklich:

sudo update-rc.d alexa defaults

ausgeführt?

wie im Wiki wieder:

das habe ich ausgeführt in putty:
sudo chmod 755 /etc/init.d/alexa
sudo update-rc.d alexa defaults




Diese Befehle aus dem Wiki habe ich über die Fhem Kommandoeingabezeile nacheinander eingegeben..:
define FHEM.Alexa.Status dummy dann
define FHEM.Alexa dummy dann
attr FHEM.Alexa event-on-change-reading state dann
attr FHEM.Alexa webCmd status:start:stop:restart dann
define FHEM.Alexa.DOIF DOIF ([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 &")})


und diesen Befehl halt in einem markiert und dann per copy & paste in die Komandozeile kopiert und Enter gedrückt....ist das so o.k:?
define FHEM.Alexa.DOIF DOIF ([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 &")})


Gruss

MadMax-FHEM

Das mit sudoers kommt auf das System an (entweder noch nicht beantwortet oder ich hab's vergessen/übersehen): (Wheezy), Jessie, Stretch

Du solltest BEVOR du einfach Kommandos von irgendwoeher eintippst (selbst fehm wiki) mal schauen was das Kommando macht!

Weil: sudo nano /etc/sudoers genau das macht, was du zusätzlich per Filezilla und Notepad++ getan hast...
...evtl. parallel...
(und daher unklar sein kann was nun tatsächlich drin steht)

UND: es gibt spezielle Befehle zum Bearbeiten der sudoers Datei (visudo)!
UND: bei dir ist fhem quasi "root", da jedes Kommando ohne Passwortabfrage mittels sudo geht (sofern der fhem Eintrag drin steht)
UND: du weißt hoffentlich WAS die sudoers Datei ist!?
UND: ab Jessie oder Stretch gibt es für jeden User eine eigene sudoers Datei unter /etc/sudoers.d/

Du solltest auch aufpassen wie du Dateien unter Linux bearbeitest, denn Linux ist da "etwas empfindlich" bzgl. Zeilenendungen.
Notepad++ ist schon mal ein guter Anfang, wenn man beim Speichern aufpasst!

Besser man gewöhnt sich dran einen Linux-Editor direkt auf dem System zu verwenden, z.B. nano (daher auch im Wiki: sudo nano /etc/sudoers  / auch wenn visudo besser wäre)

Wenn das tatsächlich die Logausgabe von alexa-fhem BEIM/Nach dem Booten ist, dann sollte alexa-fhem doch laufen!!?

Ah: ok. Sehe/lese ich das richtig? Nach dem Boot läuft alexa-fhem!?

Lässt sich nur nicht durch den Dummy steuern?

Ich habe den Dummy und das DOIF usw. rausgeschmissen und habe dafür jetzt das Serviced-Modul laufen: https://forum.fhem.de/index.php/topic,79952.0.html

Daher ja die Frage: steht etwas im fhem Log?

Was passiert, wenn du alexa-fhem stoppst und dann in Fhem-Web:

{"sudo /etc/init.d/alexa start"}

eingibst?

Bzw.:

{system ("sudo /etc/init.d/alexa start > /dev/null 2>&1 &")}

Was ich bei mir noch getan habe: doAlways beim DOIF gesetzt, sonst hat eine "Mehrfach-Statusabfrage" nicht funktioniert...

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)

Kusselin

Zitat von: MadMax-FHEM am 13 April 2018, 14:11:10
Ah: ok. Sehe/lese ich das richtig? Nach dem Boot läuft alexa-fhem!?

Lässt sich nur nicht durch den Dummy steuern?

Jaaaaaaaaa :D :D genauso ist es...das das immer so kompliziert ist......ich hatte doch geschrieben das wenn ich über putty alexa-fhem starte dann rennt die was das zeug hält!!!!
Nur wenn ich das halt in Fhem über den Dummy machen will (alexa läuft ja aber ich hätte es halt gerne noch das ich aus fhem es starten stoppe udn restarten kann) gehts net :'(

Wenn ich da in Fhem auf stopp drücke dann bleibt die Lampe immer an udn wenn ich dann über konsole den "status" abfrage dann rennt alexa noch.....weisst was ich meineLinuxmäßig sag ich mal läuft das soweit..irgendwas in fhem schätze ich und der DOI befehl den ich einen post vorher gepostet habe, habe ich komplett über die fhem eingabezeile eingegeben..und da habe ich dann mal gelesen das das nicht so gut wäre und man solle das direkt in die fhem.cfg datei schreiben...??? wobei ich in der fhem.cfg net mehr rumwurschteln will ::)

Ich weiss auch das es besser ist direkt in putty den editor zb. nano oder vi zu benutzen aber ich bin ehrlich da fehlen mir noch die linuxbefehle  >:( da muss ich noch tiefer rein....

Zitat von: MadMax-FHEM am 13 April 2018, 14:11:10

Was passiert, wenn du alexa-fhem stoppst und dann in Fhem-Web:

{"sudo /etc/init.d/alexa start"}

eingibst?

Bzw.:

{system ("sudo /etc/init.d/alexa start > /dev/null 2>&1 &")}

das kann ich erst heute abend probieren..ich poste es dann...

MadMax-FHEM

Okok...

Dann poste doch mal ein list des DOIF...

Und wie gesagt ich bin mittlerweile von dem Dummy/DOIF weg...

Das mit fhem kriegen wir bestimmt auch noch... ;)

Achja, dann kannst du ja den "Test-Dienst" wieder "entfernen":

sudo update-rc.d -f test delete

und dann noch die Datei:

sudo rm /etc/init.d/test

Und weil du grad schon auf der Console bist ;)

Was geschieht bei:

perl /opt/fhem/fhem.pl 7072 "setreading FHEM.Alexa.Status info Das ist ein Test"

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)

Kusselin

Hi Joachim,

ne bin noch auf Arbeit....

mensch, was du für linux befehle kennst  :P

muss halt auch am ball bleiben....

Ach was ich noch loswerden wollte!! Du bist echt der Hammer. Mit welch einer Ruhe und gelassenheit du das angehst mit mir!! RESPEKT!!
Ich dachte immer das das Fhem Board so bissl "spezielle" User hat....hat es auch ;D aber du bist echt der Hammer im positiven Sinne!!!

Aber ich lasse mich nicht beirren und machse so weiter..wenn man überlegt..ich habe mein Fhem komplett neu aufgebaut und wurde immer belächelt  in vieler Hinsicht.....aber es fehlt halt immer noch an vielen Enden...vor allem an den Linuxbefehlen!!

Kusselin

{"sudo /etc/init.d/alexa start"} soll ich im Device web in fhem eingeben..sorry aber wo gebe ich die /den Befehl ein (nicht in die Kommandozeile richtig?)

wenn ich perl /opt/fhem/fhem.pl 7072 "setreading FHEM.Alexa.Status info Das ist ein Test" in putty eingebe und alexa ist gestoppt kommt nix und der prompt kommt wieder zum Eintippen.

Wenn alexa-fhem läuft dann kommt auch nix und der Courser bleibt wieder beim prompt stehen!!


und hier das list vom 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 &")})
   MODEL      FHEM
   NAME       FHEM_Alexa_DOIF
   NR         203
   NTFY_ORDER 50-FHEM_Alexa_DOIF
   STATE      cmd_1
   TYPE       DOIF
   READINGS:
     2018-04-04 20:36:49   Device          FHEM.Alexa
     2018-04-04 20:36:41   cmd             1
     2018-04-04 20:36:41   cmd_event       FHEM.Alexa
     2018-04-04 20:36:41   cmd_nr          1
     2018-04-04 20:36:49   e_FHEM.Alexa_STATE off
     2018-04-04 20:36:41   error           {system ("sudo /etc/init.d/alexa start > /dev/null 2>&1 &")}: -1
     2018-04-03 18:45:57   mode            enabled
     2018-04-04 20:36:41   state           cmd_1
   Regex:
   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 &")}
     4:
   helper:
     DOIF_Readings_events
     DOIF_eventas
     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:
   perlblock:
   uiState:
   uiTable:
Attributes:

MadMax-FHEM

{"sudo /etc/init.d/alexa start"}
bzw.

{system ("sudo /etc/init.d/alexa start > /dev/null 2>&1 &")}

Egal ob beim Device oder woanders, einfach in das WebCmd-Fenster (dort wo du die Dummy/DOIF etc. "eingegeben" hast) von fhem und dann Enter...

Vorher sollte alexa-fhem gestoppt sein...
...danach eigentlich laufen...

Auch mal ins fhem Log schauen, ob was zu dem Befehl steht...

Damit "simulierst" du den Befehl, den das DOIF absetzt/absetzen sollte, wenn du auf 'start' klickst.

Will sehen, ob alexa-fhem von fhem aus zu starten ist...

Wenn du

perl /opt/fhem/fhem.pl 7072 "setreading FHEM.Alexa.Status info Das ist ein Test"

in putty eintippst, dann sollte der Text "Das ist ein Test" im Dummy Fhem.Alexa.Status stehen...

Damit prüfst du, ob die fhem-Befehle die im Start-Script stehen funktionieren...
Korrekterweise sollte noch 'sudo' davor, da das Start-Script ja als root ausgeführt wird...

D.h. wir tasten uns von 2 Seiten an das Problem heran...
...also ob alexa-fhem von fhem aus gestartet werden kann...
...und ob fhem bzw. der/die Dummy in fhem vom Script aus "gesteuert" werden können...

Nur wenn beides geht, kannst du alexa-fhem durch fhem (mittels Dummy/DOIF) steuern...

Muss jetzt allerdings los...
...evtl. auch mal den Link bzgl. Service-Modul verfolgen/lesen, vielleicht ist das ja auch was für dich...

Aber erst mal nur lesen und noch nicht machen, sonst geht (wieder) Zeugs durcheinander...

Bis denn, 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)

Kusselin

also, wenn ich {"sudo /etc/init.d/alexa start"} in die Kommandozeile eingebe dann steht gleich darunter sudo /etc/init.d/alexa start und wenn ich dann danach {system ("sudo /etc/init.d/alexa start > /dev/null 2>&1 &")} eingebe steht gleich drunter -1 alexa-fhem ist gestoppt...so das wäre geschafft ach ..im fhem logfile steht nix

achso...halt...jetzt gebe ich mal sudo /etc/init.d/alexa status ein und dann kommt
pi@raspberrypi:~ $ sudo /etc/init.d/alexa status
Alexa is running PID 3369
script done


das passt!!

auch wenn ich perl /opt/fhem/fhem.pl 7072 "setreading FHEM.Alexa.Status info Das ist ein Test" eingebe steht im alexa.status unter Readings info

Das ist ein Test

2018-04-13 19:03:35


passt also auch!! man kann ja das fhem und das fenster von putty nebeneinander legen und dann sieht man das gut.....alexa-fhem läuft jetzt und wenn ich das zweite mal perl /opt/fhem/fhem.pl 7072 "setreading FHEM.Alexa.Status info Das ist ein Test"
eingebe passiert in den readings  aber nix mehr ?????

ich muss immer alexa-fhem stoppen.....dann wieder starten und wenn ich dann sudo perl /opt/fhem/fhem.pl 7072 "setreading FHEM.Alexa.Status info Das ist ein Test" eingebe passiert nix....gebe ich jedoch den befehl ohne das sudo davor ein also perl /opt/fhem/fhem.pl 7072 "setreading FHEM.Alexa.Status info Das ist ein Test" dann klappts und der Text steht in den Readings...wie gesagt kann man gut sehen wenn man beide Fenster nebeneinander legt. du schreibst ja das man normal sudo davor eingeben muss...kann das dann nur ein rechteproblem sein????

Gruss




MadMax-FHEM

Rechteproblem schließe ich bei "root" eher aus... ;)

Gib doch mal in putty

which perl

ein...

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

Ok.

Dann gib doch mal

sudo /usr/bin/perl /opt/fhem/fhem.pl 7072 "setreading FHEM.Alexa.Status info Das ist ein Test"

Dann solle das Reading im Dummy auch mit sudo gesetzt werden...

Wenn das dann geht, 'perl' im alexa-Script durch /usr/bin/perl "ersetzen"...

Evtl. vorher mittels:

setreading FHEM.Alexa.Status info Zurückgesetzt

Das Reading "zurücksetzen"...
...damit du auch leicht sehen kannst, ob sich das Reading ändert...

EDIT: das "Zurücksetzen" nat. (wieder) über das fhem WebCmd-Eingabefeld...

EDIT2: und wie bereits geschrieben mal doAlways beim DOIF setzen...

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

Und dann (noch mal) der Hinweis:

damit der Dummy in fhem den Status von alexa-fhem beim/nach dem Boot richtig anzeigt, muss fhem VOR alexa-fhem gestartet sein, da ja das alexa-Startscript den Status des Dummy setzt (das sind die perl-Aufrufe im Script)...
...das klappt nat. nur, wenn fhem dann schon läuft...

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)

Kusselin

Zitat von: MadMax-FHEM am 13 April 2018, 22:46:17
Dann gib doch mal

sudo /usr/bin/perl /opt/fhem/fhem.pl 7072 "setreading FHEM.Alexa.Status info Das ist ein Test"

Dann solle das Reading im Dummy auch mit sudo gesetzt werden...

das habe ich verstanden!!

Zitat von: MadMax-FHEM am 13 April 2018, 22:46:17
Wenn das dann geht, 'perl' im alexa-Script durch /usr/bin/perl "ersetzen"...

wo gebe ich das in dem Script dann ein ?? an welcher Position?

Zitat von: MadMax-FHEM am 13 April 2018, 22:46:17

Evtl. vorher mittels:

setreading FHEM.Alexa.Status info Zurückgesetzt

Das Reading "zurücksetzen"...
...damit du auch leicht sehen kannst, ob sich das Reading ändert...

genau den text also setreading FHEM.Alexa.Status info Zurückgesetzt oben in Fhem in die Eingabezeile eingeben?

Gruss

Kusselin

Zitat von: MadMax-FHEM am 14 April 2018, 00:41:45
Und dann (noch mal) der Hinweis:

damit der Dummy in fhem den Status von alexa-fhem beim/nach dem Boot richtig anzeigt, muss fhem VOR alexa-fhem gestartet sein, da ja das alexa-Startscript den Status des Dummy setzt (das sind die perl-Aufrufe im Script)...
...das klappt nat. nur, wenn fhem dann schon läuft...

Gruß, Joachim

und wie klappt das das fhem vorher schon läuft??