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

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

Vorheriges Thema - Nächstes Thema

Mundus

Hi,

danke, den Artikel hatte ich nicht gefunden bzw. nicht weiter verfolgt. Er beschreibt ein sicherlich viel einfacheres Vorgehen und ich werde es in den nächsten STunden ausprobieren... In diesem Moment sind schon die vier erforderlichen Readings angelegt ;).

Aber was ist der Fehler bei meiner Herangehensweise gewese? Ist ja der andere Weg...

87insane

Nachtrag: aktuelle tasmota Firmware unterstützt auch mehrfach Geräte direkt via hue Emulation.  Bei den sonoff t2 Schaltern wird kein fhem benötigt um beide relays mit in Alexa zu integrieren. Läuft stabil und sind nur ein paar Klicks.

Danke aber für die dummy Idee und die Hilfe!

Mundus

Hi,
ich habe FHEM Connector installiert und scheitere gerade ein Thermostat einzubinden.

Sobald ich das Reading temperature im Thermostat einbinde, erkennt Alexa das Device, aber als Thermometer und nicht als Thermostat. Lösche ich das Reading temperature, wird das ganze Device nicht mehr erkannt. Ich befürchte, dass der Fehler trivial ist und bei mir liegt.

Mein Thermostat sieht derzeit so aus
Internals:
   CFGFN     
   FUUID      5c994be3-f33f-a4f4-d98b-28856f9f389087af
   NAME       d_Thermostat
   NR         156
   STATE      Soll 26°C
   TYPE       dummy
   OLDREADINGS:
   READINGS:
     2019-03-25 22:48:12   TargetTemperature 26
Attributes:
   alexaName  Thermostat
   alexaRoom  Wohnzimmer
   alias      Thermostat
   genericDeviceType thermostat
   readingList TargetTemperature
   room       Temperatur
   setList    TargetTemperature:slider,0,0.5,60
   stateFormat Soll TargetTemperature°C
   webCmd     TargetTemperature


Gruß

87insane

Ich weiß nicht wie das Modul bzw. alexa erkennt was das für ein Gerät ist aber wenn ich drüber nachdenke, stelle ich mir aufgrund von meinen Rollos und Thermostaten folgendes vor.

Vermutlich sind es die Readings...
In deinem state steht "Soll 26°C" - Bei mir steht dort, bei einem Thermostat, die aktuelle Temperatur. Zur Steuerung habe ich dann einen wählbaren PCT Wert daneben (einfach nur so mal als Bild anbei).
Ich kann sowohl die Raumtemperatur erfragen über Alexa aber auch einstellen auf den gewünschten Wert. Das gleiche gilt für alle anderen Alexa Geräte.

- Dein dummy hat Temperaturen bis 60. Ist das wirklich realistisch?

Wie auch immer... anbei noch ein List und ich denke aus dem sollte hervorgehen, was man benötigt. Vermutlich (nur erdacht aufgrund deiner Beschreibung), fehlt dir die korrekte Bezeichnung im Reading. TargetTemperature -> desiredTemperature
(Habe das List gekürzt auf das Nötigste)
Internals:
   IODev      cm
   LASTInputDev cm
   NAME       wz.heizung
   RSSI       -50.5
   STATE      22.0 °C
   type       HeatingThermostat
   READINGS:
     2019-03-26 14:55:53   battery         ok
     2019-03-26 14:55:53   batteryState    ok
     2019-03-26 14:55:53   desiredTemperature 22.0
     2019-03-26 14:55:53   state           22.0 °C
     2019-03-26 14:55:53   temperature     19.3
     2019-03-26 14:55:53   valveposition   100
Attributes:
   IODev      cm
   alexaName  Wohnzimmer Heizung
   alias      Wohnzimmer Heizung

justme1968

da alexa-fhem nicht weiss welches set kommando zum setzen der temperatur verwendet wird musst du es entweder desiredTemperature, desired-temperature oder desired nennen oder  über ein homebridgeMapping für TargetTemperature bekannt machen.

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Mundus

