Heizkörperthermostat HM-CC-RT-DN mit Anwesenheit

Begonnen von pointde, 09 September 2015, 14:35:28

Vorheriges Thema - Nächstes Thema

pointde

Folgendes Szenario hätte ich geplant. Leider reichen meine Grundkenntnisse dafür nicht aus.
Zwei Heizkörperthermostate sollen automatisch die Temperator hoch- oder runterfahren, wenn ich mit meinem iPhone in einem bestimmten Breich komme. Der Status der iPhones wird bereits richtig gesetzt.
Das Ganze soll aber nur von Montag bis Samstag von 08:00 bis 20:30 funktionieren. Am Sonntag soll die Temp immer abgesenkt werden. Folgender 1. Geh Versuch funktiniert leider nicht:

define HeizungBueroMike_ein notify { if ( Value("rr_Mike") eq "home" && ( !($we), { \
                fhem ("set HT_BM_R_Clima desired-temp 23") }

Mr. P

Hej pointde,

dein Ansatz ist eigentlich gar nicht so schlecht, versuch es einmal mit:

define HeizungBueroMike_ein notify { \
   if ( Value("rr_Mike") eq "home" && !$we ) { \
      fhem ("set HT_BM_R_Clima desired-temp 23") \
   } \
}


Dadurch hast du zwar den ganzen Samstag drinnen, aber wenn das mal klappt, sollte der Rest kein Problem sein. ;-)
Greetz,
   Mr. P

pointde

Ich habe zwar auch noch versucht, dasss es nur von oben geschriebener Zeit passiert, aber dein Vorschlag funktioniert leider auch nicht.
Obwohl der Status home auch passt, setzt fhem die Temp nicht um...

frank

seit wann braucht ein notify keine regex mehr?  ;)
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Mr. P

Greetz,
   Mr. P

pointde


Mr. P

Schau dir dadas Notify in dem Link an, dann siehst du, was dir fehlt:
http://fhem.de/commandref.html#notify

Gesendet von meinem SM-G800F mit Tapatalk

Greetz,
   Mr. P

pointde

Also ich habe nochmal unter deinem Link und hier nachgeschaut, wo mein Fehler liegen könnte: http://www.fhemwiki.de/wiki/Schalten_mit_mehreren_Bedingungen
So habe ich es versucht. Geht aber auch nicht:

define HeizungBueroMike_ein notify { \
   if ( Value("rr_Mike") eq "home" && !$we ) { \
      fhem ("set HT_BM_R_Clima desired-temp 23";;) \
   } \
}            

frank

dein notify wird nie getriggert/aufgerufen.

warum unterschlägst du diesen entscheidenden teil (regex) aus dem wiki? deswegen heisst ein notify "notify".
piri_schlafzimmer:on.*
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

pointde

ok, dann muss ich passen. Ich habe mir jetzt meinen Code und das Wiki tausend mal angeschaut. Ich kanns einfach nicht....

Mr. P

Was wir dir sagen wollen, sieht ungefähr so aus:
define HeizungBueroMike_ein notify (rr_Mike) { \
   if ( Value("rr_Mike") eq "home" && !$we ) { \
      fhem ("set HT_BM_R_Clima desired-temp 23") \
   } \
}

So gebaut, wird die Temperatur immer auf 23 Grad gestellt, wenn sich das Telefon einbucht und es nicht Wochenende ist.

Ersetzt du die letzte Zeile dann noch durch:
elsif ( Value("rr_Mike") ne "home" ) { \
      fhem ("set HT_BM_R_Clima desired-temp 18") \
   } \
}

...wird die Temperatur immer gesenkt, sobald dein Handy wieder away ist. ;-)
Greetz,
   Mr. P

pointde

... Man kann so blind sein.
Basierend auf deinen Vorschlage habe ich es mal so (siehe unten gemacht). Funktioniert aber leider nicht.

define HeizungBueroMike_ein notify (rr_Mike) { \
   if ( Value("rr_Mike") eq "home" && !$we ) { \
      fhem ("set HT_BM_R_Clima desired-temp 23"), fhem ("set HT_BM_L_Clima desired-temp 23") \
   } \
elsif ( Value("rr_Mike") ne "home" ) { \
      fhem ("set HT_BM_R_Clima desired-temp 18"), fhem ("set HT_BM_L_Clima desired-temp 18") \
   } \
}

Mr. P

Zitat von: pointde am 10 September 2015, 09:32:32
... Man kann so blind sein.
Basierend auf deinen Vorschlage habe ich es mal so (siehe unten gemacht). Funktioniert aber leider nicht.

