[ERLEDIGT] Alexa-Fhem - FHEM Connector findet keine Geräte nach Skill deaktiv.

Begonnen von hene42, 17 September 2019, 15:54:15

Vorheriges Thema - Nächstes Thema

RitterSport

Edit:
Da haben sich unsere Antworten gerade überschnitten.

Zitat von: MadMax-FHEM am 20 September 2019, 23:56:46
Verstehe ich nicht.

Wo wird es sofort angezeigt...
...und wo ist es dann nicht angelegt?
Was heißt hier "Alexa"?
Kannst du das Gerät per Sprache steuern?

Gruß, Joachim

Bei Neuregistrierung zeigt der fhem-connector skill die Anzahl der gefundenen Geräte. Bei mir 64
Wenn ich vorher weitere anlege, dann zeigt er entsprechend +1 und somit 65
Da die Geräte aber in der obligatorischen Suche nach Geräten von Alexa dann nicht in der Alexa Übersicht der App auftauchen, kann ich sie nicht per Sprache oder App steuern.

Alexa findet nicht die von fhem-connector bereitgestellten Geräte.


Sobald ich auf meinem 2. Raspi die 39_alexa.pm nutze, ein Gerät anlege, mich mit fhem-connector registriere und den Skill aktiviere , kann ich auch dieses Gerät sofort nutzen und per Sprache steuern. Ich benötige das aber auf dem Hauptgerät.


Das muss also spezifisch an der Konstruktion liegen, entweder an dem Token meiner Fhem Instanz oder was anderem.

RitterSport

Zitat von: MadMax-FHEM am 21 September 2019, 08:36:08
Aber es hat doch mit dem Aufsetzen eines neuen Systems mit neu anmelden geklappt!?

---ja

Daher muss ja wohl mit dem aktuellen System was schräg sein...

----sehe ich auch so

Was/wie habt ihr denn den Skill deregistriert!?

---Skill deaktivieren. Mal aus der App, mal im Web

Auch aus der App!?

---ja, Skill deaktiviert

Alle Geräte (die vielleicht doch da sind, also von fhem) gelöscht!?

---ja, ganz zu Beginn. Seitdem sind keine Geräte mehr da. Andere Geräte wie WlanSteckdosen oder Hue usw. findet Alexa sofort

Dann auf fhem Seite deregistriert (wie im Wiki)!?

---Unter Fhem wie im wiki : sudo -u fhem ssh -p 58824 fhem-va.fhem.de unregister
---nochmaliger Aufruf bringt dann: ...ist nicht mehr regestriert

Dann neu alexa-fhem mal "drüber installiert"!?

---mehrfach. auch andere Versionen mit @0.5.24 als Beispiel

fhem bzw. alexa-fhem neu gestartet!?

---ja, fhem und auch den Raspi neugestartet
---zudem auch update von Fhem gemacht, dann ist die Version von fhem wieder auf 0.5.26

Auch mal per Sprache suchen lassen!?

---per Sprache, per Web, per App

Also NICHT (einfach) so machen, nur mal beschreiben WIE du/ihr vorgegangen seid...


MadMax-FHEM

Tja, dann wie geschrieben muss wohl einer der Entwickler (verm. Georg, da er die Anbindung zu Amazon "debuggen" kann) mal schauen.

Daher wie geschrieben mal in einem der Threads wo Georg mitliest (könnte der mit fhem lazy sein) mal posten mit Link zu hier...

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)

RitterSport

Danke.
Ich habe mal gvzdus aka Georg eine PN geschrieben, mit dem Link zum Thread und der Bitte mal sich das anzusehen,

MadMax-FHEM

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)

gvzdus

Bin erst Sonntag nacht wieder zurück. Kann mir eigentlich nur irgendwelche Geräte-Uuids als Ursache vorstellen.

gvzdus

So, ich konnte das Problem nachstellen:

- Gerät 1 in Alexa entfernen (in meinem Fall mit der alexa.amazon.de/spa)
- Skill deaktivieren
- Gerät 2 in Alexa entfernen (in alexa.amazon.de/spa)
- Skill aktivieren, Gerätesuche

Ergebnis: Gerät 1 ist wieder da, Gerät 2 bleibt "unauffindbar".

Das Kriterium ist die endpointId. Löscht man Geräte, ohne den Skill aktiv zu haben, scheint Amazon diese endpointIds "auf ewig" zu blacklisten.
Nun wird die endpointId in meinem Fall (Rollladensteuerungen mit Homematic) aus der Hardware-Serial-Id des Gerätes gewonnen. Nicht ganz so einfach um einen Workaround.