Hallo,

vielen Dank für eure Hilfe, es bleibt aber leider spannend.

Nachdem ich auf desiredTemperature umgestellt habe, erkennt Alexa das Device, stellt mir die Temperatur aber nicht korrekt ein. Es wird immer der mittlere Wert des Sliders eingestellt. So erhalte ich beim Sprechen "Alexa, stelle Thermostat auf 10 Grad" die Antwort "Thermostat ist auf 0.5 Grad gestellt"

Sofern ich die Slider-Konfiguration anpasse z.B. 0,10,60 erhalte ich das gleiche Phänomen, nur der Wert der mir mitgeteilt wird, ist dann 10 Grad.

Vielleicht ist das auch ein typischer Anfängerfehler, aber leider sehe ich ihn nicht. Und zum Abschluss die Frage, wo finde ich die Befehle die im Alexa-Skill (z.B.: desiredTemperature) hinterlegt sind und wie sieht ein HomebridgeMapping aus? Hier TargetTemperature=desiredTemperature?

Gruß und Danke

87insane

Um das zu analysieren wäre ein LOG ganz gut. Am besten mal verbose 5 und dann den entsprechenden Teil hier posten.
Ich weiß nicht was du da versuchst mit dem Dummy usw. Am besten auch mal erklären warum du diesen Weg gewählt hast.

Du hast auch immernoch bis zu 60 Grad... Ich bezweifel, dass dein Thermostat so viel kann. Ansonsten wäre es eine Sauna oder eine Dusche. Wobei selbst bei einer Dusche, bezweifel ich die 60 Grad. Keiner geht bei 60 Grad unter das Wasser ;)
30 Grad halte ich für realistisch für ein Thermostat. Allerdings stellt die wohl auch keiner ein....

Hinzu ist der Slider ja nur der Rückgabewert. Nehmen wir mal an du willst ein Temperatur einstellen. Wie mein Vorredner schon sagte, mit der Konfig die du hattest (ich sehe hier auch keine neue) kann es nicht laufen. Alexa hört einen Wert -> Weiter an FHEM -> Weiter an das Thermostat (kurze Beschreibung). Die Werte die im Thermostat sind, sollten dann wiederum an FHEM gesendet werden. Die kommen nicht von Alexa.

Resumé:
- Ich denke wir brauche deine "neue" Konfig
- Logauszug
- Die Info warum du diesen Weg gewählt hast

Hinzu empfehle ich dir, das Wiki ;) Ich selber ärgere mich immer über diese Antwort aber leider macht sie immer wieder Sinn ;)


Mundus

Hi,
ich versuche mal alles so vollständig wie möglich zu beantworten:

1. Im Wiki steht leider bei FHEM-Connector nichts zum Thermostat, insofern sind die Schlagworte auch nicht gesetzt.
Einen Dimmer und eine Lampe konnte ich schon einrichten.

2. Die Werte habe ich einfach so gewählt. Es handelt sich um eine reine Testumgebung ohne echte Devices. In meinem Echt-System habe ich auch keine Dummies sondern echte HM-Thermostate.

3.Das Device Internals:
   CFGFN     
   FUUID      5c994be3-f33f-a4f4-d98b-28856f9f389087af
   NAME       d_Thermostat
   NR         156
   STATE      Soll 15°C
   TYPE       dummy
   OLDREADINGS:
   READINGS:
     2019-03-27 15:11:04   desiredTemperature 15
Attributes:
   alexaName  Thermostat
   alexaRoom  Wohnzimmer
   alias      Thermostat
   genericDeviceType thermostat
   readingList desiredTemperature
   room       Temperatur
   setList    desiredTemperature:slider,0,0.5,30
   stateFormat Soll desiredTemperature°C
   verbose    1
   webCmd     desiredTemperature