define HeizungBueroMike_ein notify (rr_Mike) { \
   if ( Value("rr_Mike") eq "home" && !$we ) { \
      fhem ("set HT_BM_R_Clima desired-temp 23"), fhem ("set HT_BM_L_Clima desired-temp 23") \
   } \
elsif ( Value("rr_Mike") ne "home" ) { \
      fhem ("set HT_BM_R_Clima desired-temp 18"), fhem ("set HT_BM_L_Clima desired-temp 18") \
   } \
}


Hast du zuerst meinen Vorschlag probiert oder gleich meinen um deine Änderungen erweitert?
Eine Sache, die hier völlig falsch ist... du trennst die Anweisungen mit Beistrichen, musst aber Strichpunkte verwenden. Weiters rufst du alles einzeln auf, das ist auch nicht notwendig.
So wie du es gerne hättest, brauchen die Anweisungszeilen lediglich so auszusehen:
fhem ("set HT_BM_R_Clima,HT_BM_L_Clima desired-temp 18")
Wenn alle Heizungen gleich gesteuert werden sollen und die Benennung einheitlich ist, kannst du sogar nochmal abkürzen:
fhem ("set HT.*Clima desired-temp 18")
Greetz,
   Mr. P

frank

warum nutzt du nicht die eingabe über das webif? da werden dir syntaxfehler meist sofort angezeigt. zu finden auf der detailsseite des notify, indem du DEF anklickst. da musst du auch keine "\" für zeilenende eingeben. ausserdem kannst du verbose=5 vom notify einschalten. dann bekommst du zusätzlich genügend fehlerhinweise in fhem.log. wenn dein notify irgendwann fehlerfrei läuft, kannst du verbose vom notify wieder löschen.

nach jedem befehl (fhem) kommt ein semikolon, kein komma.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

pointde

Also, ich wollte es wirklich alleine schaffen, aber es funktioniert einfach nicht. Folgende zwei Codes sind übrig geblieben:

1. Versuch
define HeizungBueroMike_auto notify (rr_Mike) { \
   if ( Value("rr_Mike") eq "home" && !$we ) { \
      fhem ("set HT_BM_R_Clima,HT_BM_L_Clima desired-temp 23") \
   } \
elsif ( Value("rr_Mike") ne "home" ) { \
      fhem ("set HT_BM_R_Clima,HT_BM_L_Clima desired-temp 18") \
   } \
}


2. Versuch
define HeizungBueroMike_auto notify (rr_Mike) { \
   if ( Value("rr_Mike") eq "home" && !$we ) { \
      fhem ("set HT_BM_R_Clima desired-temp 23");; fhem ("set HT_BM_L_Clima desired-temp 23") \
   } \
elsif ( Value("rr_Mike") ne "home" ) { \
      fhem ("set HT_BM_R_Clima desired-temp 18");; fhem ("set HT_BM_L_Clima desired-temp 18") \
   } \
}


Fehler-Log-Auszug:
2015.09.10 14:38:27 3: [anyViews V3.10] Value of attribut dashboard_tab0sorting is wrong. Saved sorting can not be set. Fix Value or delete the Attribute. [1]
2015.09.10 14:38:27 3: [anyViews V3.10] Value of attribut dashboard_tab0sorting is wrong. Saved sorting can not be set. Fix Value or delete the Attribute. [1]
2015.09.10 14:38:30 2: ROOMMATE set rr_Mike absent
2015.09.10 14:38:30 1: PERL WARNING: Backslash found where operator expected at (eval 2005) line 1, near ") \"
2015.09.10 14:38:30 3: eval: { \    if ( Value("rr_Mike") eq "home" && !$we ) { \       fhem ("set HT_BM_R_Clima desired-temp 23"); fhem ("set HT_BM_L_Clima desired-temp 23") \    } \ elsif ( Value("rr_Mike") ne "home" ) { \       fhem ("set HT_BM_R_Clima desired-temp 18"); fhem ("set HT_BM_L_Clima desired-temp 18") \    } \ }
2015.09.10 14:38:30 3: HeizungBueroMike_auto return value: syntax error at (eval 2005) line 1, near "\    if"
syntax error at (eval 2005) line 1, near ") \"
syntax error at (eval 2005) line 1, near "\ elsif"
syntax error at (eval 2005) line 1, near ") \"

2015.09.10 14:38:30 1: PERL WARNING: Backslash found where operator expected at (eval 2006) line 1, near ") \"
2015.09.10 14:38:30 3: eval: { \    if ( Value("rr_Mike") eq "home" && !$we ) { \       fhem ("set HT_BM_R_Clima desired-temp 23"); fhem ("set HT_BM_L_Clima desired-temp 23") \    } \ elsif ( Value("rr_Mike") ne "home" ) { \       fhem ("set HT_BM_R_Clima desired-temp 18"); fhem ("set HT_BM_L_Clima desired-temp 18") \    } \ }
2015.09.10 14:38:30 3: HeizungBueroMike_auto return value: syntax error at (eval 2006) line 1, near "\    if"
syntax error at (eval 2006) line 1, near ") \"
syntax error at (eval 2006) line 1, near "\ elsif"
syntax error at (eval 2006) line 1, near ") \"

