FHEM Forum

FHEM - Hausautomations-Systeme => Homematic => Thema gestartet von: PsychoD am 14 Januar 2015, 09:09:31

Titel: HM-CC-RT-DN: Manuellen Eingriff erkennen?
Beitrag von: PsychoD am 14 Januar 2015, 09:09:31
Hallo,

ich habe folgendes Szenario: Homematic HM-CC-RT-DN Ventile mit FHEM, Abwesenheit wird über einen Taster geschaltet. Bei Rückkehr das Drücken des Tasters leider oft vergessen. Was dann manchmal passiert, ist dass die Bewohner einfach am Thermostat selbst die Temperatur hochdrehen wenn sie wieder da sind - das System sich aber noch auf Abwesenheit befindet. Gibt es eine Möglichkeit solche manuellen Eingriffe zu erkennen, um darauf zu reagieren? (auf Anwesend schalten).

Ich habe keine andere Idee für Anwesenheit/Abwesenheit, da die Smartphones gerne mal leer sind oder nicht mitgenommen werden...

Danke & viele Grüße
Titel: Antw:HM-CC-RT-DN: Manuellen Eingriff erkennen?
Beitrag von: Groby am 14 Januar 2015, 09:24:39
Hallo,

Du könntest die desired-temp mit einem notify überwachen.

Wenn gleichzeitig "abwesend" aktiviert ist und irgendeine desired-temp sich ändert, auf "anwesend" und Automatik schalten.

Zu beachten ist aber, dass in dieser Zeit kein "Tages-Programm" die desired-temp ändern sollte...

MfGroby
Titel: Antw:HM-CC-RT-DN: Manuellen Eingriff erkennen?
Beitrag von: PsychoD am 14 Januar 2015, 10:01:09
Also Abwesenheit = Manuelle Temperatur, und wenn sich die desired-temp ändert auf auto stellen, richtig verstanden?
Titel: Antw:HM-CC-RT-DN: Manuellen Eingriff erkennen?
Beitrag von: chris1284 am 14 Januar 2015, 12:46:32
erkennen ist denke ich etwas schwer.bei Groby's lösung müsstest du zur abwesenheit  noch prüfen od die desired temp mit dem tag und der zeit des tempprofils im rt passt.
(zb neu dersired-temp 16.0 ist ok wenn es mittwoch um 15:00 ist [und alle abwesend][und mode auto])

man könnte auch
- wenn alle abwesend -> btnlock an. erst wenn jemand deinen button betätigt werden die rt's wieder entsperrt

- per at einfach immer wieder (zb wochentag abhängig) den rt wieder auf auto stellen. (zb jeden aben um 06:00, 12:00, 22:00 Uhr) so das ab xx:00 immer auto läuft (und zb noch um 22:00 die buttons sperren und morgens wieder freigeben)

- per R-tempMax / R-tempMin ein wenig eingrenzen was manuell gestellt werden kann (zb kann man dann nur am rt von 16.0 bis 22.0 stellen)
--> wenn man hier nur temps zulässt die nicht in der templist gesetzt werden (Zb templist setzt 16 am rt kann man erst ab 17 schalten) erkennt man sofort das es händisch war, bin mir aber nicht sicher ob die templist setzen kann die man per tempMin/Max "excluded" hat

- das wechlseln des modis unterbinden (modusBtnLock ) und mit der tmeplist öffter mal die temp setzen (zb wenn du jetzt von 6uhr bis 22uhr stump 16°C fährst einfach noch mal um 10,14,18 Uhr nochmal 16 setzen)
Titel: Antw:HM-CC-RT-DN: Manuellen Eingriff erkennen?
Beitrag von: PsychoD am 14 Januar 2015, 19:28:49
Danke für die Antworten.

Interessant wäre der Vergleich der desired-temp mit dem laut Profil eingestellten Temperatur. Da stehe ich aktuell etwas auf dem Schlauch, wie ich das scripten könnte, kann mir da jemand mit einer Idee oder Beispielcode auf die Sprünge helfen?

Danke & viele Grüße
Titel: Antw:HM-CC-RT-DN: Manuellen Eingriff erkennen?
Beitrag von: chris1284 am 14 Januar 2015, 20:01:24
du musst ers den wochentag erkennen  ( kann fhem mit  $wday ) 1= Montag, 2 = dienstag usw. heute ist 3, Mittwoch)
dann holst du dir (mit ReadingsVal) aus dem rt-climachannel das reading für die entsprechende templist, heute R_4_tempListWed
code grob:
wenn $wday == 3 -> my $templistday = ReadingsVal("name rt clima channel", "R_4_tempListWed","")
wenn $wday == 1 -> my $templistday = ReadingsVal("name rt clima channel", "R_4_tempListMon","") usw