4. Der Logauszug
[2019-3-27 15:13:48] >>>> [ssh] {"directive":{"header":{"namespace":"Alexa.ThermostatController","name":"SetTargetTemperature","payloadVersion":"3","messageId":"51b6a27e-e512-471c-a146-393bd70232c7","correlationToken":"-"},"endpoint":{"scope":{"type":"BearerToken","token":"9BB68E93-7150E55C13722719"},"endpointId":"5c994be3-f33f-a4f4-d98b-28856f9f389087af","cookie":{"fuuid":"5c994be3-f33f-a4f4-d98b-28856f9f389087af","device":"d_Thermostat"}},"payload":{"targetSetpoint":{"value":25,"scale":"CELSIUS"}}}}
[2019-3-27 15:13:48] [FHEM] d_Thermostat: executing set cmd for TargetTemperature with value 0.5
[2019-3-27 15:13:48] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=set%20d_Thermostat%20desiredTemperature%200.5&fwcsrf=csrf_116086168960502&XHR=1
[2019-3-27 15:13:48] <<<< [ssh] {"context":{"properties":[{"namespace":"Alexa.ThermostatController","name":"targetSetpoint","value":{"value":0.5,"scale":"CELSIUS"},"timeOfSample":"2019-03-27T14:13:48.031Z","uncertaintyInMilliseconds":500}]},"event":{"header":{"namespace":"Alexa","name":"Response","payloadVersion":"3","messageId":"bf7cd662-f41a-4a6d-8a2d-1f99e36bdd11","correlationToken":"-"},"endpoint":{"scope":{"type":"BearerToken","token":"9BB68E93-7150E55C13722719"},"endpointId":"5c994be3-f33f-a4f4-d98b-28856f9f389087af"},"payload":{}}}


5. Und das Alexa Device als List
Internals:
   FD         7
   FUUID      5c8d2acd-f33f-a4f4-ce56-1b27b39ab9ae1d1f
   FVERSION   39_alexa.pm:0.189070/2019-03-14
   LAST_START 2019-03-27 15:07:01
   LAST_STOP  2019-03-27 15:06:57
   NAME       TestAlexa
   NOTIFYDEV  global,global:npmjs.*alexa-fhem.*
   NR         15
   NTFY_ORDER 50-TestAlexa
   PARTIAL   
   PID        1257
   STARTS     11
   STATE      running /usr/bin/alexa-fhem
   TYPE       alexa
   active     0
   alexa-fhem version 0.5.26
   currentlogfile ./log/alexa-2019-03-27.log
   logfile    ./log/alexa-%Y-%m-%d.log
   CoProcess:
     cmdFn      alexa_getCMD
     name       alexaFHEM
     state      running /usr/bin/alexa-fhem
   READINGS:
     2019-03-27 15:07:01   alexaFHEM       running /usr/bin/alexa-fhem
     2019-03-27 15:07:04   alexaFHEM.ProxyConnection running; SSH connected
     2019-03-16 17:57:15   alexaFHEM.bearerToken ist_da...
     2019-03-16 17:57:17   alexaFHEM.skillRegKey ist_da...
   helper:
Attributes:
   alexaFHEM-config ./alexa-fhem.cfg
   alexaFHEM-log ./log/alexa-%Y-%m-%d.log
   alexaMapping #Characteristic=<name>=<value>,...
On=verb=schalte,valueOn=an;ein,valueOff=aus,valueToggle=um

Brightness=verb=stelle,property=helligkeit,valuePrefix=auf,values=AMAZON.NUMBER,valueSuffix=prozent

Hue=verb=stelle,valuePrefix=auf,values=rot:0;grün:128;blau:200
Hue=verb=färbe,values=rot:0;grün:120;blau:220

Saturation=verb=stelle,property=sättigung,valuePrefix=auf,values=AMAZON.NUMBER
Saturation=verb=sättige,values=AMAZON.NUMBER

TargetPosition=verb=mach,articles=den;die,values=auf:100;zu:0
TargetPosition=verb=stelle,valuePrefix=auf,values=AMAZON.NUMBER,valueSuffix=prozent

TargetTemperature=verb=stelle,valuePrefix=auf,values=AMAZON.NUMBER,valueSuffix=grad