2015.09.10 14:38:30 1: PERL WARNING: Backslash found where operator expected at (eval 2007) line 1, near ") \"
2015.09.10 14:38:30 3: eval: { \    if ( Value("rr_Mike") eq "home" && !$we ) { \       fhem ("set HT_BM_R_Clima desired-temp 23"); fhem ("set HT_BM_L_Clima desired-temp 23") \    } \ elsif ( Value("rr_Mike") ne "home" ) { \       fhem ("set HT_BM_R_Clima desired-temp 18"); fhem ("set HT_BM_L_Clima desired-temp 18") \    } \ }
2015.09.10 14:38:30 3: HeizungBueroMike_auto return value: syntax error at (eval 2007) line 1, near "\    if"
syntax error at (eval 2007) line 1, near ") \"
syntax error at (eval 2007) line 1, near "\ elsif"
syntax error at (eval 2007) line 1, near ") \"

2015.09.10 14:38:30 1: PERL WARNING: Backslash found where operator expected at (eval 2008) line 1, near ") \"
2015.09.10 14:38:30 3: eval: { \    if ( Value("rr_Mike") eq "home" && !$we ) { \       fhem ("set HT_BM_R_Clima desired-temp 23"); fhem ("set HT_BM_L_Clima desired-temp 23") \    } \ elsif ( Value("rr_Mike") ne "home" ) { \       fhem ("set HT_BM_R_Clima desired-temp 18"); fhem ("set HT_BM_L_Clima desired-temp 18") \    } \ }
2015.09.10 14:38:30 3: HeizungBueroMike_auto return value: syntax error at (eval 2008) line 1, near "\    if"
syntax error at (eval 2008) line 1, near ") \"
syntax error at (eval 2008) line 1, near "\ elsif"
syntax error at (eval 2008) line 1, near ") \"

2015.09.10 14:38:30 1: PERL WARNING: Backslash found where operator expected at (eval 2009) line 1, near ") \"
2015.09.10 14:38:30 3: eval: { \    if ( Value("rr_Mike") eq "home" && !$we ) { \       fhem ("set HT_BM_R_Clima desired-temp 23"); fhem ("set HT_BM_L_Clima desired-temp 23") \    } \ elsif ( Value("rr_Mike") ne "home" ) { \       fhem ("set HT_BM_R_Clima desired-temp 18"); fhem ("set HT_BM_L_Clima desired-temp 18") \    } \ }
2015.09.10 14:38:30 3: HeizungBueroMike_auto return value: syntax error at (eval 2009) line 1, near "\    if"
syntax error at (eval 2009) line 1, near ") \"
syntax error at (eval 2009) line 1, near "\ elsif"
syntax error at (eval 2009) line 1, near ") \"

2015.09.10 14:38:30 1: PERL WARNING: Backslash found where operator expected at (eval 2010) line 1, near ") \"
2015.09.10 14:38:30 3: eval: { \    if ( Value("rr_Mike") eq "home" && !$we ) { \       fhem ("set HT_BM_R_Clima desired-temp 23"); fhem ("set HT_BM_L_Clima desired-temp 23") \    } \ elsif ( Value("rr_Mike") ne "home" ) { \       fhem ("set HT_BM_R_Clima desired-temp 18"); fhem ("set HT_BM_L_Clima desired-temp 18") \    } \ }
2015.09.10 14:38:30 3: HeizungBueroMike_auto return value: syntax error at (eval 2010) line 1, near "\    if"
syntax error at (eval 2010) line 1, near ") \"
syntax error at (eval 2010) line 1, near "\ elsif"
syntax error at (eval 2010) line 1, near ") \"

2015.09.10 14:38:30 1: PERL WARNING: Backslash found where operator expected at (eval 2011) line 1, near ") \"
2015.09.10 14:38:30 3: eval: { \    if ( Value("rr_Mike") eq "home" && !$we ) { \       fhem ("set HT_BM_R_Clima desired-temp 23"); fhem ("set HT_BM_L_Clima desired-temp 23") \    } \ elsif ( Value("rr_Mike") ne "home" ) { \       fhem ("set HT_BM_R_Clima desired-temp 18"); fhem ("set HT_BM_L_Clima desired-temp 18") \    } \ }
2015.09.10 14:38:30 3: HeizungBueroMike_auto return value: syntax error at (eval 2011) line 1, near "\    if"
syntax error at (eval 2011) line 1, near ") \"
syntax error at (eval 2011) line 1, near "\ elsif"
syntax error at (eval 2011) line 1, near ") \"

