Readings von meiner Heizung mit Alexa abfragen (FHEM-Connector) *Gelöst*

Begonnen von lynckmeister, 02 Dezember 2020, 10:10:39

Vorheriges Thema - Nächstes Thema

lynckmeister

Hallo zusammen,

ich steuere meine Heizung mit FHEM, das ist ein HTTPMOD Device. Für den FHEM Connector habe ich den GenericDeviceType switch genommen und kann jetzt mit Alexa die Heizung an und aus stellen. Soweit alles gut. Ich habe allerdings in dem Device weitere Readings, die ich gern mit Alexa abfragen würde, wie zb Außentemperatur: Also :" Alexa , wie ist die Außentemperatur?"

Geht sowas vielleicht über einen anderen GenericDeviceType? Alternativ überlege ich einen weiteren Dummy anzulegen und den Wert Außentemperatur von dem HTTP Device dort zu übertragen. Dann könnte ich diesen Dummy Außentemperatur nennen und als Thermometer deklarieren ? Hat einer sowas schon gemacht? Wenn das der Weg sein sollte - wie übertrage ich das Reading eines Devices in einen Dummy ?

Achja und wie kann ich den Status der Heizung abfragen : "Alexa, wie ist der Status der Heizung?" oder so ? Antwort sollte dann halt an oder aus sein .. geht sowas?


vielen Dank für eure Hilfe...

TomLee

ZitatGeht sowas vielleicht über einen anderen GenericDeviceType?

keine Ahnung

ZitatAchja und wie kann ich den Status der Heizung abfragen

meine Statusabfrage eines switch ging noch nie, ausser mit dem Custom Skill.

ZitatWenn das der Weg sein sollte - wie übertrage ich das Reading eines Devices in einen Dummy ?

Würde es nicht über einen dummy, sondern readingsProxy angehen (wenn kein anderer Vorschlag kommt an/aus und Temperaturabfrage über das HTTPMOD Device zu lösen )

Beispiel:

defmod rp_WW_temp readingsProxy MQTT2_ebusd_bai:1_Warmwassertemperatur
attr rp_WW_temp alexaName nemo
attr rp_WW_temp event-on-change-reading state
attr rp_WW_temp genericDeviceType thermometer
attr rp_WW_temp homebridgeMapping CurrentTemperature=state


Gruß

Thomas

Beta-User

(zu langsam)
Na ja, wenn Heizung, ist ggf. auf "thermostat" der "richtige" gDT, dann muss aber das "aus" irgendwie auch auf "mode" gemappt werden usw., siehe z.B. die Infos (rund um) hier: https://forum.fhem.de/index.php/topic,110531.msg1100023.html#msg1100023.

Ansonsten ist das Stichwort für das einzelne Element der Außentemperatur "readingsProxy" (siehe Beitrag von TomLee).

(Und OT weiterführende Hinweise zu dem hier: https://forum.fhem.de/index.php/topic,116351.msg1106439.html#msg1106439: Schau dir mal "structure" und "lightScene" an).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

TomLee

Kenn mich mit Thermostaten gar nicht aus und homebridgeMapping nur ganz wenig.

Wie heißt denn das reading der Temperatur in dem HTTPMOD-Device ?

Klappt es nach der Temperatur zu fragen wenn du dein bisheriges homebridgeMapping einfach um CurrentTemperature erweiterst ?

On=Betriebsmode,valueOn=3,valueOff=0,cmdOn=Betriebsmode+Komfort,cmdOff=Betriebsmode+Schutz
CurrentTemperature=<Temperaturreadingname>

lynckmeister

Zitat von: TomLee am 02 Dezember 2020, 10:23:49

defmod rp_WW_temp readingsProxy MQTT2_ebusd_bai:1_Warmwassertemperatur
attr rp_WW_temp alexaName nemo
attr rp_WW_temp event-on-change-reading state
attr rp_WW_temp genericDeviceType thermometer
attr rp_WW_temp homebridgeMapping CurrentTemperature=state


Klasse Thomas, genau so hat es auf Anhieb funktioniert... vielen Dank !
Bleibt die Frage , wie ich den Status der Heizung abfragen kann ...
Also wenn es mit Switch Probleme gibt, vielleicht geht es doch mit einem anderen GDT ? Wiegesagt ich habe das Reading wei folgt :

attr BROETJE set1Map 0:Schutz,1:Auto,2:Reduziert,3:Komfort
attr BROETJE set1Max 3
attr BROETJE set1Min 0
attr BROETJE set1Name Betriebsmode



MadMax-FHEM

Abfrage ginge über Routine (Alexa-App) und dann Ansage über echodevice-Modul: https://forum.fhem.de/index.php/topic,82631.msg747482.html#msg747482

Also Beispiel:

Routine: "Alexa wie ist der Status der Heizung" -> schalte "irgendwas" (z.B. dummy / ist nur, damit die Routine "glücklich" ist / alternativ: Alexa antwortet mit "einen Moment bitte")

Dann beim echodevice auf das voice-Reading ein notify und daraufhin dann (bei "passendem" Text) per "set ECHO_XXX speak der Heizungsstatus ist $status" oder ohne notify auf voice-Reading direkt auf den geschaltenen dummy hin die Ansage durchführen...

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)

lynckmeister

#6
Mega...also es hat genauso funktioniert ... man braucht das echodevice, wenn es läuft kann ich mit einem dummydevice und einer Routine in der Alexa-app , die dieses Dummydevive "einschaltet" ein Notify auslösen, was dann den Status meiner Heizung ausließt :


Heizung_temp:.* { if ( ReadingsVal("BROETJE","Betriebsmodus",0) =~ /Komfort/) {fhem("set ECHO_G090Lttztztzzt9K speak Die Heizung ist eingeschaltet")} else { fhem("set ECHO_G090Lttztztzzt9K speak Die Heizung ist ausgeschaltet")} }


Jetzt habe ich nur das Problem, dass ich ja ein bestimmtes Echo anspreche... wenn das aber ein anderes als das hier verwendete ist, kommt die Antwort aus dem falschen Lautsprecher... wie kann man sowas regeln ??


MadMax-FHEM

#7
Also dein notify (das du leider nicht komplett und als list und in code-Tags [das '#' im Menü] gepostet hast ;) ) übergibt in $NAME das auslösende Device, also von wo die Ansprache kam (angenommen das voice-Reading ist der Trigger des notify)...

Wenn dem so ist, also das notify irgendwie so lautet:


define nVoice notify ECHO_.*:voice.* {...}


EDIT: gerade noch mal gelesen. Vermutlich nimmst du den dummy als Auslöser für das notify... Das ist nat. "doof" ;) Ich würde ein notify nehmen wie "meines". Dann da noch prüfen, dass im Text der gesprochen wurde es auch um die Heizung ging, in etwa so: if($EVENT =~ m/Heizung/){fhem("set $NAME speak...")} / vorausgesetzt in dem Satz der Routine kommt "Heizung" vor. Ansonsten halt was anderes nehmen...

EDIT: und evtl. (verm.) das voice-Intervall (beim "Account-Device") entsprechend "kurz" einstellen. Oder auf das notify im dummy hin ein: "set ECHO_AccountDevice get settings" aufrufen, das aktualisiert auch das voice-Reading...

dann sollte das hier gehen:


Heizung_temp:.* { if ( ReadingsVal("BROETJE","Betriebsmodus",0) =~ /Komfort/) {fhem("set $NAME speak Die Heizung ist eingeschaltet")} else { fhem("set $NAME speak Die Heizung ist ausgeschaltet")} }


Wenn nicht, dann triggerst du auf "was anderes" oder "falsch" ;)

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)

lynckmeister

#8
so jetzt klappt alles ;) Hier nochmal das vollständige Statement für evtl interessierte Mitleser auch im Code Tag  ;)


define Heizung_temp_ntf notify ECHO_.*:voice.* \
{ if (( ReadingsVal("BROETJE","Betriebsmodus",0) =~ /Komfort/) && ( $EVENT =~ m/heizung/ )) \
  {fhem("set $NAME speak Die Heizung ist eingeschaltet")} \
elsif ( $EVENT =~ m/heizung/ ) \
  {fhem("set $NAME speak Die Heizung ist ausgeschaltet")} }


vielen Dank für die Hilfe nochmals ;)

Eine Frage bleibt aber: manchmal dauert es echt lange bis der Echo antwortet, teilweise 20 Sekunden ...
Ich habe jetzt intervallvoice mal auf 1 gestellt, das sollte der kleinste wert sein. Aber es hat immer noch recht lang gedauert. Ausserdem ist in der Doku zu lesen, dass ein zu kleiner Wert das System ( wohl zu viele Pollings ) belastet... was ist denn ein "guter" Wert? Gibts noch was anderes um die Antwort zu beschleunigen?

MadMax-FHEM

Bzgl. "guter" Wert kann ich nichts sagen...

Was noch geht/gehen soll: auf den dummy, der ja am Ende der Routine geschalten wird ein notify was dann beim ECHO-Account-Device ein get EchoAccount settings

(ich glaube dass es settings war)

Wenn gelöst: bitte ein [gelöst] o.ä. vorne an den ersten Post, danke.

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)

TomLee

Zu der Belastung kann ich nichts sagen (steht bei mir default auf 10), mag nur nochmal zur Sicherheit nachfragen wo du das intervallvoice Attribut gesetzt hast ?

Das muss am Account-Device gesetzt werden !

Bei mir klappt das sehr gut auch wenn ich jetzt zum nachvollziehen mal auf 1 oder 2 Sekunden gesetzt habe.

Gruß

Thomas

MadMax-FHEM

Hatte ich zwar geschrieben, also am Account-Device...
...aber sicher ist sicher... ;)

Manches muss am Account-Device...
...andere Dinge direkt beim jeweiligen Echo...

Steht aber auch alles in der Doku bei Michael...

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)