Volume:verb=stelle,valuePrefix=auf,values=AMAZON.NUMBER,valueSuffix=prozent

#Weckzeit=verb=stelle,valuePrefix=auf;für,values=AMAZON.TIME,valueSuffix=uhr
   alexaTypes #Type=<alias>[,<alias2>[,...]]
light=licht,lampen
blind=rolladen,rolläden,jalousie,jalousien,rollo,rollos
   devStateIcon stopped:control_home@red:start stopping:control_on_off@orange running.*:control_on_off@green:stop
   echoRooms  #<deviceId>=<room>

   fhemIntents #IntentName=<sample utterance>
gutenMorgen=guten morgen
guteNacht=gute nacht
   room       Alexa
   stateFormat alexaFHEM
   verbose    1


Gruß

Mundus

Hi,

ein kurzer Nachtrag, sobald ich den Slider bei setList entferne klappt das Einstellen. Da ich den Slider aber in Echtbetrieb nutze, brauche ich hierfür noch eine Lösung bzw. Hilfe.

Gruß

P.S.: Hier das Log für zwei Schaltvorgänge
[2019-3-27 18:48:11] >>>> [ssh] {"directive":{"header":{"namespace":"Alexa.ThermostatController","name":"SetTargetTemperature","payloadVersion":"3","messageId":"5b9f0fcf-fe4c-4d25-8d65-a3417751a36e","correlationToken":"-"},"endpoint":{"scope":{"type":"BearerToken","token":"9BB68E93-7150E55C13722719"},"endpointId":"5c994be3-f33f-a4f4-d98b-28856f9f389087af","cookie":{"fuuid":"5c994be3-f33f-a4f4-d98b-28856f9f389087af","device":"d_Thermostat"}},"payload":{"targetSetpoint":{"value":17,"scale":"CELSIUS"}}}}
[2019-3-27 18:48:11] [FHEM] d_Thermostat: executing set cmd for TargetTemperature with value 17
[2019-3-27 18:48:11] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=set%20d_Thermostat%20desiredTemperature%2017&fwcsrf=csrf_116086168960502&XHR=1
[2019-3-27 18:48:11] <<<< [ssh] {"context":{"properties":[{"namespace":"Alexa.ThermostatController","name":"targetSetpoint","value":{"value":17,"scale":"CELSIUS"},"timeOfSample":"2019-03-27T17:48:11.736Z","uncertaintyInMilliseconds":500}]},"event":{"header":{"namespace":"Alexa","name":"Response","payloadVersion":"3","messageId":"c5366995-6da2-4dc3-ae15-dab49bcefbee","correlationToken":"-"},"endpoint":{"scope":{"type":"BearerToken","token":"9BB68E93-7150E55C13722719"},"endpointId":"5c994be3-f33f-a4f4-d98b-28856f9f389087af"},"payload":{}}}
  2019-03-27 18:48:11 caching: d_Thermostat-desiredTemperature: 17
[2019-3-27 18:48:11] [FHEM]     caching: TargetTemperature: 17 (as number; from '17')
[2019-3-27 18:48:22] >>>> [ssh] {"directive":{"header":{"namespace":"Alexa.ThermostatController","name":"SetTargetTemperature","payloadVersion":"3","messageId":"2ae6eee0-b341-4f88-aa01-e9bf58e63f58","correlationToken":"-"},"endpoint":{"scope":{"type":"BearerToken","token":"9BB68E93-7150E55C13722719"},"endpointId":"5c994be3-f33f-a4f4-d98b-28856f9f389087af","cookie":{"fuuid":"5c994be3-f33f-a4f4-d98b-28856f9f389087af","device":"d_Thermostat"}},"payload":{"targetSetpoint":{"value":17.5,"scale":"CELSIUS"}}}}
[2019-3-27 18:48:22] [FHEM] d_Thermostat: executing set cmd for TargetTemperature with value 17.5
[2019-3-27 18:48:22] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=set%20d_Thermostat%20desiredTemperature%2017.5&fwcsrf=csrf_116086168960502&XHR=1
[2019-3-27 18:48:22] <<<< [ssh] {"context":{"properties":[{"namespace":"Alexa.ThermostatController","name":"targetSetpoint","value":{"value":17.5,"scale":"CELSIUS"},"timeOfSample":"2019-03-27T17:48:22.659Z","uncertaintyInMilliseconds":500}]},"event":{"header":{"namespace":"Alexa","name":"Response","payloadVersion":"3","messageId":"a4433766-8267-41e3-b997-85b7ea547d6f","correlationToken":"-"},"endpoint":{"scope":{"type":"BearerToken","token":"9BB68E93-7150E55C13722719"},"endpointId":"5c994be3-f33f-a4f4-d98b-28856f9f389087af"},"payload":{}}}
  2019-03-27 18:48:22 caching: d_Thermostat-desiredTemperature: 17.5
