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

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

Vorheriges Thema - Nächstes Thema

MadMax-FHEM

Zitat von: Invers am 14 Januar 2017, 16:13:49
Danke. KLönntest du mir den konkreten Befehl sagen? Ich will nichts zerballern.
pi ist richtig.

Danke.

Ungern.
Weil dann bin ich schuld, wenn dann dein System zerschossen ist...

Aber du kannst dich hier:

https://wiki.ubuntuusers.de/chmod/

und hier:

https://wiki.ubuntuusers.de/Rechte/

schlau machen...

Auf eigene Gefahr:

sudo chmod 777 /opt/fhem/log

könnte helfen...

EDIT: oder halt woanders hin loggen. Z.B.: /home/pi/log

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)

DeeSPe

Ich denke der bessere Weg wäre nicht an den Rechten herumzumachen!
Bei mir hat sich eingebürgert den Benutzer pi einfach in die Gruppe dialout zu stecken. Dann kann man auch problemlos mit dem Benutzer pi den gesamten /opt/fhem Ordner verwalten
usermod -a -G dialout pi

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Invers

@MadMax-FHEM
Boah! Du machst mir richtig Mut. Es ist noch nicht lange her, da habe ich mir fhem komplett abgeschossen, weil wegen meiner Experimente alle Ordner plötzlich als leer erschienen. Waren sie aber nicht. Schade. Zum Glück habe ich immer eine Komplettsicherung auf einem Image.

@DeeSPe
Vielen Dank, werde ich machen. Ob es hilft, merke ich erst nächsten Monat.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

DeeSPe

Zitat von: Invers am 14 Januar 2017, 22:19:58
@DeeSPe
Vielen Dank, werde ich machen. Ob es hilft, merke ich erst nächsten Monat.

Das merkst Du sofort, weil du als pi dann alles unterhalb von /opt/fhem bearbeiten/löschen/erstellen kannst!

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Tommy82

Hi,
irgendwie bekomme ich es mit dem Starten aus fhem heraus nicht hin.

Hab alles wie hier beschrieben gemacht: https://wiki.fhem.de/wiki/Alexa-Fhem#Alexa-Fhem_aus_FHEM_heraus_starten
Im Startskript von hier habe ich mein Alexa Verzeichniss abgeändert, genau diese Zeile:
export ALEXAPATH="/home/thomas/alexa-fhem" alles andere habe ich unverändert gelassen.

Wenn ich dann in Fhem z.b. den status abfragen will oder Alexa starten will, passiert nicht. Im log erscheint dann:
2017.01.15 14:41:52.847 2: FHEM.Alexa.DOIF: {system ("sudo /etc/init.d/alexa status > /dev/null 2>&1 &")}: -1
2017.01.15 14:42:03.438 2: FHEM.Alexa.DOIF: {system ("sudo /etc/init.d/alexa start > /dev/null 2>&1 &")}: -1
2017.01.15 14:45:16.394 2: FHEM.Alexa.DOIF: {system ("sudo /etc/init.d/alexa status > /dev/null 2>&1 &")}: -1
2017.01.15 14:45:19.913 2: FHEM.Alexa.DOIF: {system ("sudo /etc/init.d/alexa start > /dev/null 2>&1 &")}: -1

Aber Alexa läuft nicht.

Einer eine idee was falsch sien könnte? Ich vermute fast das es am User liegt, wenn ich Alexa manuell über die Konsole starte, muss ich dies immer als lokaler User "thomas" machen damit es läuft.

Danke für eure Hilfe
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

MadMax-FHEM

Zitat von: Tommy82 am 15 Januar 2017, 14:52:16
Hi,
irgendwie bekomme ich es mit dem Starten aus fhem heraus nicht hin.

Hab alles wie hier beschrieben gemacht: https://wiki.fhem.de/wiki/Alexa-Fhem#Alexa-Fhem_aus_FHEM_heraus_starten
Im Startskript von hier habe ich mein Alexa Verzeichniss abgeändert, genau diese Zeile:
export ALEXAPATH="/home/thomas/alexa-fhem" alles andere habe ich unverändert gelassen.