2015.09.10 14:38:30 1: PERL WARNING: Backslash found where operator expected at (eval 2012) line 1, near ") \"
2015.09.10 14:38:30 3: eval: { \    if ( Value("rr_Mike") eq "home" && !$we ) { \       fhem ("set HT_BM_R_Clima desired-temp 23"); fhem ("set HT_BM_L_Clima desired-temp 23") \    } \ elsif ( Value("rr_Mike") ne "home" ) { \       fhem ("set HT_BM_R_Clima desired-temp 18"); fhem ("set HT_BM_L_Clima desired-temp 18") \    } \ }
2015.09.10 14:38:30 3: HeizungBueroMike_auto return value: syntax error at (eval 2012) line 1, near "\    if"
syntax error at (eval 2012) line 1, near ") \"
syntax error at (eval 2012) line 1, near "\ elsif"
syntax error at (eval 2012) line 1, near ") \"

2015.09.10 14:38:30 1: PERL WARNING: Backslash found where operator expected at (eval 2013) line 1, near ") \"
2015.09.10 14:38:30 3: eval: { \    if ( Value("rr_Mike") eq "home" && !$we ) { \       fhem ("set HT_BM_R_Clima desired-temp 23"); fhem ("set HT_BM_L_Clima desired-temp 23") \    } \ elsif ( Value("rr_Mike") ne "home" ) { \       fhem ("set HT_BM_R_Clima desired-temp 18"); fhem ("set HT_BM_L_Clima desired-temp 18") \    } \ }
2015.09.10 14:38:30 3: HeizungBueroMike_auto return value: syntax error at (eval 2013) line 1, near "\    if"
syntax error at (eval 2013) line 1, near ") \"
syntax error at (eval 2013) line 1, near "\ elsif"
syntax error at (eval 2013) line 1, near ") \"

2015.09.10 14:38:30 1: PERL WARNING: Backslash found where operator expected at (eval 2014) line 1, near ") \"
2015.09.10 14:38:30 3: eval: { \    if ( Value("rr_Mike") eq "home" && !$we ) { \       fhem ("set HT_BM_R_Clima desired-temp 23"); fhem ("set HT_BM_L_Clima desired-temp 23") \    } \ elsif ( Value("rr_Mike") ne "home" ) { \       fhem ("set HT_BM_R_Clima desired-temp 18"); fhem ("set HT_BM_L_Clima desired-temp 18") \    } \ }
2015.09.10 14:38:30 3: HeizungBueroMike_auto return value: syntax error at (eval 2014) line 1, near "\    if"
syntax error at (eval 2014) line 1, near ") \"
syntax error at (eval 2014) line 1, near "\ elsif"
syntax error at (eval 2014) line 1, near ") \"

2015.09.10 14:38:30 1: PERL WARNING: Backslash found where operator expected at (eval 2015) line 1, near ") \"
2015.09.10 14:38:30 3: eval: { \    if ( Value("rr_Mike") eq "home" && !$we ) { \       fhem ("set HT_BM_R_Clima desired-temp 23"); fhem ("set HT_BM_L_Clima desired-temp 23") \    } \ elsif ( Value("rr_Mike") ne "home" ) { \       fhem ("set HT_BM_R_Clima desired-temp 18"); fhem ("set HT_BM_L_Clima desired-temp 18") \    } \ }
2015.09.10 14:38:30 3: HeizungBueroMike_auto return value: syntax error at (eval 2015) line 1, near "\    if"
syntax error at (eval 2015) line 1, near ") \"
syntax error at (eval 2015) line 1, near "\ elsif"
syntax error at (eval 2015) line 1, near ") \"

2015.09.10 14:38:30 1: PERL WARNING: Backslash found where operator expected at (eval 2016) line 1, near ") \"
2015.09.10 14:38:30 3: eval: { \    if ( Value("rr_Mike") eq "home" && !$we ) { \       fhem ("set HT_BM_R_Clima desired-temp 23"); fhem ("set HT_BM_L_Clima desired-temp 23") \    } \ elsif ( Value("rr_Mike") ne "home" ) { \       fhem ("set HT_BM_R_Clima desired-temp 18"); fhem ("set HT_BM_L_Clima desired-temp 18") \    } \ }
2015.09.10 14:38:30 3: HeizungBueroMike_auto return value: syntax error at (eval 2016) line 1, near "\    if"
syntax error at (eval 2016) line 1, near ") \"
syntax error at (eval 2016) line 1, near "\ elsif"
syntax error at (eval 2016) line 1, near ") \"