[2019-3-27 18:48:22] [FHEM]     caching: TargetTemperature: 17.5 (as number; from '17.5')

87insane

Scheint relativ einfach zu sein... Mit einem HM Thermostat als Test-Gerät wäre das wohl auch für dich einfacher gewesen.

In dem Fall denke ich folgendes....

Deine setList ist einfach falsch. Machen wir darauß mal eine Übungsaufgabe ;)
Deine setList: setList    desiredTemperature:slider,0,0.5,30

Eine setList aus einem Rollo zum Vergleich:
setList    pct:slider,0,1,100 cmnd/az_rollo/SHUTTERPOSITION $EVTPART1

Was sehen wir hier? (bezogen auf deine Idee)
- 1. Den Wert, den der Slider anzeigen soll. Dieser muss auch als Reading vorhanden sein. Ansonsten würde der Slider nicht stimmen.
- 2. Was soll es werden? Ein Slider
- 3. Wo fängt der Slider an? Bei 0 - In welchen Schritten soll er hoch/runter gehen? 0.5 - Was ist der Max-Wert? 30
Ab HIER nicht mehr dein Slider aber so sollte es sein
- 4. Was soll der Slider denn machen wenn er umgestellt wird? In meinem Beispiel ist es ein MQTT Gerät. Deswegen die Syntax. Dort müsste nun deine HM Geschichte rein. Also nichts anderes als der set Befehl mit dem entsprechendem Wert. Die 0.5 nimmt er bei dir natürlich da dies der Wert ist den dein Slider angibt und kein Befehl folgt.

Jetzt bin ich mal gespannt... Hab eigentlich (so sehe ich das zumindest) alles gesagt. Wenn du es geschafft hast, gib mal Feedback. Viel Spaß beim basteln :)

Mundus

Hi,