Wenn ich dann in Fhem z.b. den status abfragen will oder Alexa starten will, passiert nicht. Im log erscheint dann:
2017.01.15 14:41:52.847 2: FHEM.Alexa.DOIF: {system ("sudo /etc/init.d/alexa status > /dev/null 2>&1 &")}: -1
2017.01.15 14:42:03.438 2: FHEM.Alexa.DOIF: {system ("sudo /etc/init.d/alexa start > /dev/null 2>&1 &")}: -1
2017.01.15 14:45:16.394 2: FHEM.Alexa.DOIF: {system ("sudo /etc/init.d/alexa status > /dev/null 2>&1 &")}: -1
2017.01.15 14:45:19.913 2: FHEM.Alexa.DOIF: {system ("sudo /etc/init.d/alexa start > /dev/null 2>&1 &")}: -1

Aber Alexa läuft nicht.

Einer eine idee was falsch sien könnte? Ich vermute fast das es am User liegt, wenn ich Alexa manuell über die Konsole starte, muss ich dies immer als lokaler User "thomas" machen damit es läuft.

Danke für eure Hilfe

Die Fehler sind (eigentlich) kein Problem habe ich (und viele andere) auch.
Es gibt hier in dem Thread auch eine Lösung dafür: das "system(...)" weglassen...

Und es wird wohl an dem User liegen, da im Script steht "su - "pi" -c ..." d.h. folgender Befehl (starten von alexa-fhem) soll vom User "pi" ausgeführt werden.

Auch das wurde hier schon mehrfach behandelt!

Wohin hast du installiert?

Wenn /opt/fhem/alexa-fhem dann evtl. auch mal bzgl. Rechte bzw. User/Gruppen schauen (also z.B. "thomas" in dialout) sonst wirst du vermutlich auch Zugriffsfehler beim Anlegen der Logdatei bekommen...

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)

Tommy82

Hallo,
also wenn ich nur  "system" weglaase, dann verändert sich nur die Log Meldung,2017.01.15 15:08:28.763 2: FHEM.Alexa.DOIF: { ("sudo /etc/init.d/alexa status > /dev/null 2>&1 &")}: sudo /etc/init.d/alexa status > /dev/null 2>&1 &
2017.01.15 15:08:35.095 2: FHEM.Alexa.DOIF: { ("sudo /etc/init.d/alexa start > /dev/null 2>&1 &")}: sudo /etc/init.d/alexa start > /dev/null 2>&1 &


Ich habe dann mal im skript den User "pi" gegen "thomas" getauscht
su - "thomas" -c "cd $ALEXAPATH;./bin/alexa > $LOGPATH/alexa-`date +%Y-%m`.log 2>&1 &"

aber auch das hilft nicht.

alexa-fhem liegt bei mir unter export ALEXAPATH="/home/thomas/alexa-fhem"
und die Logs sollen unter export LOGPATH="/home/thomas/alexa-fhem/log" liegen, aber dort sind keine

Danke für die Hilfe

Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

MadMax-FHEM

Was kommt denn, wenn du:

sudo /etc/init.d/alexa start

eingibst?
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)

hanshome

Zitat von: MadMax-FHEM am 13 Januar 2017, 22:48:06
Jep und für jede Konstellation was zu schreiben ist halt schwer...
...weil dann kommt der x-te und sagt: ich hab aber so installiert und mein User heißt so...

Und: das hat ja mit dem unterlagerten Betriebssystem zu tun...

Ja das stimmt wohl. Aber im Alexa-FHEM-Wiki-Eintrag sind auch Besonderheiten bei der Installation auf'm Raspi beschrieben, z.B. die Probleme mit UPNP auf dem Raspi. Man könnte ja den Troubleshooting-Part erweitern und auf bestimmte Foren-Einträge verweisen, z.B. auf https://forum.fhem.de/index.php/topic,60452.msg561224.html#msg561224  ;)

Zitat von: MadMax-FHEM am 13 Januar 2017, 22:48:06
Aber ich glaube man darf sich aktiv am Wiki beteiligen ;)

Ja, das schaue ich mir mal an ;)

Grüße

Tommy82

#729
Zitat von: MadMax-FHEM am 15 Januar 2017, 16:26:50
Was kommt denn, wenn du:

sudo /etc/init.d/alexa start

eingibst?

Dann kommt die Aufforderung zur Passwort eingabe und:

sudo /etc/init.d/alexa start                                                                                                                                                                     
Alexa starting                                                                                                                                                                                                                 
Alexa is running PID 1817                                                                                                                                                                                                       
script done                                                                                                                                                                                                                     
script done               


Ich war  als user "thomas" per ssh eingeloggt, klappt aber auch wenn ich mich als root einlogge

Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

MadMax-FHEM

Dann fehlt der Eintrag für den User thomas in der sudoers...

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)

Tommy82

