FHEM Forum

FHEM => Codeschnipsel => Thema gestartet von: Susis_Strolch am 11 Juni 2021, 10:11:01

Titel: Wetterstation plus (HmIP-SWO-PL) und Alexa
Beitrag von: Susis_Strolch am 11 Juni 2021, 10:11:01
Hallo,

da das Einbinden der HomematicIP Wetterstation im Zusammenspiel mit dem Alexa-FHEM-Connector unerwartet schwierig war (zumindest für mich als jemand, der nicht soviel Zeit aufwenden kann/will, um hinter alle Annimositäten des Systems zu blicken und der vieles mit Anregungen aus Forum/Wiki mittels Try and Error umsetzt (und dabei das Sytem schon tausende Male aus dem Fenster hätte schmeissen können), möchte ich hier vorstellen, wie ich es geschafft habe, dass ich Alexa fragen konnte, wie die Temperatur der Wetterstation sei und Alexa auch tatsächlich korrekt antwortete.

Hardcore FHEM-Cracks werden das folgende vermutlich belächeln, ist mir an der Stelle aber wurscht, ich wünschte ich hätte mein eigenes Posting gehabt, das hätte einige Try and Errors gespart!

Ich hatte einen alten Sensor KS300 (oder so ähnlich). Hier konnte man ganz elegant sagen: Echo, wie ist die Temperatur der Wetterstation. Echo antwortete ganz brav: Die Temperatur der Wetterstation beträgt 22,5 Grad.
Der Sensor hatte nach einigen (vielen) Jahren seinen Geist aufgegeben und meldete nur noch lauschige 80 Grad bei einer Luftfeuchtigkeit von 99%. Es war Zeit ihn den Weg allen Irdisches gehen zu lassen.

Einen neuen anzuschaffen, entpuppte sich als gar nicht so trivial: Den Homatic-Sensor (ohne IP) anzuschaffen war schwierig, naja, eher teuer. Zu teuer. Also sollte es die IP Variante sein. HmIP in FHEM einzubinden ist ja doch etwas aufwendiger. Egal.

Kurz zum Hardwareumfeld, benutzt werden:

Ziel: Ich wollte sagen: "Echo, wie ist die Temperatur der Wetterstation." Echo sollte brav antwortete: "Die Temperatur der Wetterstation beträgt 22,5 Grad."

Natürlich (!!) hat das nicht funktioniert.

Folgendes setze ich hier einfach vorraus:

Das wichtigste Reading war: 1.ACTUAL_TEMPERATURE
Das wichtigste Attribut: alexaName. Es wurde auf Wetterstation gesetzt.

Um Sicherzugehen, dass alles ordentlich an die diversen Stellen gemeldet wird, FHEM neugestartet.
Danach über Alexa nach neuen Geräten gesucht. Es blieb bei den oben angesprochenen 63 Geräten. Nunja, Bart Simpson läßt grüßen: Klappts nicht beim ersten Mal, versuch es gleich noch mal und noch mal und noch mal und noch mal...

Es klappte einfach nicht, auch diverse FHEM-Neustarts brachten  nichts.

Die Lösung lag in ein paar Attributen (die Grundidee stammt ebenfalls aus dem Wiki):
Fertig

"Echo wie ist die Temperatur von Wetterstation?"
"Die Temperatur von Wetterstation ist 24,7 Grad"

Yay!
Titel: Antw:Wetterstation plus (HmIP-SWO-PL) und Alexa
Beitrag von: rabehd am 17 Juni 2021, 10:50:32
Zitat"genericDeviceType" wird auf "thermostat" gesetzt
Mit attr Wetterstation genericDeviceType thermometer funktioniert das nicht?

PS: Warum Du das unter Codeschipsel einsortiert hast, keine Ahnung?
Code sehe ich hier nicht.
Titel: Antw:Wetterstation plus (HmIP-SWO-PL) und Alexa
Beitrag von: Susis_Strolch am 07 Juli 2021, 09:19:16
Zitat von: rabehd am 17 Juni 2021, 10:50:32
Mit attr Wetterstation genericDeviceType thermometer funktioniert das nicht?
Nein, ich fand das auch naheliegend, ging nicht
Zitat
PS: Warum Du das unter Codeschipsel einsortiert hast, keine Ahnung?
Code sehe ich hier nicht.
ich hab das mit "als Code formatieren" nicht schön hinbekommen, daher sind die Definitionen im Fliesstext.
Außerdem wollte ich noch die Regenwarnung ergänzen. Die hab ich dann vergessen.

Also hier:

Nach dem die Wetterstation schön eingebunden war, sollte Alexa melden, wenn es regnet und eines der Dachfenster offen war.

folgendes setze ich vorraus:
1. es sind 2 Fenstersensoren vorhanden und eingerichtet: Sensor_Win_SZ, Sensor_Win_RZ
2. die Wetterstation ist eingerichtet: Wetter_FuchsbauIP
2. es ist mindestens ein Echo-kompatibles Gerät eingerichtet und mittels "speak" funktionsbereit, das Beispiel steuert drei installierte Echos an

Zwei Dinge sind nötig:
Zum einen die Definition der Prüffunktion:
define test_auf_regen at +*00:00:30 {Regenwarnung}
Alle 30 sekunden wird geprüft, ob es regnet. Dazu wird eine Funktion in der 99_myUtils.pm aufgerufen:

##########################################################
# Warnung bei geöffnetem Fenster und Regen
# überwachter Sensor: Sensor_Win_SZ, Sensor_Win_RZ
# Wetterstation: Wetter_FuchsbauIP
# im Beispiel 3 Echos
##########################################################
sub Regenwarnung()
{
if (ReadingsVal("Wetter_FuchsbauIP","1.RAINING","") eq "yes")
{
if (ReadingsVal("Sensor_Win_SZ","state","") eq "open")
{
fhem ("set ECHO_G091JJ0053D speak 'Es regnet'");
fhem ("set ECHO_G090121UHV speak 'Es regnet'");
fhem ("set ECHO_G090VC09CP speak 'Es regnet'");
}
else
{
if (ReadingsVal("Sensor_Win_RZ","state","") eq "open")
{
fhem ("set ECHO_G091JJ0053D speak 'Es regnet'");
fhem ("set ECHO_G090121UHV speak 'Es regnet");
fhem ("set ECHO_G090VC09CP speak 'Es regnet'");
}
}
}
}

Natürlich ist es sinnvoll, Alexa mehr als nur "Es regnet" sagen zu lassen. Schliesslich soll man ja auch nachts aus dem Schlaf gerissen werden, wenn das Haus gerade dabei ist, wegen eines offenen Dachfensters und Starkregens, wegzuschwimmen.
Titel: Antw:Wetterstation plus (HmIP-SWO-PL) und Alexa
Beitrag von: MadMax-FHEM am 07 Juli 2021, 12:01:34
Danke für's Teilen!

Ein paar kleine Anmerkungen:

- Warum per at prüfen und nicht SOFORT! per notify gewarnt werden?
(zumindest mache ich das per notify so)

- Warum nicht die Fenster beide mittels ODER abfragen?


if (ReadingsVal("Sensor_Win_SZ","state","") eq "open" || (ReadingsVal("Sensor_Win_RZ","state","") eq "open")


- Wenn man alle ECHOs sprechen lassen wollte ginge auch:


fhem ("set ECHO_.* speak 'Es regnet'");


- Damit es nicht nachts auch angesagt wird (sollte man es nachts nicht haben wollen? Weil: ob es nun am Tag oder nachts reinregnet ist doch gleich schlimm? Und: wenn die Fenster zu sind gibt es ja auch keine Ansage, also alles gut ;) ) kann man noch das Attribut disabledForIntervals nutzen.
Gibt es bei 'at' und 'notify'

Und eigentlich muss ich rabehd zustimmen es sollte genericDeviceType thermometer auch gehen. Evtl. ist ein (anderes) homebridgeMapping notwendig...
...aber das ist ja hier nicht wichtig (allerdings kannst/könntest du so auch das Wetter "bestimmen": Alexa setze Wetterstation auf 25 Grad ;)  )...
EDIT: lists der beteiligten Devices (also zuindest Wetterstation) hätten geholfen zu sehen warum es nicht geht/gehen sollte...

Gruß, Joachim
Titel: Antw:Wetterstation plus (HmIP-SWO-PL) und Alexa
Beitrag von: Susis_Strolch am 19 Juli 2021, 08:52:23
Vielen Dank für die Anregungen!