ganz habe ich deinen Einwand nicht verstanden :-[

Also 1. - 3. war erledigt, und 4. m.E. auch. In FHEM selbst wurde das setreading ordnungsgemäß ausgeführt. Die Befehlssyntax ist doch mqqt-spezifisch. Zumindest habe ich für mein Dummy keine äquivalente Lösung gefunden.

Geschafft habe ich es aber trotzdem. Anstatt setList desiredTemperature:slider,0,0.5,30 zu setzen, habe ich jetzt den Slider aus setList entfernt und mit widgetOverride gearbeitet.

Das ganze sieht jetzt wie folgt aus:

Internals:
   CFGFN     
   FUUID      5c994be3-f33f-a4f4-d98b-28856f9f389087af
   NAME       d_Thermostat
   NR         156
   STATE      Soll 15°C
   TYPE       dummy
   OLDREADINGS:
   READINGS:
     2019-03-28 22:19:12   desiredTemperature 15
Attributes:
   alexaName  Thermostat
   alexaRoom  Wohnzimmer
   alias      Thermostat
   genericDeviceType thermostat
   readingList desiredTemperature
   room       Temperatur
   setList    desiredTemperature
   stateFormat Soll desiredTemperature°C
   verbose    5
   webCmd     desiredTemperature
   widgetOverride desiredTemperature:slider,0.0,0.5,30.0,1


Abschließend bleibt für mich noch offen, wo die Schlagworte wie z.B. desiredTemperature hinterlegt sind, so dass ich sie nachlesen kann.

Gruß und vielen Dank für eure Hilfe


Mundus

Jackeson

Hallo,
habe Alexa fhem neu instaliert und bekomme jetzt die fehlermeldung
alexaFHEM.ProxyConnection
error; user homedir writable by group/other ('chmod 755 /opt/fhem' required)

könnte mir vieleicht jemand dabei helfen was ich falsch gemacht habe
wäre echt super
Gruß
aller anfang ist schwer

amenomade

Was Du falsch gemacht hast, weiss ich nicht.
Aber was Du machen musst steht ganz klar geschrieben:
Zitat'chmod 755 /opt/fhem' required
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Jackeson

Vielen Dank, amenomade
manchmal sieht man den Wald vor lauter Bäume nicht
Gruß
aller anfang ist schwer

Skusi

Hallo zusammen,
ich habe seit langen erfolgreich Alexa-fhem mit custom skill und Smart Home Skill laufen. Nun habe ich am Wochenende ein Fhem Update gefahren so wie ich es eigentlich wöchentlich mache. Seitdem reagiert Alexa auf nix mehr und im Alexa Modul ist mir folgende Meldung aufgefallen:
alexaFHEM.ProxyConnection
error; ssh-keygen command not found, please check if your installation of SSH is complete.


Auf der suche nach einer Lösung bin ich erst auf diese ganze Fhem-Connector Geschichte gestoßen. Irgendwie ist das an mir vorbei gegangen. Nach querlesen des Wiki´s und diverser Foren Beiträge ist mir die Sache aber ehrlich gesagt im Moment zu verwirrend und kompliziert bzw zeitaufwendig erschienen. Ich wollte nur meine alte Alexa wieder haben. Also hab ich mich dann entschlossen ein Backup zurück zu schreiben. Nun läuft wieder alles.

Aber was muß ich denn nun vom Update excluden damit ich Updates machen kann ohne Alexa gleich wieder zu verlieren ?

So wie ich das verstanden habe kann das Neue Alexa-Connector ja nicht mit meinem Custom Skill umgehen. Da ich aber Funktionen benutze in denen mir Alexa Werte aus Fhem vorliest, ist mir der Custom Skill schon wichtig.

Allerdings interessiert mich schon auch die Funktionalität des Fhem-Connectors.

Komischerweise habe ich die ober genannte Fehlermeldung nun auch immer noch im Alexa Modul stehen, aber Alexa reagiert wieder.
Ich kann nicht wirklich was mit der Meldung anfangen. SSH ist auf dem Raspberry unter DietPI installiert. Ich bin auch schon testweise von Dropbear auf OpenSSH umgestiegen, hat aber nix gebracht. Warum habe ich angeblich keinen ssh-keygen command  auf dem System ?

Irgendwie verstehe ich die Zusammenhänge nicht ganz. Ich würde gerne auf die neue Alexa umsteigen wenn sie denn auch die Funktionen meines Custom Skills unterstützen würde.

Reicht es um erstmal funktion zu behalten das Alexa Modul von Updates auszuschließen ?

Komischer Weise scheint die Alexa-fhem Version nicht das Problem zu sein. Jetzt nach dem Bacckup einspielen habe ich Version  0.5.24. Und das ist doch auch die aktuelle -oder ?

Kann mir bitte mal einer einen Rat geben, wie ich das am besten löse ?

-Skusi
RPI3B, SIGNALduino, NanoCul868 (a-culfw), JeeLink Clone (LaCrosse), Firmata  für FB Heizung,Wasser+Gas+Klingel+Lux, Somfy Rolladen, Pollin Steckd.,TX29DTH,ESPEasy an S0 Stromz., MAX Fensterkontakte, IButton, SonOff Tasmota, ESP LED Controler