Alexa Connector: 2 amazon account einbinden

Begonnen von Ned, 28 April 2024, 10:36:16

Vorheriges Thema - Nächstes Thema

Ned

Guten Morgen zusammen,

ich versuche gerade zwei amazon Accounts in den Connector zu verbinden.

Dafür habe ich zwei FHEM Instanzen erstellt, wie Otto in seinem Blog gepostet hat:
einfach in der FHEM Ausführungszeile diese 3 Befehle ausgeführt:
"wget -qO fhem2.cfg https://svn.fhem.de/fhem/trunk/fhem/fhem.cfg"
"sed -i -e 's/\/fhem/\/fhem2/;;s/\/eventTypes/\/eventTypes2/;;s/8083/8093/;;$aattr initialUsbCheck disable 1' fhem2.cfg"
"perl /opt/fhem/fhem.pl /opt/fhem/fhem2.cfg"
Ich habe jetzt 1 FHEM-Arbeitsverzeichnis und 2 Konfig-Dateien: fhem.cfg und fhem2.cfg.
Das hat erfolgreich gefunktioniert!



Ned

und dann wie hier beschrieben FHEM Connector - Alexa - 2 FHEM instancen und je ein Alexa account einen zweiten User eingerichtet.

Aber ich bekomme den systemd nicht wie unter Schrit #7 beschrieben zum laufen:

donner@Uranus:~$ systemctl status fhem2
× fhem2.service - FHEM Home Automation
     Loaded: loaded (/etc/systemd/system/fhem2.service; disabled; vendor preset>
     Active: failed (Result: exit-code) since Sun 2024-04-28 10:39:57 CEST; 9s >
    Process: 18048 ExecStart=/usr/bin/perl fhem.pl fhem2.cfg (code=exited, stat>
        CPU: 100ms

Apr 28 10:39:57 Uranus systemd[1]: fhem2.service: Scheduled restart job, restar>
Apr 28 10:39:57 Uranus systemd[1]: Stopped FHEM Home Automation.
Apr 28 10:39:57 Uranus systemd[1]: fhem2.service: Start request repeated too qu>
Apr 28 10:39:57 Uranus systemd[1]: fhem2.service: Failed with result 'exit-code>
Apr 28 10:39:57 Uranus systemd[1]: Failed to start FHEM Home Automation.

Ned

#2
die beiden User habe ich überprüft:
donner@Uranus:~$ id fhem
uid=999(fhem) gid=20(dialout) Gruppen=20(dialout)
donner@Uranus:~$ id fhem2
uid=1001(fhem2) gid=20(dialout) Gruppen=20(dialout)

/etc/passwd:
donner@Uranus:~$ cat /etc/passwd | grep fhem
fhem:x:999:20::/opt/fhem:/bin/false
fhem2:x:1001:20::/opt/fhem2:/bin/false

fhem2.system:
donner@Uranus:/etc/systemd/system$ cat fhem2.service
# $Id: fhem.service 19235 2019-04-21 13:26:17Z betateilchen $

[Unit]
Description=FHEM Home Automation
Wants=network.target
After=network.target
#Requires=postgresql.service
#After=postgresql.service
#Requires=mysql.service
#After=mysql.service

[Service]
Type=forking
User=fhem2
Group=dialout
WorkingDirectory=/opt/fhem
ExecStart=/usr/bin/perl fhem.pl fhem2.cfg
#ExecStart=/usr/bin/perl fhem.pl configDB
Restart=always

[Install]
WantedBy=multi-user.target


Hat jemand einen Tipp für mich, wie ich die 2 amazon accounts zum Laufen bringen kann?

MadMax-FHEM

#3
Mal langsam, bislang hast du alles unternommen 2x fhem zu haben...

Was willst du genau?

2x unterschiedliche Alexa-Accounts (warum?) die beide dasselbe fhem steuern?
-> dann musst du statt 2x fhem besser 2x alexa-fhem für unterschiedliche User installieren bzw. laufen lassen. Wie das auf EINEM Rechner/OS geht: keine Ahnung. Einfacher ist da sicher einen kleinen Raspberry PI Zero zu nehmen, dort einfach ein 2tes alexa-fhem und dort ebenfalls die Verbindung zu dem einen fhem eintragen.
Dann kannst du mit jedem Alexa-Account dasselbe fhem steuern...


1x Alexa Account, der 2x fhem (auf einem Rechner) steuern soll?
-> dann eine alexa-fhem Installation die beide fhem eingetragen hat (siehe deinem Link / Stichwort Connections). Wenn beide fhem auch noch auf demselben Rechner/OS laufen sollen, dann ist der Link zu Otto's Blog ja richtig.


2x unterschiedliche Alexa-Accounts (warum?) die 2 unterschiedliche fhem auf DEMSELBEN Rechner/OS steuern sollen?
-> dann eben beides der oben genannten Dinge: 2x alexa-fhem auf DEMSELBEN Rechner/OS installieren (stelle ich mir nicht einfach vor / bzw. laufen lassen: mag schon eher gehen) und ebenso 2x fhem installieren bzw. laufen lassen reicht ja vermutlich. Das solte einfach(er) sein.
Welche alexa-fhem Installation dann welches fhem oder sogar beide beide fhem steuern sollen, legst du dann eben in den jeweiligen alexa-fhem-Configs (Stichwort Connections) fest.



Wie geschrieben: 2x fhem auf EINEM Rechner/OS laufen lassen sollte (einfach) machbar sein. Was bei dir da schief läuft müsste ich mal schauen. Aber evtl./besser einen extra Thread mit passendem Namen und erst mal das hinkriegen.
alexa-fhem 2x auf DEMSELBEN Rechner/OS zu installieren bzw. laufen zu lassen...
Hmmm, nur laufen lassen könnte gehen. Wird ja verm. auch nur mit unterschiedlichen Configs gestartet (wie fhem).
Entweder das dann das jeweilige Alexa-Device der jeweiligen fhem Installation tun lassen oder einfach einen (oder auch 2) Service-Startdateien.
Weil es ist egal wer alexa-fhem startet, es muss halt laufen und man muss dann nur die "Fehlermeldung" des Alexa-Devices ignorieren.
Bzw. das Alexa-Device wird nur benötigt, weil dann die ganzen alexa-fhem spezifischen Attribute da sind.
Allerdings kann man die auch selbst unter global userattr ergänzen...
(Siehe Docker: dort läuft alexa-fhem in einem Docker und fhem in einem eigenen Docker. Dort "mosert" das Alexa-Device auch, da ja der Docker sich um alexa-fhem Start usw. kümmert. Trotzdem ist "alles gut" ;)  ).

Gruß, Joachim

Noch mal direkt: warum 2 fhem und 2 Alexa Accounts? Und dann auch noch auch EINEM Rechner/OS?
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)

