Hallo, leider habe ich ein weiteres Problem welches ich nicht gelöst bekomme.
Die Ansage von Temperaturen erfolgt leider als Datum. Angeblich war das ein Problem einer älteren Version.
Ich nutze allerdings eine aktuelle Version:
Internals:
FD 12
FUUID 5dc70f63-f33f-1920-df45-26547b11199fa643
FVERSION 39_alexa.pm:0.206260/2019-11-30
LAST_START 2019-12-15 08:35:10
LAST_STOP 2019-12-15 08:35:10
NAME alexa
NOTIFYDEV global,global:npmjs.*alexa-fhem.*
NR 656
NTFY_ORDER 50-alexa
PARTIAL
PID 29795
STARTS 6
STATE running /usr/local/bin/alexa-fhem
TYPE alexa
active 0
alexa-fhem version 0.5.31
currentlogfile /opt/fhem/log/alexa-2019-12-15.log
logfile %L/alexa-%Y-%m-%d.log
CoProcess:
cmdFn alexa_getCMD
name alexaFHEM
state running /usr/local/bin/alexa-fhem
READINGS:
2019-12-15 08:35:10 alexaFHEM running /usr/local/bin/alexa-fhem
2019-12-15 08:35:14 alexaFHEM.ProxyConnection running; SSH connected
2019-11-09 20:12:00 alexaFHEM.bearerToken crypt:080608077515b580f0e70570801
2019-11-09 20:12:00 alexaFHEM.skillRegKey crypt:76030870210575264e574025001757524480b0c0755060f74010108530f77575b50
helper:
Attributes:
DbLogExclude .*
alexaFHEM-config ./alexa-fhem.cfg
alexaFHEM-log %L/alexa-%Y-%m-%d.log
alexaMapping #Characteristic=<name>=<value>,...
Bei meinen Temperatursensoren habe ich ein UserReading mit kommaseparierter Angabe:
Internals:
CHANGED
DEF 14
FUUID 5cc937b2-f33f-9484-ed1f-0dd4349056ce7e06
IODev JeeLink
JeeLink_MSGCNT 42771
JeeLink_RAWMSG OK 9 20 1 4 152 51
JeeLink_TIME 2019-12-15 08:56:42
LASTInputDev JeeLink
LaCrosse_lastRcv 2019-12-15 08:56:42
MSGCNT 42770
NAME LaCrosse_14
NR 409
STATE T: 17.6 H: 51
TYPE LaCrosse
addr 14
battery_new 0
corr1 0
corr2 0
previousH 51
previousT 17.6
sensorType 0=T(H)
Helper:
DBLOG:
humidity:
DbLog:
TIME 1576396503.23695
VALUE 51
temperature:
DbLog:
TIME 1576396050.17732
VALUE 17.7
READINGS:
2019-12-15 08:56:42 battery ok
2019-12-15 08:56:42 humidity 51
2019-12-15 08:56:42 state T: 17.6 H: 51
2019-12-15 08:56:42 temperature 17.6
2019-12-15 08:56:42 temperatureDE 17,6
Attributes:
DbLogExclude state,battery
DbLogInclude temperature,humidity
IODev JeeLink
alexaName Temperatur Wohnzimmer
alias LaCrosse #4
batteryChange 02.10.2019
event-min-interval temperature:600,humidity:600,battery:3600
event-on-change-reading temperature:0.2,humidity:2,battery
genericDeviceType HumiditySensor
group Temperatursensor
homebridgeMapping clear CurrentTemperature=temperatureDE CurrentRelativeHumidity=humidity
icon temperature_humidity
room Wohnzimmer
userReadings temperatureDE { my $temp = ReadingsVal("LaCrosse_14", "temperature", 0); $temp =~ s/\./,/g; return $temp; }
Beim Einlesen der Werte scheint auch alles okay (Auszug), die Ansage erfolgt nach "Alexa, wie ist die Temperatur im Wohnzimmer" dennoch als Datum:
*** FHEM: connected
...
[15.12.2019, 08:35:13] [FHEM] LaCrosse_14 is HumiditySensor
[15.12.2019, 08:35:13] [FHEM] LaCrosse_14 has
[15.12.2019, 08:35:13] [FHEM] CurrentTemperature [temperatureDE]
[15.12.2019, 08:35:13] [FHEM] CurrentRelativeHumidity [humidity]
2019-12-15 08:35:13 caching: LaCrosse_14-temperatureDE: 17,7
2019-12-15 08:35:13 caching: LaCrosse_14-humidity: 51
...
[15.12.2019, 08:35:14] sshautoconf: completed successfully
Habe ich was übersehen?
ZitatHabe ich was übersehen?
17,7
Gruß
Thomas
Wie meinen?
Ich habe ja extra für das ursprüngliche Reading temperature 17.7 das Reading temperatureDE 17,7 angelegt.
Aber bei beiden Varianten wird daraus "Es sind siebzehnter sieben Grad"
Es macht also aktuell keinen Unterschied. Oder habe ich Dich falsch verstanden?
Ich hab ja (noch) keine Temp-etc-Sensoren integriert...
...vielleicht mach ich das dann mal...
Aber: kann der Fehler nicht auch bei Amazon liegen!?
Hast du auch Logausgaben (alexa-fhem) von der Anfrage selbst!?
Gruß, Joachim
Hallo Joachim, bei einem tail...
tail -f /opt/fhem/log/alexa-2019-12-15.log
bekomme ich keine Ausgabe nach einer Anfrage für die Temperatur.
Oder gibt es da noch andere Log-Files?
Ich sehe auch gerade beim Alexa-Device:
alexaFHEM.ProxyConnection stopped; Terminated with ssh: connect to host fhem-va.fhem.de port 58824: Network is unreachable , ssh will restart at 11:12:53
Keine Ahnung, ob das schon länger der Fall ist!?
Evtl. liegt es daran was "rechts oben in Rot" steht... ;)
Allerdings wenn gar nichts zu alexa-fhem "durchdringt", würde Alexa ja auch nichts bzw. eher sowas wie: "bei der Abfrage ist ein Problem aufgetreten" antworten...
Ob es die richtige Logdatei ist, sollte am Alexa-Device zu sehen sein (meine ich, kann grad nicht nachsehen)...
Gruß, Joachim
Jep, das ist die richtige Log-Datei.
Und ROT scheint nicht auffällig genug für mich zu sein ;D
Ich warte das mal ab uns schau dann noch mal nach der Funktionsweise.
Eventuell klärt sich das ganze dann ja. Danke vorerst.
So, ProxyConnection wieder da. Ändert aber leider nichts.
Im alexa-log kann ich keinen Hinweis auf die Anfrage finden, und die Ausgabe findet weiterhin als Datum statt.
Habe auch wieder das hoemBridgeMapping auf die Punkt separierten Angaben geändert, 17.6
Leider nach wie vor keine Änderung.
Hast du nach den Änderungen auch das Gerät in Alexa gelöscht und neu suchen lassen UND nat. auch alexa-fhem neu gestartet!?
Bzgl. Log (alexa-fhem): siehst du nichts im Sinne "ich kann nichts erkennen" ODER kommen keine Ausgaben bei einer Abfrage!?
Wenn ersteres: bitte trotzdem mal posten (sonst kann man nicht helfen)...
...wenn letzteres: wo nimmt Alexa dann die Antwort her, wenn sie ja offenbar dann nicht von alexa-fhem kommen kann... ;)
Gruß, Joachim
Hab jetzt extra ein update von alexa-fhem (0.5.37) und 39_alexa.pm:0.206260/2019-11-30 gemacht.
Bei mir ist die Antwort wie immer und wie du es auch definiert hast jetzt (also mit Punkt)
Echo, wie ist die Temperatur von WohnzimmerZitatDie Temperatur von Wohnzimmer ist 19 Komma 6 Grad.
Internals:
ALARM 1
ASYNC 0
CHANGED
DEF DS18B20 1A97DE060000
ERRCOUNT 0
FUUID 5c9ac8ec-f33f-78f5-59d6-7f16962baffa76af
INTERVAL 300
IODev OWX
NAME OG_Innensensor_Wohnzimmer
NOTIFYDEV global
NR 43
NTFY_ORDER 50-OG_Innensensor_Wohnzimmer
OW_FAMILY 28
OW_ID 1A97DE060000
PRESENT 1
ROM_ID 28.1A97DE060000.A9
STATE 20.9 °C
TYPE OWTHERM
owg_temp 19.5625
owg_th 75
owg_tl 70
READINGS:
2019-12-15 14:07:49 corrected_temp 20.9 °C
2019-12-15 14:07:49 state T: 19.56 °C ↓
2019-12-15 14:07:49 temperature 19.5625
2019-12-15 14:07:49 temperaturegerundet 19.6
tempf:
factor 1
offset 0
Attributes:
IODev OWX
alexaName wohnzimmertempsensor
event-on-change-reading .*
group Vorderhaustemperaturen
homebridgeMapping CurrentTemperature=temperaturegerundet
model DS18B20
room Ebus,OWX
stateFormat corrected_temp
tempHigh 75
tempLow 70
userReadings temperaturegerundet {sprintf('%.1f', ReadingsVal($name,"temperature",0))},corrected_temp {return sprintf("%.1f °C",ReadingsVal($name,"temperature","error") + 1.3)}
Was mir noch auffällt/aufgefallen ist:
Zitat von: HansDampfHH
genericDeviceType HumiditySensor
Im Wiki steht:
Zitat von: https://wiki.fhem.de/wiki/Homebridge_User_Configs
Erstellung eines HomebridgeMappings am Beispiel "Feuchtesensor"
Zum Einstieg etwas leicht nachvollziehbares.
Feuchtesensoren haben in der Regel ein "humidity" Reading, im Falle des Opus XT300 Bodenfeuchtesensors auch Temperatur und Batterie Level. Homekit unterstützt einen "HumiditySensor" Service. Dieser ist in homebridge-fhem nicht standardmäßig vorhanden (kann also nicht aus dem dropdown ausgewählt werden, sondern muss über das Befehlsfeld zugewiesen werden):
attr meinSensor genericDeviceType HumiditySensor
Im nächsten Schritt werden die Readings gemappt:
attr meinSensor homebridgeMapping clear CurrentRelativeHumidity=humidity StatusLowBattery=battery,values=ok:BATTERY_LEVEL_NORMAL;;/^.*/:BATTERY_LEVEL_LOW CurrentTemperature=temperature
clearlöscht default mappings - das wird in der Regel nicht notwendig sein, schadet aber nicht
CurrentRelativeHumidity ist die relevante Homekit Characteristic - wird mit dem entsprechenden Reading des Sensors gemappt.
StatusLowBattery erwartet entweder BATTERY_LEVEL_NORMAL oder _LOW. Mein Sensor liefert ok zurück, wenn alles gut ist, also wird "ok" auf _NORMAL gemappt, alles andere auf _LOW.
Der Opus XT300 Bodenfeuchtesensors liefert auch noch die Temperatur - der HumiditySensor Service sieht das eigentlich nicht vor, daher wird die Temperatur auch nicht in der Apple "Home" App angezeigt. Bei Eve wird die Temperatur hingegen berücksichtigt.
D.h. ein humiditySensor unterstützt bei homekit etc. KEINE Temperatur!
Wie das bei alexa-fhem ist weiß ich leider nicht...
Aber das ist generell wichtig bei genericDeviceType (und homebridgeMapping): WAS wird jeweils WO und WIE unterstützt!
D.h. nur weil es "auswählbar" ist, heißt es noch nicht, dass es unterstützt wird (mehrere "Dienste" teilen sich das [genericDeviceType/homebridgeMapping]) und nur weil man es setzt (manuell) ebenso wenig...
Evtl. mal entfernen ODER wie im Beispiel Luftfeuchte/Temperatur (Homematic) im Wiki probieren:
https://wiki.fhem.de/wiki/Homebridge_User_Configs#Homematic_Luftfeuchtigkeits-_und_Tmeperatursensoren
EDIT: und/oder hierauf antworten https://forum.fhem.de/index.php/topic,106345.msg1002082.html#msg1002082 ;)
Gruß, Joachim
Das mit dem humiditySensor hab ich ganz überlesen ::)
Also dann entweder thermometer oder gar kein genericDeviceType (wie in meinem Beispiel) vergeben, dann sollte es klappen.
Gruß
Thomas
DeviceType ist bei mir auf TemperatureSensor um Humidity wird dann als zweiter Service bekannt gegeben. Das klappt:
clear
CurrentTemperature=temperature
HumiditySensor#CurrentRelativeHumidity=humidity
Edit: aber das habe ich für Siri drin. Temperatur geht bei Alexa damit aber auch bei mir. Kann Alexa denn Luftfeuchtigkeit?
Zitat von: Thyraz am 15 Dezember 2019, 14:42:46
Edit: aber das habe ich für Siri drin. Temperatur geht bei Alexa damit aber auch bei mir. Kann Alexa denn Luftfeuchtigkeit?
Das meinte ich ja ;)
Ich bin mir nicht sicher (ändert sich ja [manchmal] schnell) aber stimmt, glaube auch wo gelesen zu haben dass "noch nicht"...
...was aber nicht heißt, dass nicht mittlerweile schon... ;)
Zumindest konnte ich hier auch nichts finden: https://developer.amazon.com/de-DE/docs/alexa/device-apis/alexa-brightnesscontroller.html
(alexa-brightnesscontroler nur als "Einstieg" in die Seite ;) )
Gruß, Joachim
@Joachim
Ja, ich starte immer das alexa Device neu nach einer Änderung, verwerfe das gerät und starte die "suche" erneut.
Im Log erscheint einfach keine Meldung wenn ich ein Kommando absetze.
Eine Antwort kommt aber natürlich, eben als Datum.
Weiterhin habe ich auch mal die Attribute für das genericDeviceType (ich dachte das muss gesetzt sein) entfernt.
Entsprechend wieder Alexa neu gestartet, Geräte gelöscht und neu gesucht...keine Veränderung.
Auch das definieren als TemperatureSensor und/oder thermostat bringt leider keine Änderung.
Immer wieder eine Datumsangabe.
@TomLee
Habe jetzt noch mal ein "update 39_alexa.pm" gemacht und alexa-fhem auf 0.5.37 angehoben.
Nix neues. Was mich wundert warum ich keine Einträge im Logfile habe.
Sollte da nicht nach jedem Kommando was auftauchen?
Zitat von: HansDampfHH am 15 Dezember 2019, 15:07:35
Sollte da nicht nach jedem Kommando was auftauchen?
Normalerweise: ja (wenn ich mich nicht irre, kann nur grad nicht testen: außer Haus)
(was ich nicht weiß, ob das mit tail -f geht / sollte aber)
Daher ja: wenn KEIN Eintrag kommt, dann kommt irgendwie auch keine Anfrage von Alexa/Amazon...
...und dann bleibt das (größere) Rätsel: wo nimmt Alexa die Antwort her... ;)
Gruß, Joachim
Aktivier mal den Debug-Modus (https://wiki.fhem.de/wiki/FHEM_Connector_f%C3%BCr_Amazon_Alexa#Fehlersuche_.C3.BCber_die_FHEM-Oberfl.C3.A4che) und zeig wie genau das Gerät aussieht/erkannt wird.
Bei mir siehts so aus:
[2019-12-15 4:31:24 PM] [FHEM] homebridgeMapping: CurrentTemperature=temperaturegerundet
[2019-12-15 4:31:24 PM] [FHEM] mappings for OG_Innensensor_Wohnzimmer: { CurrentTemperature: { reading: 'temperaturegerundet', minValue: -30 } }
[2019-12-15 4:31:24 PM] [FHEM] OG_Innensensor_Wohnzimmer is thermometer
[2019-12-15 4:31:24 PM] [FHEM] OG_Innensensor_Wohnzimmer has
[2019-12-15 4:31:24 PM] [FHEM] CurrentTemperature [temperaturegerundet]
2019-12-15 16:31:24 caching: OG_Innensensor_Wohnzimmer-temperaturegerundet: 19.6
Gruß
Thomas
was genau bedeutet 'als Datum' ?
wenn nichts im alexa log steht ist die anfrage von amazon nicht bis zu fhem durch gerungen.
, ist übrigens falsch. dezimal zahlen müssen wie überall ausser in einem text mit . angegeben werden.
alexa kennt aktuell keine feuchte sensoren und ignoriert CurrentHumidity.
genericDeviceType auf Temperature sensor setzen und homebridgeMapping löschen sollte reichen.
der device namen sollte keinen raum namen enthalten. schiebe das device in der app in eine gruppe mit passendem namen.
alexa versteht meist keine anfragen mit 'im'. da schaltet sie auf den wetterbericht um.
versuch mal 'wie ist die temperatur von <raum>' wobei <raum> der name der gruppe ist.
@TomLee
Also mit Debugmodus sieht es nicht viel anders aus:
[15.12.2019, 18:20:23] [FHEM] mappings for LaCrosse_28: { CurrentTemperature: { reading: 'temperature' },
CurrentRelativeHumidity: { reading: 'humidity' } }
[15.12.2019, 18:20:23] [FHEM] LaCrosse_28 is thermometer
[15.12.2019, 18:20:23] [FHEM] LaCrosse_28 has
[15.12.2019, 18:20:23] [FHEM] CurrentTemperature [temperature]
[15.12.2019, 18:20:23] [FHEM] CurrentRelativeHumidity [humidity]
2019-12-15 18:20:23 caching: LaCrosse_28-temperature: 18.6
2019-12-15 18:20:23 caching: LaCrosse_28-humidity: 53
[15.12.2019, 18:20:23] [FHEM] homebridgeMapping: clear TargetTemperature=desiredTemperature,cmd=desiredTemperature,minValue=17,maxValue=25,minStep=0.5
@justme1968
Das mit dem Komma habe ich nur probiert weil ich da mehrere Hinweise aus 2017 gefunden hatte.
Wollte das nicht unversucht lassen.
Meine Temperatur-Sensoren haben kein alexaRoom-Attribut.
Ich habe sie lediglich in der Alexa App in eine Gruppe geschoben.
Jetzt kommst:
Die Frage mit "wie ist die Temperatur von Schlafzimmer":
-> Die Temperatur im Schlafzimmer ist 18 KOMMA 5 Grad. Der Raum, er ist nicht vorhanden.
Die Frage "wie ist die Temperatur im Schlafzimmer" ergibt nach wie vor "achtzehnter fünf Grad"
Die Frage nach der Luftfeuchtigkeit funktioniert nun gar nicht mehr:
"Ich bin leider nicht sicher"
Langsam nervt es, wieso funktioniert das scheinbar überall anders und bei jedem anders!?
wie oben geschrieben:
du hast einen raum namen als teil von alexaName. von alexaRoom habe ich nichts gesagt.
alexaRoom ist für den connector nicht relevant.
was meinst du mit der raum ist nicht vorhanden? wie heisst die gruppe? die gruppen in der app sind unter anderem deine räume.
ZitatDie Frage "wie ist die Temperatur im Schlafzimmer" ergibt nach wie vor "achtzehnter fünf Grad"
wenn hier nichts in log auftaucht: die anfrage ist nicht an fhem geschickt worden sondern von amazon intern bearbeitet worden. meist basieren auf dem wetterbericht. da die antwort unsinnig ist -> per feedback beschweren.
es funktioniert eigentlich überall gleich. du musst nur eine richtige konfiguration haben, das richtige fragen und wissen worauf sich die antwort bezieht.
Okay, ich hatte den Raumnamen mit im alexaName weil man sonst in der App nicht sieht um welches Thermometer es sich handelt.
Aber okay, ich lösche es mal.
Mittlerweile funktioniert die Abfrage mit "Wie ist die Temperatur von..." gut.
Ist zwar nicht schön, aber immerhin. Warum funktioniert denn aber die Luftfeuchtigkeit nicht mehr?
Ich habe das Thermometer jetzt als TemperatureSensor und ohne homeBridgeMapping laufen.
der smart home skill kennt keine luftfeuchte. das ging da noch nie.
Okay, verwirrend weil ich der Meinung bin, mit "wie ist die Luftfeuchtigkeit im Schlafzimmer"
bekam ich "die Luftfeuchtigkeit im Schlafzimmer ist achtundvierzigster drei".
Aber vielleicht täusche ich mich mittlerweile bei dem ganzen Durcheinander.
Aber gut, dass die Temperatur mittlerweile funktioniert.
Schade nur um das Wording :-(
Okay, nervig auch, dass ich nun jedes mal folgendes hören muss:
"Alexa, wie ist die Temperatur von Schlafzimmer?"
"Die Temperatur vom Schlafzimmer ist 18,7 Grad." ...und mit 2-3 Sekunden Versatz ... "Der Raum, er ist nicht vorhanden"
???
Der Raum/die Gruppe in der App ist vorhanden.
Und das Device sieht nun so aus:
Internals:
CHANGED
DEF 14
FUUID 5cc937b2-f33f-9484-ed1f-0dd4349056ce7e06
IODev JeeLink
JeeLink_MSGCNT 8154
JeeLink_RAWMSG OK 9 20 1 4 157 51
JeeLink_TIME 2019-12-16 07:41:22
LASTInputDev JeeLink
LaCrosse_lastRcv 2019-12-16 07:41:22
MSGCNT 8153
NAME LaCrosse_14
NR 409
STATE <div>Temperatur 18.1°C</div><div style='color:blue'>Feuchtigkeit 51%</div>
TYPE LaCrosse
addr 14
battery_new 0
corr1 0
corr2 0
previousH 51
previousT 18.1
sensorType 0=T(H)
Helper:
DBLOG:
humidity:
DbLog:
TIME 1576478058.09231
VALUE 51
temperature:
DbLog:
TIME 1576478290.84231
VALUE 18.1
OLDREADINGS:
READINGS:
2019-12-16 07:41:22 battery ok
2019-12-16 07:41:22 humidity 51
2019-12-16 07:41:22 humidityDE 51
2019-12-16 07:41:22 state T: 18.1 H: 51
2019-12-16 07:41:22 temperature 18.1
2019-12-16 07:41:22 temperatureDE 18,1
Attributes:
DbLogExclude state,battery
DbLogInclude temperature,humidity
IODev JeeLink
alexaName Temperatur
alias LaCrosse #4
batteryChange 02.10.2019
event-min-interval temperature:600,humidity:600,battery:3600
event-on-change-reading temperature:0.2,humidity:2,battery
group Temperatursensor
icon temperature_humidity
room Wohnzimmer
stateFormat <div>Temperatur temperature°C</div><div style='color:blue'>Feuchtigkeit humidity%</div>
Und hier der alexa-Logeintrag:
[16.12.2019, 07:35:13] >>>> [ssh] array (
'directive' =>
array (
'header' =>
array (
'namespace' => 'Alexa',
'name' => 'ReportState',
'payloadVersion' => '3',
'messageId' => 'c022bb48-5d3f-413b-8500-8fa4aeadfb1c',
'correlationToken' => '-',
),
'endpoint' =>
array (
'scope' =>
array (
'type' => 'BearerToken',
'token' => 'F11AD2FD-841749D38968',
),
'endpointId' => '5cc937b2-f33f-94-2f8b-81dcd40f418147c5',
'cookie' =>
array (
'fuuid' => '5cc937b2-f33f-94-2f8b-81dcd40f418147c5',
'device' => 'LaCrosse_00',
),
),
'payload' =>
array (
),
),
)
[16.12.2019, 07:35:13] [FHEM] caching: CurrentTemperature: 21.1 (as number; from '21.1')
[16.12.2019, 07:35:13] <<<< [ssh] array (
'context' =>
array (
'properties' =>
array (
0 =>
array (
'namespace' => 'Alexa.TemperatureSensor',
'name' => 'temperature',
'value' =>
array (
'value' => 21.1,
'scale' => 'CELSIUS',
),
'timeOfSample' => '2019-12-16T06:35:13.587Z',
'uncertaintyInMilliseconds' => 500,
),
),
),
'event' =>
array (
'header' =>
array (
'namespace' => 'Alexa',
'name' => 'StateReport',
'payloadVersion' => '3',
'messageId' => '2d0e6c8c-2c68-4189-8058-60505d22be17',
'correlationToken' => '-',
),
'endpoint' =>
array (
'scope' =>
array (
'type' => 'BearerToken',
'token' => 'F11AD2FD-841749D38968',
),
'endpointId' => '5cc937b2-f33f-94-2f8b-81dcd40f418147c5',
),
'payload' =>
array (
),
),
)
Kann da jemand erkennen warum ich immer diesen Post-Text erhalte?