Ich habe mal probeweise bei der Ermittelung der Endpoint-Id einen Hack eingebaut:
if (this.serial && this.serial == 'OEQ1854337') {
     this.serial = 'OEQ1854337GVZ';
}

(Nein, das ist keine Lösung für die Allgemeinheit  :-[ )

Restart von alexa-fhem, "Alexa, suche neue Geräte", und voila, "Gerät 2" ist wieder da.

Zunächst einmal sehe ich allen Grund, die faulen Eier auf Amazon zu werfen. Oder hat jemand eine Idee, wie man - ohne den Datenschutzbeauftragten - Amazon zur Lösung dieser "Blacklist" an Geräten bewegen könnte?
Ob und wie man einen Workaround schaffen könnte, muss ich mal mit Andre besprechen. SSH-Keys löschen oder andere Verrenkungen sind zwecklos.

gvzdus

Im 2. Anlauf konnte ich das Verfahren zum Fehlernachstellen nicht reproduzieren. Ich wüsste aber gerne, ob es hilft, wenn man die Funktion "Alle verwerfen" unter der Geräteansicht in der Amazon-Webapplikation auswählt. (Achtung: Damit gehen auch die ganzen Raumverknüpfungen verloren - ich will niemanden dazu anstiften, der nicht gerade am Problem leidet).

hene42

Hallo,

ich habe bei mir folgendes versucht (über https://alexa.amazon.de/spa/):

- "Alle verwerfen" ausgewählt
- alle Skills deaktiviert
- alexa-fhem restart in Fhem
- Skill Fhem FHEM Connector aktiviert
- proxyKey engegeben
- er sagt 12 Device vorhanden
- Fenster geschlossen
- Geräte suchen lassen
- es wurden keine Geräte gefunden

Leider kein Erfolg mit "alle Verwerfen".

Danke für deine Hilfe....

gvzdus

Okay, wenn Du forschen möchtest und die Linux-Shell beherrscht, hier die harte Tour, den Geräten eine neue Id zu verpassen:
1) Suche die "fhem.js"-Datei - bei mir unter /usr/lib/node_modules/alexa-fhem/lib/fhem.js
2) Öffne die Datei als root
3) Suche folgende Zeile:
this.uuid_base = this.serial || this.name;
Bei mir Zeile 2650. Füge dahinter eine neue Zeile ein:
this.uuid_base = this.uuid_base + 'nu';

4) Speichern und alexa-fhem restarten
5) Lösche alle Geräte in Alexa - es sei denn, es ist ohnehin nichts mehr von FHEM da.
6) Suche neu nach Geräten

Das ist keine richtige Lösung, sondern vielmehr bekommen alle FHEM-Geräte eine neue Id, die der alten Id plus "nu" entspricht.

hene42

Hallo, soeben umgesetzt, führt bei mir jedoch nicht zum Erfolg.

Schade.

gvzdus

Du müsstest im fhem.log bei der elend langen Zeile:
<<<< [ssh] {"event":{"header":{"namespace":"Alexa.Discovery","name":"Discover.Response"
jetzt überall da, wo
.... "endpointId":"00:17:88:01:00:b5:38:a4-0b" ...
steht, jetzt am Ende ein "nu" sehen. Ist das der Fall? Den alexa-fhem-Prozess hast Du neu gestartet?

hene42

Hallo, nein kein nu am Ende. Ich habe dir mal ein Bild angefügt.

habe den kompletten Raspberry mal neu gestartet, jetzt zeigt Fhem das am Anfang an,

Messages collected while initializing FHEM:
configfile: 1 is not a valid skill id

Autosave deactivated

Danke.

gvzdus

Hmmh, bei Dir scheinen die Ids überwiegend aus der FUUID generiert zu werden. Das macht es einfacher...
Dann mache bitte "meine" Änderung rückgängig, suche Dir ein konkretes Device aus, und setze mit
setuuid <devicename> <jetztmalwildbuchstabentippen>
eine neue UUID für das Gerät.

<devicename> muss natürlich ein konkretes Gerät sein, und <wildbuchstabentippen> eine ausgewürfelte Buchstabenfolge.

Sicherheitshalber alexa-fhem-Restart und neu suchen. Spannend, falls das Gerät nicht gefunden wurde, ob alexa-fhem jetzt tatsächlich Deine Würfelfolge als "endpointId" ausgibt.

hene42

da bekomme ich von Fhem folgende Antwort,  "setuuid cannot be used after FHEM is initialized"...