Zitat von: MadMax-FHEM am 15 Januar 2017, 16:44:57
Dann fehlt der Eintrag für den User thomas in der sudoers...

Gruß, Joachim

Das kann es nicht sein, da dieser eingetragen ist:
thomas ALL=(ALL) NOPASSWD:ALL
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

MadMax-FHEM

Hmmm, dann stimmt an dem Eintrag etwas nicht??

Weil warum sonst müsstest du ein Passwort angeben??

Ich denke das Script bleibt dann da "hängen" weil ja bei "Autostart" niemand ein Passwort eingeben kann...

Musst du sonst als User thomas bei Nutzung von sudo ein Passwort angeben??

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)

Bigsonic1

Hallo ich komme leider nicht weiter...
in Fhem kann ich Alexa nicht starten.
mit /etc/init.d/alexa start auch nicht:
root@raspberrypi:~# /etc/init.d/alexa start
-su: line 0: cd: /root/alexa-fhem: Permission denied
Alexa starting
Alexa is not running
script done
script done


mit ./bin/alexa kommt:
wenn ich das so ausgeführt habe, dann komme ich mit dem Browser von außen auf meine Seite mit dem Port 3000 und es kommt folgende meldung:
{"header":{"name":"UnsupportedOperationError","payloadVersion":"2","namespace":"Alexa.ConnectedHome.Control","messageId":"xxxxxxxxxxxxxxx"},"payload":{}}
aber warum https:? wo kann ich das ändern?
root@raspberrypi:~/alexa-fhem# ./bin/alexa
[1/15/2017, 7:35:33 PM] using /root/.alexa/config.json
[1/15/2017, 7:35:33 PM] ---
[1/15/2017, 7:35:33 PM] this alexa-fhem 0.1.9
[1/15/2017, 7:35:33 PM] Fetching FHEM devices...
[1/15/2017, 7:35:34 PM] [FHEM] Checking devices and attributes...
[1/15/2017, 7:35:34 PM] [FHEM]   executing: https://xxxxxxx:8083/fhem?cmd=%7BAttrVal(%22global%22,%22userattr%22,%22%22)%7D&XHR=1
[1/15/2017, 7:35:34 PM] [FHEM]   executing: https://xxxxxx:8083/fhem?cmd=jsonlist2%20TYPE=alexa&XHR=1
[1/15/2017, 7:35:34 PM] [FHEM] starting longpoll: https://xxxxxxx:8083/fhem.pl?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON&timestamp=1484505334175
[1/15/2017, 7:35:34 PM] [FHEM] Fetching FHEM devices...
[1/15/2017, 7:35:34 PM] [FHEM] fetching: https://xxxxxxx:8083/fhem?cmd=jsonlist2%20room=alexa&XHR=1
[1/15/2017, 7:35:34 PM] Server listening on: https://:::3000

meine config.json:
{
    "alexa": {
        "name": "Alexa TEST",
        "keyFile": "./key.pem",
        "certFile": "./cert.pem",
        "applicationId": "amzn1.ask.skill.xxxxxxxxxx",
        "oauthClientID": "amzn1.application-oa2-client.xxxxxxxxxxx"
       
    },
   
    "connections": [
        {
            "name": "FHEM",
            "server": "xxxxxxxxxx",
            "port": "8083",
            "auth": {"user": "xxxxx", "pass": "xxxxx"},
            "filter": "room=alexa"
           
        }
    ]
}


bei AWS lambda
wenn ich den test mache kommt:
{
  "errorMessage": "RequestId: xxxxxxxxxxxx Process exited before completing request"
}


const PORT=3000;
const HOST='xxxxxxxx';


// entry
exports.handler = function(event, context, callback) {

  console.log(`EVENT: ${event}`);
  console.log(`CONTEXT: ${context}`);
 
  var post_data = JSON.stringify(event);
 
  var options = {
    hostname: HOST,
    port: PORT,
    //family: 6,
    //path: '/',
    method: 'POST',
    rejectUnauthorized: false, // accept self-signed
    headers: {
      'Content-Type': 'application/json',
      'Content-Length': Buffer.byteLength(post_data)
    }
  };

  var request = require('https').request(options, (result) => {
    console.log(`STATUS: ${result.statusCode}`);
    console.log(`HEADERS: ${JSON.stringify(result.headers)}`);
    result.setEncoding('utf8');
    var body = '';
    result.on('data', (chunk) => body += chunk);
    result.on('end', () => {
      console.log(`BODY: ${JSON.stringify(body)}`);
      callback(null, JSON.parse(body) );
      return;
    });
  });

  request.on('error', (e) => {
    console.log(`problem with request: ${e.message}`);
    callback(null, createError(ERROR_TARGET_OFFLINE) );
    return;
  });

  request.write(post_data);
  request.end();

  return;
 
}// exports.handler