Ned

#4
meine Gründe für 2 amazon Accounts ist:
1.) damit die Wiedergabe von Musik / Hörspiele voneinander unabhängig ist
  (vorher gab es immer wieder Probleme zwischen den beiden Geräten, wenn die Wiedergabe bei einem Gerät kurz unterbrochen wurde und dann weitergeführt werden sollte. Die Wiedergabe machte dann immer bei dem weiter, was das andere Gerät gerade spielte)

2.) unabhängige Playlisten für die beiden Geräte bei amazon
  (somit kann jedes der beiden Kinder seine Playlisten unabhängig vom anderen pflegen)

Das ganze steht in einem Einfamilienhaus, Licht und Rollladen werden per KNX gesteuert und FHEM läuft im Keller auf einem RasPi.
Und die Kinder sollen im Kinderzimmer das Licht per Alexa schalten können.

Kennst Du eine bessere Lösung?

MadMax-FHEM

#5
Ah, ok.
Aber reicht dann nicht ein fhem?

Dann 1x alexa-fhem dort installieren, also wie beim Connector laut Wiki...

Eine weitere alexa-fhem Installation auf z.B. einem PI Zero (sollte leicht reichen) und dort als Connection ebenfalls dasselbe fhem eintragen.

Dann kann man mit 2 Accounts die Devices des einen fhem steuern...

Ist wohl am einfachsten...

Einzig: die Skill-Verknüpfung ist u.U. bei dem PI Zero nicht ganz so einfach, da der Anmelde-/Skill-Token aus dem alexa-fhem Log entnommen werden muss (sofern da zu entnehmen).
Alternativ auf dem PI Zero ein "nacktes" fhem, welches nur ein Alexa-Device hat, für Skill-Anmeldung und Start von alexa-fhem (sonst nix)...
(könnte dann sogar wieder weg: alexa-fhem dann als Service starten)
In die alexa-fhem Config auf dem PI Zero dann unter Connections (trotzdem) das andere fhem eintragen (klar)...

Evtl. komme ich dazu 2x alexa-fhem auf einem PI laufen zu lassen...

Aber einfacher ist sicher einen PI Zero für den 2ten Account zu nehmen...
...muss ja nicht mehr machen außer eben alexa-fhem für 2ten Account...

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)

Ned

Hallo Joachim,
das muss ich mal in Ruhe durchprobieren. Vielen Dank erstmal!
Wenn ich das hinbekomme, würde ich es langfristig probieren, dass zweite alexa-FHEM in einem Docker-Container laufen zu lassen, um die 2. Hardware zu sparen.

Vor 3,5 Jahren hatte Kohle77 mal ein ähnliches Problem.
Wenn ich den Thread richtig verstehe, dann habt ihr es da auf einer Hardware parallel zum Laufen gebracht:
FHEM Connector - Alexa - 2 FHEM instancen und je ein Alexa account
Diese Lösung wollte ich einfach nur bei mir auch zum Laufen bringen.

MadMax-FHEM

#7
Zitat von: Ned am 28 April 2024, 21:25:52Hallo Joachim,
das muss ich mal in Ruhe durchprobieren. Vielen Dank erstmal!
Wenn ich das hinbekomme, würde ich es langfristig probieren, dass zweite alexa-FHEM in einem Docker-Container laufen zu lassen, um die 2. Hardware zu sparen.

Vor 3,5 Jahren hatte Kohle77 mal ein ähnliches Problem.
Wenn ich den Thread richtig verstehe, dann habt ihr es da auf einer Hardware parallel zum Laufen gebracht:
FHEM Connector - Alexa - 2 FHEM instancen und je ein Alexa account
Diese Lösung wollte ich einfach nur bei mir auch zum Laufen bringen.

Eieiei, stimmt.
Hab ich tatsächlich schon mal unterstützt ;)
Aber ist ja schon ewig her 8)

Evtl. probiere ich das mal aus.
Ich habe ja noch ein paar Echos ungenutzt rumliegen (muss sie nur finden)...
...und ich kann mein Proxmox mal wieder nutzen...
Mal sehen...

Wird aber wohl erst morgen oder Mi klappen, heute wird mein Balkonkraftwerk montiert :)


2tes fhem wäre ja nur wegen Starten des 2ten alexa-fhem und 2tem ssh...


Zitat von: Ned am 28 April 2024, 21:25:52Wenn ich das hinbekomme, würde ich es langfristig probieren, dass zweite alexa-FHEM in einem Docker-Container laufen zu lassen, um die 2. Hardware zu sparen.
Das ist denke ich am einfachsten.
Entweder dann alles in Docker, also: 1x fhem und 2x alexa-fhem

Sollte ja gehen, ansonsten macht Docker (für mich) erneut (hier) keinen Sinn.

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)

theotherhalf

Da würde ich mich anschliessen...denn ich muss so etwas in der Art auch einrichten. Und wir haben 4 Alexa Instanzen  im Haus  O:-)
Hauptsächlich weil die Kinder und wir ihre eigenen Playlists haben in Spotify und sich das nicht gegenseitig querschiessen soll.
Der Ansatz nun ist, das die Homematic und Velux Hardware (Jalousien, Steckdosen in allen Zimmern etc.) mit der FHEM Hauptinstanz verbunden ist und hier mein Alexa Account verlinkt ist. Im Moment kann also nur über die Echo Endgeräte, welche meinem Account zugeordnet sind, die Steuerung erfolgen.
Die Hardware, welche in den Zimmern der Kinder ist, soll nun von deren Echos ebenso zu steuern sein.
OK, ich habe verstanden, das man nicht einfach 4 Alexa Instanzen aufsetzen kann. Zusätzliche Hardware möchte ich allerdings vermeiden...
Oder evtl. 1+3 FHEM Instanzen auf einer Hardware und dann per FHEM2FHEM?

Dann warte ich mal auf Neuigkeiten, falls Du das ausprobierst ;-)
FHEM Anfänger
HM CCU2 mit diversen Komponenten als Steuerung
FHEM mit Floorplan auf Raspi 3 (Raspbian Jessie)  zur Visualisierung (Heizung, Zustände, etc.) und angeschlossenen One-Wire Sensoren
Schnittstelle CCU2 - FHEM mit HMCCU
EBUSD Applikation auf Raspi 2 mit Anbindung an Vaillant Heizung

MadMax-FHEM

Zitat von: theotherhalf am 02 Mai 2024, 17:08:38Dann warte ich mal auf Neuigkeiten, falls Du das ausprobierst
Hmm, ok, vielleicht nehme ich mir dann wirklich mal die Zeit...

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

#10
So, ich habe es eben ausprobiert, gut nicht bis zu Ende, da ich meinen bestehenden Account nicht "zerstören" wollte und "zu faul war" 2 weitere einzurichten...
Würde ich tun, wenn es Probleme gibt...

So bin ich vorgegangen (geht sicher auch anders):

sudo adduser fhem2 --gecos "" --home /opt/fhem2 --ingroup dialout --disabled-login --disabled-password

sudo cp -r /opt/fhem/* /opt/fhem2/
EDIT: falls schon ein .ssh existiert und dieser mitkopiert wurde -> bei der kopie löschen. Der wird durch define Alexa alexa wieder angelegt. Ansonsten könnte es sein, dass dann 2 identische Verbindungen zum Vereinsserver existieren... Evtl. geht auch nachträglich deregistrieren und neu registrieren wie im Wiki beschrieben...

sudo chown -R fhem2: /opt/fhem2

sudo chmod 755 /opt/fhem2

change port of /opt/fhem2/fhem.cfg
EDIT: oder eben weitere Anpassungen bzw. Starten der default-Config/minimal-fhem...

sudo cp /etc/systemd/system/fhem.service /etc/systemd/system/fhem2.service

sudo nano /etc/systemd/system/fhem2.service

User=fhem2
WorkingDirectory=/opt/fhem2

-> save

sudo systemctl enable fhem2.service

sudo systemctl start fhem2.service

<< laut alexa-fhem Connector wiki bis "define Alexa alexa" >>

<< etwas warten: entweder läuft alexa-fhem nun schon bzw. wird 1x "durchgestartet" / wenn nicht, dann evtl. noch folgendes: >>

Seit Bookworm? muss noch das (entweder für jeden fhem User separat oder global in der ssh-conf: würde ich nicht tun)
sudo nano /opt/fhem/.ssh/config bzw. sudo nano /opt/fhem2/.ssh/config

HostKeyAlgorithms ssh-rsa,ssh-dss
PubkeyAcceptedKeyTypes ssh-rsa,ssh-dss

Ich habe bei mir nun 2 "identische" fhem (bis auf Port von FHEMWEB) <- entweder das gleich nach einer frischen Installation machen, 2tes fhem "abspecken" oder in der fhem.service die default-config starten -> "Minimal fhem"... Oder nach belieben ;)
Und auch 2x alexa-fhem laufen, mit jeweils eigener alexa-fhem.cfg (jeweils im Home der beiden fhem)...

Ich bin ziemlich sicher, dass ich mit den jeweiligen Token in 2 unterschiedlichen Amazon/Alexa Accounts auch jeweils einen Skill verknüpfen könnte...

Die jeweiligen alexa-fhem.cfg müssen halt entsprechend angepasst werden, je nachdem welche alexa-fhem Instanz welches fhem oder beide steuern soll...

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

Zitat von: theotherhalf am 02 Mai 2024, 17:08:38Oder evtl. 1+3 FHEM Instanzen auf einer Hardware und dann per FHEM2FHEM?
Gut bei dir eben mehrmals die Schritte bis fhem4 ;)

Die fhem-Instanzen müssen nix machen/können (außer du willst unterschiedliche fhem für unterschiedliche Dinge), die sind nur notwendig, damit alexa-fhem mehrfach läuft und du einfach an die Anmelde-Token kommst (ich habe versucht nur alexa-fhem laufen zu lassen aber irgendwie ging/geht es so einfacher, wenn auch fhem nicht wirklich gebraucht wird, also als fhem ;)  )...

Du kannst ja in der alexa-fhem.cfg (in jeder gleich oder getrennt) die Verbindungen zu den fhem angeben, die du steuern willst...

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)