dann hast du den wert  aus der templiste  ( zb "06:00 16.0 24:00 16.0") und verarbeitest ihn weiter.
zum bespiel am einfachsten nur prüfen ob der string die aktuelle desired-temp hat.

Titel: Antw:HM-CC-RT-DN: Manuellen Eingriff erkennen?
Beitrag von: Motivierte linke Hände am 18 Januar 2015, 16:03:20
PsychoD, sowas schwebte mir auch vor, wobei ich allerdings generell benachrichtigt werden wollte (oder, idealerweise, die Temperatur automatisch zurückdrehen wollte), wenn im Kinderzimmer die desired-temp nicht mit der Temperatur laut Heizplan übereinstimmt.

Bist Du mit dem Skripten hier schon weitergekommen?
Titel: Antw:HM-CC-RT-DN: Manuellen Eingriff erkennen?
Beitrag von: chris1284 am 18 Januar 2015, 17:12:13
Zitat von: Motivierte linke Hände am 18 Januar 2015, 16:03:20
PsychoD, sowas schwebte mir auch vor, wobei ich allerdings generell benachrichtigt werden wollte (oder, idealerweise, die Temperatur automatisch zurückdrehen wollte), wenn im Kinderzimmer die desired-temp nicht mit der Temperatur laut Heizplan übereinstimmt.

Bist Du mit dem Skripten hier schon weitergekommen?

warum setzt du nicht gleich so an das du das manipulieren am rt verhinderst (wenn deine kids nicht gerade die tastensperre des rt aufheben können und übrt fhem min und max manipulieren)?
weil warum sich benachrichtigen lassen, prüfungen einbauen und dann alles zurükstellen wenn mans auch verbieten kann.
Titel: Antw:HM-CC-RT-DN: Manuellen Eingriff erkennen?
Beitrag von: Motivierte linke Hände am 18 Januar 2015, 20:11:40
Also quasi

set <rt>_Clima regSet tempMax 24
set <rt>_Clima regSet tempMin 17


Das verhindert nur andere manuelle Einstellungen, über FHEM geht aber weiterhin alles?

Und Tastensperre

set <rt> regSet btnLock on

Oder geht das nur am Gerät selbst?

Der Perlcode zum Vergleich Solltemperatur mit der Vorgabe aus dem Heizplan würde mich trotzdem interessieren.  :)
Titel: Antw:HM-CC-RT-DN: Manuellen Eingriff erkennen?
Beitrag von: chris1284 am 18 Januar 2015, 21:39:31
mach mal ein get <name> regListan deinem device (ohne channel). dann siehst du was geht. das geht auch in den channels und du bekommst deren liste von optionen.

Zitat0: backOnTime       |   0 to 255s        |          | Backlight On Time
   0: btnLock          |     literal        |          | Button Lock options:on,off
   0: burstRx          |     literal        |          | device reacts on Burst options:on,off
   0: cyclicInfoMsg    |     literal        |          | cyclic message options:on_100,on,off
   0: cyclicInfoMsgDis |   0 to 255         |          | cyclic message
   0: globalBtnLock    |     literal        |          | global button lock options:on,off
   0: localResDis      |     literal        |          | local reset disable options:on,off
   0: lowBatLimitRT    |   2 to 2.5V        |          | low batterie limit, step .1V
   0: modusBtnLock     |     literal        |          | mode button lock options:on,off
   0: pairCentral      |   0 to 16777215    |          | pairing to central

btnLock  - sperrt alle tasten (einfach mal testen um am rt spielen set <name> regSet btnLock on)
modusBtnLock  - sperrt das wechseln des modus
globalBtnLock    - sperrt meine ich auch das drehrad

ZitatDer Perlcode zum Vergleich Solltemperatur mit der Vorgabe aus dem Heizplan würde mich trotzdem interessieren.  :)

tja, den habe ich auch nicht da ich das nicht nutze.  :D aber so würde ich von der logik ran gehen. einfach im forum weiter fragen wenn du beim probieren nicht weiter kommst
Titel: Antw:HM-CC-RT-DN: Manuellen Eingriff erkennen?
Beitrag von: Motivierte linke Hände am 20 Januar 2015, 09:59:04
Klappt, danke!