alexa in etc/init.d
#!/bin/sh
### BEGIN INIT INFO
# Provides: alexa
# Required-Start: $network $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time for alexa
# Description: Enable service provided by daemon.
### END INIT INFO
export PATH=$PATH:/usr/local/bin
export NODE_PATH=$NODE_PATH:/usr/local/lib/node_modules
PID=`pidof alexa`
export ALEXAPATH="/root/alexa-fhem"
export LOGPATH="/opt/fhem/log"
case "$1" in
start)
if ps -p $PID > /dev/null 2>&1; then
        echo "Alexa is already running"
        perl /opt/fhem/fhem.pl 7072 "setreading FHEM.Alexa.Status info Alexa is already running"
        perl /opt/fhem/fhem.pl 7072 "set FHEM.Alexa.Status on"
        perl /opt/fhem/fhem.pl 7072 "set FHEM.Alexa off"
else
        su - pi -c "cd $ALEXAPATH;./bin/alexa > $LOGPATH/alexa-`date +%Y-%m`.log 2>&1 &"
        echo "Alexa starting"
        sleep 2
$0 status
fi
;;
stop)
if ! ps -p $PID > /dev/null 2>&1; then
        echo "Alexa is not running"
        perl /opt/fhem/fhem.pl 7072 "setreading FHEM.Alexa.Status info Alexa is not running"
        perl /opt/fhem/fhem.pl 7072 "set FHEM.Alexa.Status off"
        perl /opt/fhem/fhem.pl 7072 "set FHEM.Alexa off"
else
        kill $PID
        echo "Alexa closed"
        perl /opt/fhem/fhem.pl 7072 "setreading FHEM.Alexa.Status info Alexa closed"
        perl /opt/fhem/fhem.pl 7072 "set FHEM.Alexa.Status off"
        perl /opt/fhem/fhem.pl 7072 "set FHEM.Alexa off"
fi
;;
restart)
if ! ps -p $PID > /dev/null 2>&1; then
        $0 start
else
        $0 stop
        $0 start
fi
;;
status)
if ps -p $PID > /dev/null 2>&1; then
        echo "Alexa is running PID $PID"
        perl /opt/fhem/fhem.pl 7072 "setreading FHEM.Alexa.Status info Alexa running as PID $PID"
        perl /opt/fhem/fhem.pl 7072 "set FHEM.Alexa.Status on"
        perl /opt/fhem/fhem.pl 7072 "set FHEM.Alexa off"
else
        echo "Alexa is not running"
        perl /opt/fhem/fhem.pl 7072 "setreading FHEM.Alexa.Status info Alexa is not running"
        perl /opt/fhem/fhem.pl 7072 "set FHEM.Alexa.Status off"
        perl /opt/fhem/fhem.pl 7072 "set FHEM.Alexa off"
fi
;;
*)
echo "Usage: $0 {start|stop|status|restart}"
exit 1
;;
esac
echo "script done"
exit 0



Über eure Hilfe wäre ich sehr dankbar und hoffe das ihr damit was anfangen könnt...

Tommy82

Zitat von: MadMax-FHEM am 15 Januar 2017, 17:29:14
Hmmm, dann stimmt an dem Eintrag etwas nicht??

Weil warum sonst müsstest du ein Passwort angeben??

Ich denke das Script bleibt dann da "hängen" weil ja bei "Autostart" niemand ein Passwort eingeben kann...

Musst du sonst als User thomas bei Nutzung von sudo ein Passwort angeben??

Gruß, Joachim

Sehr guter einwand:-) irgendwas ist schief.....
Hab jetzt mal über ein sudo usermod -aG sudo thomas den User thomas in sudoers hinzugefügt, und siehe da ich muss kein PW mehr eingeben, allerdings wenn ich dann neustarte muss ich wieder ein PW eingeben, die einstellung überlebt also keinen Neustart.
Dazu kommt das der Alexa Dienst nach einem Neustart automatisch läuft und auch in Fhem der Status richtig angezeigt wird. Wenn ich denn Dienst aber dann stoppen will (hab vorher thomas wieder den sudoers hinzugefügt) dann wird der Dienst nicht gestoppt, irgendwas passt noch nicht
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI