Problem Loxone über FHEM zu Alexa: Ein Wert funktioniert, zwei Werte nicht...

Begonnen von baymava, 11 Februar 2020, 13:42:41

Vorheriges Thema - Nächstes Thema

baymava

Servus zusammen,

ich hoffe ich bin im richtigen Forum, ein Anfänger bin ich nämlich auch, zumindest was FHEM betrifft. Momentan steuere ich meine Loxone-Automation über die HA-Bridge.
Die Richtung Alexa -> Loxone funktionert also. Gerne möchte ich aber den umgekehrten Weg nutzen, also einen in Loxone vorhandenen Wert über Alexa ausgeben lassen.

Dazu habe ich:

- Auf dem Loxberry FHEM installiert
- den FHEM-Connector installiert
- in Loxone Virtuelle Ausgänge angelegt.

Da ich keine physischen Devices habe, hab ich ein dummy angelegt, in dessen Status die Temperatur geschrieben wird. Folgende Attribute sind vergeben:

alexaName Wohnzimmer
genericDeviceType thermometer

homebridgeMapping CurrentTemperature=state[/code]

Und ich muss sagen: ES FUNKTIONIERT  :) Alexa gibt mit die Temperatur im Wohnzimmer aus. Für mich als Anfänger ein Erfolg  :D

Nun hab ich aber in jedem Raum einen Loxone-Taster, der mit die Temperatur und die Lufteuchtigkeit ausgibt.

Also hab ich nochmal ein dummy angelegt, das diese Attribute hat:

alexaName Badoben
genericDeviceType HumiditySensor
homebridgeMapping CurrentRelativeHumidity=humidity CurrentTemperature=temperature
stateFormat {"T: " . ReadingsVal("Bad_OG","temperature",0) . "°C / H: " . ReadingsVal("Bad_OG","humidity",0) . "%" }


Im Reading bekomme ich sogar die Werte von Loxone, z. B.:

state humidity 42 2020-02-11 12:41:23
oder
state temperature 23 2020-02-11 12:42:33

Loxone schickt den entsprechenden Wert, sobald er sich ändert.

Leider hab ich aber noch zwei Probleme:

1. Der State bleibt bei den Anfangswerten. Brauch ich hier im Gegensatz zum ersten dummy ein notify? Momentan schaut das Internal state so aus:

STATE T: 0°C / H: 0%

2. Alexa erkennt zwar das Device, gibt mir aber keinen Wert aus. "Unterstützt das nicht" ist die Antwort. Normal müsste sie ja wenigstens "Null" ausgeben, da die Werte ja zugewiesen sind, oder?

Wär super, wenn mir jemand helfen kann, ich bedanke mich schon mal im Voraus  :)


MadMax-FHEM

Du hast keine list der Devices aber ich versuch mal mit den gegebenen Infos:

Du hast (was ich sehe) KEIN Reading "temperature" und auch KEIN Reading "humidity", sondern (zumindest sieht es so aus): state mit dem Wert "temperature 23" bzw. "humidity 42"

Daher wird stateFormat nicht funktionieren bzw. halt den "Ersatzwert" liefern: jeweils "0"...

Poste doch mal ein list von Badoben (Wie das Device heißt hast du "verschwiegen" ;)  ):


list DeviceName



"Problem" mit Alexa: Amazon unterstützt aktuell noch keine Luftfeuchte...

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)

baymava

...du hast natürlich Recht, hier ist das list des device "Bad_OG":

Internals:
   CFGFN     
   FUUID      5e418b90-f33f-7fbc-e6ac-9b16ee65d2ade899
   NAME       Bad_OG
   NR         430
   STATE      T: 0°C / H: 0%
   TYPE       dummy
   READINGS:
     2020-02-11 12:41:23   state           humidity 42
Attributes:
   alexaName  Badoben
   genericDeviceType HumiditySensor
   homebridgeMapping CurrentRelativeHumidity=humidity CurrentTemperature=temperature
   stateFormat {"T: " . ReadingsVal("Bad_OG","temperature",0) . "°C / H: " . ReadingsVal("Bad_OG","humidity",0) . "%" }


Ich dachte, "state" ist das Reading, da ich bei dem 1-Wert-Dummy ja auch kein extra Reading hab und es funktioniert. Aber da lieg ich wohl falsch.  ??? Was muss ich denn genau machen?

Wär ja zumindest mal super, wenn das wenigstens klappt. Auch wenn du sagst, dass ich dann die Luftfeuchte eh nicht abfragen kann. Schade. Gibt es denn da einen anderen Weg? Wollte schon die Feuchtigkeit als Temperatur in einem extra Gerät tarnen, das dann so ähnlich heißt. Aber das ist natürlich ziemlich unschön  :(

MadMax-FHEM

Zitat von: baymava am 11 Februar 2020, 17:11:47
Ich dachte, "state" ist das Reading, da ich bei dem 1-Wert-Dummy ja auch kein extra Reading hab und es funktioniert. Aber da lieg ich wohl falsch.  ??? Was muss ich denn genau machen? Wär ja zumindest mal super, wenn das wenigstens klappt.

Das verstehe ich nicht so genau ;)

Wie sieht denn das stateFormat des "1-Wert-Dummy" aus!?

Hier ist das Problem, dass das Reading eben "state" heißt.
Du also in ReadingsVal(NAME, "state", "Ersatzwert") angeben musst, sonst (ReadingsVal(NAME,"temperature","Ersatzwert")  )kommt eben der Ersatzwert (bei dir 0) ;)

Du musst/solltest schon beim "Erzeugen" des aktuellen Wertes (state) in 2 Readings aufspalten...
...um da zu helfen müsste ich allerdings wissen, wie du das derzeit machst ;)

Weil so wie es aussieht steht abwechselnd im Reading "state" mal humidity mit dem Wert drin und mal temperature mit dem Wert...
So wird das wohl nichts werden.
Evtl. ginge noch userReadings und dann das ins stateFormat (aber schön ist anders ;)  )...

So in etwa ("trocken" ungetestet):


userReadings temperature {if(ReadingsVal("Bad_OG","state","n.a.") =~ m/temperature/){return ReadingsNum("Bad_OG","state","n.a.");},humidity {if(ReadingsVal("Bad_OG","state","n.a.") =~ m/humidity/){return ReadingsNum("Bad_OG","state","n.a.");}


https://wiki.fhem.de/wiki/UserReadings

Damit solltest du 2 Readings haben (wenn die beide mal "aktualisiert" wurden vom externen System)...


Die kannst du dann ja in stateFormat aufnehmen (oder so ähnlich):

stateFormat T: temperature °C / H: humidity %




Zitat von: baymava am 11 Februar 2020, 17:11:47
Auch wenn du sagst, dass ich dann die Luftfeuchte eh nicht abfragen kann. Schade. Gibt es denn da einen anderen Weg? Wollte schon die Feuchtigkeit als Temperatur in einem extra Gerät tarnen, das dann so ähnlich heißt. Aber das ist natürlich ziemlich unschön  :(

Es gibt noch das echodevice-Modul (https://forum.fhem.de/index.php/topic,82631.msg747482.html#msg747482).
Dort gibt es das "voice-Reading", dort steht der gesprochene Text drin.

Es gibt (irgendwo in der Mitte des Threads) eine "Anleitung".
Hier kurz:

In der Alexa-App eine Routine anlegen: "Alexa wie ist die Luftfeuchte im Bad" -> irgendeinen Dummy schalten (damit die Routine "zufrieden" ist) -> Antwort von der Routine (optional): "Warte, ich schaue schnell nach" ;)

Dann ein DOIF/Notify auf das voice Reading (manche machen auch ein Notify auf den "Schalt-Dummy" und fragen dann get settings ab, damit das voice-Reading schneller aktualisiert wird / musst du wissen/testen).

Dort dann eben "auswerten" was gesprochen wurde (es gibt auch Module dafür: TEERKO, Talk2Fhem, Babble, ...) und dann eben die Antwort "zusammenbauen" und per "set Echo speak Antwort" die Antwort ausgeben lassen... ;)

Ansonsten: bei Amazon beschweren warum das noch nicht geht! ;)

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)

baymava

...und schon wieder muss ich zugeben, dass ich nur die halbe Wahrheit geschrieben hab.  ;) Zumindest, was das "1-Wert-Dummy" betrifft.

Da hab ich nämlich gar kein stateFormat:

Internals:
   FUUID      5e3e738c-f33f-7fbc-d6f1-4f2807a60ed7ab1e
   NAME       Temp_Wohnen
   NR         19
   STATE      23
   TYPE       dummy
   READINGS:
     2020-02-11 07:31:16   state           23
Attributes:
   alexaName  Wohnzimmer
   genericDeviceType thermometer
   homebridgeMapping CurrentTemperature=state


Deshalb funktioniert es auch.

Und ich glaube, ich sollte bei meinen Leisten bleiben und das erstmal auf diese Weise lösen. Die Variante mit dem echodevice-Modul ist mir zu hoch und ohne bringen mir die zwei Werte sowieso nichts.

Ich bedanke mich aber vielmals für die rasche und kompetente Hilfe! :D  Aus den Augen lass ich das Thema nicht, vielleicht haben ja mehrere mit einer Loxone-Automation mal den Wunsch, sich die Werte per Alexa sagen zu lassen.





MadMax-FHEM

Kein Thema, gerne!

Wenn du noch mitteilen magst, wie die Werte "nach fhem" kommen, kann ich vielleicht helfen da 2 Werte/Readings zu "machen", dann geht das mit dem stateFormat...
...und später auch mal per echodevice-Modul oder Alexa...

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)

baymava

Freilich, freut mich ja, dass einem hier so sehr geholfen wird! Ich schick die Werte von Loxone so:

http://192.168.001.013:8083/fhem?cmd=set%20Bad_OG%20humidity%20<v>&XHR=1

http://192.168.001.013:8083/fhem?cmd=set%20Bad_OG%20temperature%20<v>&XHR=1

Bei Zeiten möcht ich mich auch intensiver in FHEM einarbeiten, aber erstmal muss das Haus fertig werden  ;)

MadMax-FHEM

Nimm statt 'set' 'setreading', dann hast du 2 Readings und dann sieht es schon besser aus...

Oder evtl. auch setList humidity temperarure

EDIT: ich sehe kein csrf-Token... "Deaktiviert"!? Über die Konsequenzen bist du dir im Klaren!? Und jetzt nicht: aber ich nutze es doch nur im internen Netz etc. Wenn das die Antwort ist, dann hast du den Sinn von csrf-Token (verm.) nicht umrissen...

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)