FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Gonzolo am 17 April 2017, 12:35:02

Titel: Rechnen mit Readings
Beitrag von: Gonzolo am 17 April 2017, 12:35:02
Hallo,

brauche mal wieder Eure Hilfe! :-)

Ich habe ein Dummy "Heizungssteuerung" erzeugt. Diesem Dummy habe ich mit

setreadings Heizungssteuerung TagTemp 21.0

ein Parameter im Reading erzeugt.

Jezte will ich mit einem DOIF nur dann nur dann eine Heizung einschalten, wenn die Termperatur vom einem "Wohnzimmerthermostat" < 2 Grad unterhalb dieser TagTemp ist.

Da ich bereits mit "STATE" Parametern rechne:

{fhem("set SollTemp " . (Value("SollTemp") -1.5))}


habe ich es mal mit :


define HeizON DOIF (Wohnzimmerthermostat < {fhem(Value("Heizungssteuerung:TagTemp") -2)}) (Set Heizung ON)



versucht.

Leider ohne Erfolg.

Hoffe Ich habe mein Problem einigermaßen verständlich erklärt und Ihr könnt mir Helfen?

DANKE!!!

Gruß

Gonzolo
Titel: Antw:Rechnen mit Readings
Beitrag von: FranzB94 am 17 April 2017, 12:44:56
Zitat von: Gonzolo am 17 April 2017, 12:35:02
DANKE!!!

BITTE!!!
https://fhem.de/commandref_DE.html#DOIF
Titel: Antw:Rechnen mit Readings
Beitrag von: Gonzolo am 17 April 2017, 17:33:49
Danke Franz für Deine Antwort.

ABER mir geht es nicht um den DOIF-Befehl. Den verstehe ich. Mir geht es draum wie die Syntax ist, um mit Parametern aus einem Reading zu rechnen. :-)

Danke!!!!!!!!  ;)
Titel: Antw:Rechnen mit Readings
Beitrag von: Icinger am 17 April 2017, 17:36:33
ZitatDanke!!!!!!!!

Bitte!!!!!!!!

https://fhem.de/commandref_DE.html#DOIF_Berechnungen_im_Ausfuehrungsteil (https://fhem.de/commandref_DE.html#DOIF_Berechnungen_im_Ausfuehrungsteil)
Titel: Antw:Rechnen mit Readings
Beitrag von: Damian am 17 April 2017, 17:39:22
Bevor sich noch jemand bedankt: ;)

Wenn Wohnzimmerthermostat im Status die Temperatur beinhaltet, dann kannst du es so definieren:


define HeizON DOIF ([Wohnzimmerthermostat] < ([Heizungssteuerung:TagTemp] -2)) (Set Heizung ON)
Titel: Antw:Rechnen mit Readings
Beitrag von: Gonzolo am 17 April 2017, 17:46:31
dann sage ich mal artig .... DANKE!!!! ;)
Titel: Antw:Rechnen mit Readings
Beitrag von: FranzB94 am 17 April 2017, 19:22:01
DANKE!!!!!!!! Damian, aber ob Gonzola das mit den []-Klammern vor lauter !!!!!!!!!!! verstanden hat?????

Frohe Ostergrüße

Franz
Titel: Antw:Rechnen mit Readings
Beitrag von: Gonzolo am 17 April 2017, 20:14:58
Hallo Franz. Ich habe es verstanden. Danke für Deine Führsorge!  ;)

Ich heiße GonzolO und nicht GonzolA  ;D
Titel: Antw:Rechnen mit Readings
Beitrag von: igami am 17 April 2017, 20:30:07
Und guck dir mal ReadingsVal und ReadingsNum an, falls du mal nicht mit DOIF unterwegs bist.
Titel: Antw:Rechnen mit Readings
Beitrag von: Gonzolo am 10 Mai 2017, 17:43:09
Wenn man es nicht immer gleich ausprobiert?!

Was ist an dieser DOIF Abfrage falsch??  :-[

  DOELSEIF ([Steuerung] eq "TempTag" and
   [TempWohnzimmer] < ([Steuerung:TempTag]-2.0))
  (set Heizung_Wohnzimmer datapoint 1.SET_POINT_TEMPERATURE [Heizung_Wohnzimmer:TempTag])
  (set Heizung_Wohnzimmer datapoint 1.BOOST_MODE true)


Ich bekomme immer so ne doofe Fehlermeldung und es tut sich nix...

2017.05.10 17:33:00 1: HMCCUDEV: Heizung_Wohnzimmer Execution of CCU script or command failed
2017.05.10 17:33:00 2: Heizung_Wohnzimmer_SetTemp: set Heizung_Wohnzimmer datapoint 1.SET_POINT_TEMPERATURE 21.0: HMCCUDEV: Heizung_Wohnzimmer Execution of CCU script or command failed


Danke für Euere Hilfe...

Beste Grüße

Gonzolo
Titel: Antw:Rechnen mit Readings
Beitrag von: KernSani am 10 Mai 2017, 21:38:17
Mir scheint das weniger am DOIF zu liegen und mehr am set Befehl. Was bringt denn ein
set Heizung_Wohnzimmer datapoint 1.SET_POINT_TEMPERATURE 21.0 im Kommandofeld als Ergebnis?
Titel: Antw:Rechnen mit Readings
Beitrag von: Gonzolo am 12 Mai 2017, 07:19:50
Hallo KernSani,

danke für Deine Hilfe!

der Befehlt

set Heizung_Wohnzimmer datapoint 1.SET_POINT_TEMOERATURE 21.0

macht das was er soll :-) Er schaltet die Heizung auf 21C

Habe mal folgendes probiert:

define test Dummy
set test ([Steuerung:TempTag]-2.0)


... das Ergebnis ist, dass er test:state mit "(20.5-2.0)" füllt.

Der will einfach nicht rechnen! :-( Hast Du vielleicht noch eine Idee, woran es liegen könnte?! Danke!

Viele Grüße

Gonzolo 
Titel: Antw:Rechnen mit Readings
Beitrag von: CoolTux am 12 Mai 2017, 07:41:23
Zitat von: Gonzolo am 12 Mai 2017, 07:19:50
Hallo KernSani,

danke für Deine Hilfe!

der Befehlt

set Heizung_Wohnzimmer datapoint 1.SET_POINT_TEMOERATURE 21.0

macht das was er soll :-) Er schaltet die Heizung auf 21C

Habe mal folgendes probiert:

define test Dummy
set test ([Steuerung:TempTag]-2.0)


... das Ergebnis ist, dass er test:state mit "(20.5-2.0)" füllt.

Der will einfach nicht rechnen! :-( Hast Du vielleicht noch eine Idee, woran es liegen könnte?! Danke!

Viele Grüße

Gonzolo

Du sagtest weiter oben das Du das mit dem DOIF verstanden hast, NEIN hast Du nicht. Bitte bitte tue den Helfenden einen gefallen und lese Dich erstmal ein.
Als erstes das Einsteiger PDF und danach die Commandref zu den von Dir verwendeten Modulen.

Ein einfacher set Befehl in der Konsole eingegeben kann nicht rechnen, zu mindest nicht so. der FHEM Befehl set hat eine solche Funktion nicht. Ein DOIF hingegen hat eine solche Funktion. Was set kann, im Zuge der Einführung von set Magic, ist das auslesen eines Reading Wertes innerhalb eines set Kommandos. (ja es gehen auch andere Werte, Attribut und so)

set ThermostatWohnzimmer desired-temp [dummyNachtTemp:state]


Dieser set Befehl schaltet die desired-temp vom ThermostatWohnzimmer auf den Wert welchen der Dummy dummyNachtTemp im Reading state zu stehen hat.


Bitte lese, lese und noch mal lese.



Grüße
Titel: Antw:Rechnen mit Readings
Beitrag von: Gonzolo am 12 Mai 2017, 10:10:03
Hallo CoolTux,

danke für Deine Nachricht. Ich werde Deinen Rat hinsichtlich des "Lesens" beherzigen. Glaube aber bitte nicht, dass ich nicht schon einiges gelesen habe, bevor ich mich an Euch wende! Ich gebe zu, dass ich nicht alles verstehe was geschrieben wird! Deswegen meine Fragen.

Dachte genau für solle Fälle gibt es die Rubrik "Anfänger"?!

Wenn nicht, dann muss ich mich in Zukunft zurückhalten und mich mit dem begnügen was ich in dem geschriebenen verstehe.  :-[ Wenn jedoch die Anderen hier, meiner Meinung sind, dann bitte ich Dich meine Beiträge zukünftig zu ignorieren. Mir liegt nichts ferner als jemanden mit meinen Fragen zu nerven!


Gruß

Gonzolo
Titel: Antw:Rechnen mit Readings
Beitrag von: CoolTux am 12 Mai 2017, 10:56:20
Zitat von: Gonzolo am 12 Mai 2017, 10:10:03
Hallo CoolTux,

danke für Deine Nachricht. Ich werde Deinen Rat hinsichtlich des "Lesens" beherzigen. Glaube aber bitte nicht, dass ich nicht schon einiges gelesen habe, bevor ich mich an Euch wende! Ich gebe zu, dass ich nicht alles verstehe was geschrieben wird! Deswegen meine Fragen.

Dachte genau für solle Fälle gibt es die Rubrik "Anfänger"?!

Wenn nicht, dann muss ich mich in Zukunft zurückhalten und mich mit dem begnügen was ich in dem geschriebenen verstehe.  :-[ Wenn jedoch die Anderen hier, meiner Meinung sind, dann bitte ich Dich meine Beiträge zukünftig zu ignorieren. Mir liegt nichts ferner als jemanden mit meinen Fragen zu nerven!


Gruß

Gonzolo

Auch hier noch mal der Vorschlag genau zu erklären was Du möchtest wo Du hin willst und dann nimmt EIN Helfender Dich an die Hand. Ich denke auch das Deine beiden Beiträge eigentlich zusammen gehören. Sieht für mich so aus das der Readings Rechnen Beitrag also dieser hier auf den Beitrag auslesen eines Dummys auf baut.
Titel: Antw:Rechnen mit Readings
Beitrag von: Gonzolo am 12 Mai 2017, 11:26:23
... bedingt hängen meine beiden Beiträge zusammen, da hast du recht. Beide haben was mit meiner Heizungssteuerung zu tun. Aber vergesse mal den anderen Beitrag. Ich habe mich entscheide den anderen zu schließen um Eure Nerven zu schonen.  ;)

Also nun zu dem Problem mit "Rechnen mit Readings"...

Bei dem hier beschriebenen Problem geht es darum, dass ich mit einem DOIF nur dann eine Heizung einschalten will, wenn die Termperatur vom einem "Wohnzimmerthermostat" < 2 Grad unterhalb einer vorgegebenen Tag Temperatur ist. Wie hoch diese Tag Temperatur ist, steht in einem Reading eines Dummy-Parameter namens [Steuerung:TempTag].

Am 17 April 2017, 17:39:22 hat mir Damian bereits eine Lösung präsentiert ... dachte ich ...

Zitat
Wenn Wohnzimmerthermostat im Status die Temperatur beinhaltet, dann kannst du es so definieren:


Code: [Auswählen]
define HeizON DOIF ([Wohnzimmerthermostat] < ([Heizungssteuerung:TagTemp] -2)) (Set Heizung ON)

Ich habe es dann wie folgt umgesetzt:



...
DOELSEIF
([TempWohnzimmer] < ([Steuerung:TempTag]-2.0))

(set Heizung_Wohnzimmer datapoint 1.SET_POINT_TEMPERATURE [Steuerung:TempTag])


Leder funktionier das nicht und ich habe nach langen lesen  ;) nicht herausgefunden, wie hier die richtige Syntax ist.  :-[

DANKE!

Beste Grüße

Gonzolo
Titel: Antw:Rechnen mit Readings
Beitrag von: CoolTux am 12 Mai 2017, 11:41:01
Ok ich versuche mal einen Testaufbau bei mir. Von Dir benötige ich bitte einmal ein list vom DIOF
Also oben in der Kommandozeile von FHEM Web eingeben

list DOIFNAME


Also statt DOIFNAME den Namen von Deinem DOIF
Titel: Antw:Rechnen mit Readings
Beitrag von: Beta-User am 12 Mai 2017, 11:43:32
Zitat von: Gonzolo am 12 Mai 2017, 11:26:23
Am 17 April 2017, 17:39:22 hat mir Damian bereits eine Lösung präsentiert ... dachte ich ...

Damian hatte doch heute nochmal einen kompletten code (https://forum.fhem.de/index.php/topic,71798.msg634168.html#msg634168) geliefert.

Warum schaust Du Dir das nicht nochmal genauer an?
Was Du mit den -2 Grad willst, ist doch eine Hysterese, richtig? Das ist genau der Zweck von THRESHOLD, Du solltest Dir also die Mühe machen, die Modulbeschriebung in der commandref mal anzuschauen.

Und btw.: Wenn Du eine Zeitschaltuhr suchst, mit der Du die Solltemperatur jeweils verändern kannst, schau Dir mal bei Gelegenheit weekdaytimer an (ich will aber die sowieso vorhandene Verwirrung hier nicht noch vergrößern, also vertage das erst mal).

Gruß, Beta-User
Titel: Antw:Rechnen mit Readings
Beitrag von: Gonzolo am 12 Mai 2017, 11:50:30
Thorsten... das brauchst Du?

Internals:
   DEF        ###### ------------------------Tag mit Boost
([Steuerung] eq "TempTag" and
   [TempWohnzimmer] < ([Steuerung:TempTag]-2.0))
  (set Heizung_Wohnzimmer datapoint 1.SET_POINT_TEMPERATURE [Heizung_Wohnzimmer:TempTag])
  (set Heizung_Wohnzimmer datapoint 1.BOOST_MODE true)


###### ------------------------Nacht
DOELSEIF
  ([Steuerung] eq "TempNacht")
  (set Heizung_Wohnzimmer datapoint 1.SET_POINT_TEMPERATURE [Heizung_Wohnzimmer:TempNacht])


###### ------------------------Off
DOELSEIF
  ([Steuerung] eq "OFF")
  (set Heizung_Wohnzimmer datapoint 1.SET_POINT_TEMPERATURE 2.0)

   NAME       Heizung_Wohnzimmer_SetTemp
   NR         100
   NTFY_ORDER 50-Heizung_Wohnzimmer_SetTemp
   STATE      initialized
   TYPE       DOIF
   Readings:
     2017-05-12 11:48:10   cmd             0
     2017-05-12 11:48:10   state           initialized
   Condition:
     0          InternalDoIf($hash,'Steuerung','STATE') eq "TempTag" and    InternalDoIf($hash,'TempWohnzimmer','STATE') < (ReadingValDoIf($hash,'Steuerung','TempTag')-2.0)
     1          InternalDoIf($hash,'Steuerung','STATE') eq "TempNacht"
     2          InternalDoIf($hash,'Steuerung','STATE') eq "OFF"
   Devices:
     0           Steuerung TempWohnzimmer
     1           Steuerung
     2           Steuerung
     all         Steuerung TempWohnzimmer
   Do:
     0:
       0          set Heizung_Wohnzimmer datapoint 1.SET_POINT_TEMPERATURE [Heizung_Wohnzimmer:TempTag]
       1          set Heizung_Wohnzimmer datapoint 1.BOOST_MODE true
     1:
       0          set Heizung_Wohnzimmer datapoint 1.SET_POINT_TEMPERATURE [Heizung_Wohnzimmer:TempNacht]
     2:
       0          set Heizung_Wohnzimmer datapoint 1.SET_POINT_TEMPERATURE 2.0
     3:
   Helper:
     globalinit 1
     last_timer 0
     sleeptimer -1
   Internals:
     0           Steuerung:STATE TempWohnzimmer:STATE
     1           Steuerung:STATE
     2           Steuerung:STATE
     all         Steuerung:STATE TempWohnzimmer:STATE
   Itimer:
   Readings:
     0           Steuerung:TempTag
     all         Steuerung:TempTag
   Regexp:
     All:
   State:
Attributes:
   do         always
   group      Neu
Titel: Antw:Rechnen mit Readings
Beitrag von: Gonzolo am 12 Mai 2017, 11:54:50
Beta-User...

Warum denken hier eigentlich alle, dass ich mir die Sachen nicht anschaue/durchlese/ausprobiere???? ::)

Ja man kann es anders bauen! Vielleicht tue ich das auch?! Trotzdem will ich verstehen wo HIER mein Fehler ist!

Oder habt Ihr es lieber, dass ich ein Thema öffne, und eine andere Methode finde, dass ich sofort das ding hier wieder zumache? Denke doch, dass es auch für andere interessant ist, wie man mit Readings rechen kann???

Aber auch Dir danke für Deinen Antwort und deine Mühe!

Viele Grüße

Gonzolo
Titel: Antw:Rechnen mit Readings
Beitrag von: CoolTux am 12 Mai 2017, 12:04:52
Also


Internals:
   CFGFN
   DEF        ([dummyTempSensorWZ] and ([?dummyTempSensorWZ] < [?dummyHzSteuerung:tempTag] - 2) ) ( set dummyThermostat on) DOELSE ()
   NAME       doifSetThermostat
   NR         69
   NTFY_ORDER 50-doifSetThermostat
   STATE      cmd_1
   TYPE       DOIF
   Readings:
     2017-05-12 12:03:15   Device          dummyTempSensorWZ
     2017-05-12 12:03:15   cmd             1
     2017-05-12 12:03:15   cmd_event       dummyTempSensorWZ
     2017-05-12 12:03:15   cmd_nr          1
     2017-05-12 12:03:15   e_dummyTempSensorWZ_STATE 13
     2017-05-12 12:03:15   state           cmd_1


So geht es bei mir. Ich schaue mir Dein list jetzt mal in Ruhe an
Titel: Antw:Rechnen mit Readings
Beitrag von: CoolTux am 12 Mai 2017, 12:09:22

([?Steuerung] eq "TempTag" and
   ([TempWohnzimmer] < [?Steuerung:TempTag]-2.0) )
  (set Heizung_Wohnzimmer datapoint 1.SET_POINT_TEMPERATURE [Heizung_Wohnzimmer:TempTag])
  (set Heizung_Wohnzimmer datapoint 1.BOOST_MODE true)


So sollte es dann auch klappen.
Und nimm mal das do always raus bitte
Titel: Antw:Rechnen mit Readings
Beitrag von: Gonzolo am 12 Mai 2017, 12:16:18
Danke!!! Werde ich nachher ausprobieren! Muss leider noch ein wenig Arbeiten! :-)

ABER Vielen Dank!!!

Gonzolo
Titel: Antw:Rechnen mit Readings
Beitrag von: Gonzolo am 12 Mai 2017, 12:37:58
das ? in [?Steuerung] bewirkt nun was??  :)

Titel: Antw:Rechnen mit Readings
Beitrag von: CoolTux am 12 Mai 2017, 12:45:55
Wenn Du noch Fragen hast einfach noch mal nachfragen.

https://fhem.de/commandref_DE.html#DOIF_Zeitintervalle_Readings_und_Status_ohne_Trigger
Titel: Antw:Rechnen mit Readings
Beitrag von: Gonzolo am 12 Mai 2017, 12:48:25
DANKE!!! ... Was ne Schwergeburt!!  ;)

ES SCHEINT ZU GEHEN!!!

Gruß

Gonzolo
Titel: Antw:Rechnen mit Readings
Beitrag von: CoolTux am 12 Mai 2017, 12:51:37
Sehr schön.
Kleine Prüfungsfrage. Warum haben wir eigentlich die (?) verwendet, was wollen wir damit bezwecken?
Titel: Antw:Rechnen mit Readings
Beitrag von: Gonzolo am 12 Mai 2017, 12:54:57
Das gilt nicht... das habe ich schon gefragt... ABER

... ich vermute stark, dass ich damit FHEM zwinge, den Parameter auszulesen?

Ich habe es nämlich nun so gebaut:


###### ------------------------Tag mit Boost
([Steuerung] eq "TempTag" and
   [TempWohnzimmer] < ([?Steuerung:TempTag]-2.0))
  (set Heizung_Wohnzimmer datapoint 1.SET_POINT_TEMPERATURE [Heizung_Wohnzimmer:TempTag])
  (set Heizung_Wohnzimmer datapoint 1.BOOST_MODE true)


###### ------------------------Tag ohne Boost
DOELSEIF
([Steuerung] eq "TempTag" and
   [TempWohnzimmer] >= ([?Steuerung:TempTag]-2.0))
  (set Heizung_Wohnzimmer datapoint 1.SET_POINT_TEMPERATURE [Heizung_Wohnzimmer:TempTag])




FHEM soll nur dann die Abfrage starten, wenn STEUERUNG auf "TempTag" umgeschaltet wird.

Denke mal ich habe die Prüfung bestanden, und gleich in der Praxis umgesetzt! :-)

Gruß

Gonzolo
Titel: Antw:Rechnen mit Readings
Beitrag von: Beta-User am 12 Mai 2017, 12:58:34
Zitat von: CoolTux am 12 Mai 2017, 12:45:55
Wenn Du noch Fragen hast einfach noch mal nachfragen.

https://fhem.de/commandref_DE.html#DOIF_Zeitintervalle_Readings_und_Status_ohne_Trigger (https://fhem.de/commandref_DE.html#DOIF_Zeitintervalle_Readings_und_Status_ohne_Trigger)
..er hat die Doku nicht gelesen...

*duck und weg*
Titel: Antw:Rechnen mit Readings
Beitrag von: CoolTux am 12 Mai 2017, 13:03:25
Oder nicht verstanden. Aber dann hätte er fragen sollen


Zitat von: Gonzolo am 12 Mai 2017, 12:54:57
Das gilt nicht... das habe ich schon gefragt... ABER

... ich vermute stark, dass ich damit FHEM zwinge, den Parameter auszulesen?

Ich habe es nämlich nun so gebaut:


###### ------------------------Tag mit Boost
([Steuerung] eq "TempTag" and
   [TempWohnzimmer] < ([?Steuerung:TempTag]-2.0))
  (set Heizung_Wohnzimmer datapoint 1.SET_POINT_TEMPERATURE [Heizung_Wohnzimmer:TempTag])
  (set Heizung_Wohnzimmer datapoint 1.BOOST_MODE true)


###### ------------------------Tag ohne Boost
DOELSEIF
([Steuerung] eq "TempTag" and
   [TempWohnzimmer] >= ([?Steuerung:TempTag]-2.0))
  (set Heizung_Wohnzimmer datapoint 1.SET_POINT_TEMPERATURE [Heizung_Wohnzimmer:TempTag])




FHEM soll nur dann die Abfrage starten, wenn STEUERUNG auf "TempTag" umgeschaltet wird.

Denke mal ich habe die Prüfung bestanden, und gleich in der Praxis umgesetzt! :-)

Gruß

Gonzolo


Naja fast. FHEM arbeitet Event basiert. Du kannst Dir alle Events welche Deine Devices auslösen im Eventmonitor anschauen.
Auf ein Event kann man triggern, das tun Notify oder DOIF und lösen dann aus. Das Fragezeichen vor dem Device im DOIF sorgt dafür das auf das Event nicht getriggert wird. Es macht wenig Sinn das Dein DOIF auslöst wenn Du den Dummy Tag Nacht änderst, auch macht es wenig Sinn wenn Dein DOIF auf verändern der Soll Temperaturen für Tag Nacht reagiert. Auslöser soll einzig und allein die gemessene IST Temperatur sein und nur die löst auch nur das DOIF aus. Also zu mindest was diesen DOELSEIF Zweig an geht.


Grüße
Titel: Antw:Rechnen mit Readings
Beitrag von: Beta-User am 12 Mai 2017, 13:07:41
Zitat von: CoolTux am 12 Mai 2017, 13:03:25
Oder nicht verstanden. Aber dann hätte er fragen sollen

...ich hoffe nur, dass er nunmehr die essenzielle Frage verstanden hat, was ein Trigger (bzw. Event) ist ::) .

Danke, dass Du Dir die Mühe machst, das so geduldig zu erklären ;) .

@Gonzolo: Nix für ungut, ich weiß nur zu gut, wie einfach es ist, den Wald vor lauter Bäumen nicht mehr zu sehen.
Titel: Antw:Rechnen mit Readings
Beitrag von: Wuppi68 am 12 Mai 2017, 13:32:52
Zitat von: CoolTux am 12 Mai 2017, 13:03:25
Naja fast. FHEM arbeitet Event basiert. Du kannst Dir alle Events welche Deine Devices auslösen im Eventmonitor anschauen.
Auf ein Event kann man triggern, das tun Notify oder DOIF und lösen dann aus. Das Fragezeichen vor dem Device im DOIF sorgt dafür das auf das Event nicht getriggert wird. Es macht wenig Sinn das Dein DOIF auslöst wenn Du den Dummy Tag Nacht änderst, auch macht es wenig Sinn wenn Dein DOIF auf verändern der Soll Temperaturen für Tag Nacht reagiert. Auslöser soll einzig und allein die gemessene IST Temperatur sein und nur die löst auch nur das DOIF aus. Also zu mindest was diesen DOELSEIF Zweig an geht.

Um den Begriff "Event" und Eventbasierte Steuerung noch ein wenig "anschaulicher" zu Beschreiben:

Event = Ereignis --> Der Kaffee ist fertig geworden (Zeitpunkt)
State = Zustand --> Der Kaffee ist fertig

Jedes Event wird von FHEM ausgewertet und dadurch Aktionen gestartet (intern von FHEM und vom Anwender definierte)

im obigen Beispiel wird der Event "Kaffee ist fertig geworden" getriggert und die FHEM interne Routine setzt den Status von Brühvorgang auf fertig.

Der Event ist dann vergessen und kann nicht mehr abgefragt werden! Übrig bleibt nur der neue Zustand als Ergebnis des getriggerten Events.

Konsequenz:
- Einen Status kann ich nur Abfragen (Pollen = zyklisch Abfragen)
- Einen Event bekomme ich mitgeteilt (notify als "Empfänger" Routine)
- Ein Statuswechsel muss einen (Informations) Event erzeugen, dass sich der Status geändert hat

Konsequenz innerhalb Deiner FHEM Automation:

Ein nacktes Basis FHEM kann nicht auf Zustände reagieren. DOIF ist ein Erweiterungsmodul, welches automatisch mit installiert ist und die "Brücke" zwischen Event und Zustandsbasierter Logik schlägt

@Leon und Beta-User: nehmt das nur als Zusatz und nicht als Kritik auf ;-) Ich habe das Gefühl die Saat könnte Früchte bringen
Titel: Antw:Rechnen mit Readings
Beitrag von: Gonzolo am 12 Mai 2017, 13:44:07
Zitat
Es macht wenig Sinn das Dein DOIF auslöst wenn Du den Dummy Tag Nacht änderst

Genau das will ich aber!

Der [Steuerung] wird morgens auf "TempTag" umgestellt und Abends auf "TempNacht" ... Daher soll FHEM genau dann auf das EVENT reagieren und fragen wie die Temperatur ist.

Ist die Temp < als 2C unter der Soll Temperatur, dann soll die Heizung BOOSTEN. Wenn nicht (also wenn die Temperatur nur ein bissen unter dem Soll Temperatur ist) soll er einfach "normal" heizen.

Also habe ich es richtig gemacht!

@Beate-Use: Events kenne ich!! ;-)
Titel: Antw:Rechnen mit Readings
Beitrag von: Beta-User am 12 Mai 2017, 14:03:50
@Gonzolo,

auch wenn Du Events kennst, hast Du die Doku nicht gelesen, weil sonst wüßtest Du, dass das "?" dafür steht, ob das Event nun triggern soll oder nicht.

Da Du triggern willst, muß also das "?" doch wieder raus.
Bloß ist damit noch nicht geklärt, wie der BOOST_MODE wieder ausgeschaltet werden soll. Also sollte in Deinen Code in den 2. Zweig noch ein BOOST_MODE false rein, oder machst Du das dann woanders?

gez.
Puh der Bär
Titel: Antw:Rechnen mit Readings
Beitrag von: Gonzolo am 12 Mai 2017, 14:09:30
Ich kenne Events... habe aber dazu nicht explizit die Doku gelesen (ertappt... zufrieden??  ;) )

ABER jetzt hast du nicht richtig gelesen...

Wenn er BOOSTEN soll, dann


###### ------------------------Tag mit Boost
([Steuerung] eq "TempTag" and
   [TempWohnzimmer] < ([?Steuerung:TempTag]-2.0))
  (set Heizung_Wohnzimmer datapoint 1.SET_POINT_TEMPERATURE [Heizung_Wohnzimmer:TempTag])
  (set Heizung_Wohnzimmer datapoint 1.BOOST_MODE true)


wenn er nicht BOOSTEN soll dann


###### ------------------------Tag ohne Boost
DOELSEIF
([Steuerung] eq "TempTag" and
   [TempWohnzimmer] >= ([?Steuerung:TempTag]-2.0))
  (set Heizung_Wohnzimmer datapoint 1.SET_POINT_TEMPERATURE [Heizung_Wohnzimmer:TempTag])


Dem aufmerksamen Leser fällt auf, ... einmal  (set Heizung_Wohnzimmer datapoint 1.BOOST_MODE true) und einmal ohne...

Habe Homematic Heizungsthermostate. Mit  (set Heizung_Wohnzimmer datapoint 1.BOOST_MODE true) bringt man diese ein paar Minuten zum BOOSTEN ;-)
Titel: Antw:Rechnen mit Readings
Beitrag von: Beta-User am 12 Mai 2017, 14:16:10
Jetzt bin ich zufrieden ;) , wenn man von dem Punkt absieht, ich hätte nicht richtig gelesen. Oder stand irgendwo, dass der Boost-Mode automatisch ausgeht (ok, das kann man vermuten, da HM, aber sicher ist das nicht (und viel bringen dürfte die Vorgehensweise auch nicht, weil die HM-Thermostate sowieso wissen, wie weit sie aufgehen sollen, damit es halbwegs zügig warm wird ::) . Das ist aber wieder ein ganz anderes Thema)).

Titel: Antw:Rechnen mit Readings
Beitrag von: CoolTux am 12 Mai 2017, 14:25:25
Zitat von: Wuppi68 am 12 Mai 2017, 13:32:52
Um den Begriff "Event" und Eventbasierte Steuerung noch ein wenig "anschaulicher" zu Beschreiben:

Event = Ereignis --> Der Kaffee ist fertig geworden (Zeitpunkt)
State = Zustand --> Der Kaffee ist fertig

Jedes Event wird von FHEM ausgewertet und dadurch Aktionen gestartet (intern von FHEM und vom Anwender definierte)

im obigen Beispiel wird der Event "Kaffee ist fertig geworden" getriggert und die FHEM interne Routine setzt den Status von Brühvorgang auf fertig.

Der Event ist dann vergessen und kann nicht mehr abgefragt werden! Übrig bleibt nur der neue Zustand als Ergebnis des getriggerten Events.

Konsequenz:
- Einen Status kann ich nur Abfragen (Pollen = zyklisch Abfragen)
- Einen Event bekomme ich mitgeteilt (notify als "Empfänger" Routine)
- Ein Statuswechsel muss einen (Informations) Event erzeugen, dass sich der Status geändert hat

Und was für ein aktuelles Beispiel. Wo doch das Kaffeemaschinen Modul gerade interessant diskutiert wird   ;D
Titel: Antw:Rechnen mit Readings
Beitrag von: Thorsten Pferdekaemper am 12 Mai 2017, 14:25:45
Man könnte jetzt noch damit anfangen, dass in zeitgemäß gedämmten Häusern die Nachtabsenkung im besten Fall kosten- und CO2-neutral ist gegenüber "immer 22°". Es kann auch vorkommen, dass es teurer wird, da das Aufheizen mehr Energie verbrät als das Absenken.
Gruß,
   Thorsten
Titel: Antw:Rechnen mit Readings
Beitrag von: CoolTux am 12 Mai 2017, 14:32:02
Zitat von: Thorsten Pferdekaemper am 12 Mai 2017, 14:25:45
Man könnte jetzt noch damit anfangen, dass in zeitgemäß gedämmten Häusern die Nachtabsenkung im besten Fall kosten- und CO2-neutral ist gegenüber "immer 22°". Es kann auch vorkommen, dass es teurer wird, da das Aufheizen mehr Energie verbrät als das Absenken.
Gruß,
   Thorsten

Aber das Thema hatten wir ja nun schon des öfteren diskutiert. Am Ende muß jeder, auf Basis der gesammelten Daten und Fakten, selber wissen wie er seine Steuerung machen will.
Titel: Antw:Rechnen mit Readings
Beitrag von: Gonzolo am 12 Mai 2017, 14:34:07
@Thorsten...
Zitat
in zeitgemäß gedämmten Häusern die Nachtabsenkung im besten Fall kosten- und CO2-neutral ist gegenüber "immer 22°". Es kann auch vorkommen, dass es teurer wird, da das Aufheizen mehr Energie verbrät als das Absenken.


GENAU deswegen mach ich ja den Mist!!! Wohne mit nur Rentner im Haus. Da herrscht die Meinung, dass wir nicht dämmen müssen, weil die Alten Leute garnicht mehr soviel Heizkosten sparen können in ihrem restlichen Leben, dass sich das lohnt! :-)

@Beta-User
Zitatweil die HM-Thermostate sowieso wissen, wie weit sie aufgehen sollen, damit es halbwegs zügig warm wird

Leider haben die HM-Thermostate genau da ihre Schwäche! Wenn ich 21C einstelle "ballern" die noch auch wenn es schon 23C in der Bude ist


@CoolTox
Kaffee ist ungesund! Grüner Tee ist da viel besser! :-)

DANKE IHR BUBEN!!! JETZT habe ich Euch alle wieder lieb!!! ;-)
Titel: Antw:Rechnen mit Readings
Beitrag von: Wuppi68 am 12 Mai 2017, 14:36:13
Zitat von: CoolTux am 12 Mai 2017, 14:25:25
Und was für ein aktuelles Beispiel. Wo doch das Kaffeemaschinen Modul gerade interessant diskutiert wird   ;D

wo Du ja auch im Thema bist :-)

Ich fand es halt einfacher plastischer als so abstrakte Begriffe wie Event, Trigger, Zustand so im Raum stehen zu lassen und dabei zu denken, dass der Empfänger der Botschaft dieses auch so wie ich versteht
Titel: Antw:Rechnen mit Readings
Beitrag von: Beta-User am 12 Mai 2017, 14:36:40
Zitat von: Gonzolo am 12 Mai 2017, 14:34:07
Leider haben die HM-Thermostate genau da ihre Schwäche! Wenn ich 21C einstelle "ballern" die noch auch wenn es schon 23C in der Bude ist
Das ist ein bekanntes Verhalten, aber läßt sich das mit dem BOOST-Mode überlisten ??? ?!?
Titel: Antw:Rechnen mit Readings
Beitrag von: Gonzolo am 12 Mai 2017, 14:40:41
Mit BOOST nicht... da bin ich einfach ungeduldig und der soll WARM machen. Und das geht tatsächlich.
Titel: Antw:Rechnen mit Readings
Beitrag von: Wuppi68 am 12 Mai 2017, 14:41:52
Zitat von: Gonzolo am 12 Mai 2017, 14:34:07
@Thorsten...

GENAU deswegen mach ich ja den Mist!!! Wohne mit nur Rentner im Haus. Da herrscht die Meinung, dass wir nicht dämmen müssen, weil die Alten Leute garnicht mehr soviel Heizkosten sparen können in ihrem restlichen Leben, dass sich das lohnt! :-)

@Beta-User
Leider haben die HM-Thermostate genau da ihre Schwäche! Wenn ich 21C einstelle "ballern" die noch auch wenn es schon 23C in der Bude ist


@CoolTox
Kaffee ist ungesund! Grüner Tee ist da viel besser! :-)

DANKE IHR BUBEN!!! JETZT habe ich Euch alle wieder lieb!!! ;-)

Coole Argumentation mit der Sanierung - nicht Diskussionsfördernd aber stimmig

Wenn der Vorlauf zu den HM Thermostaten  in Grenzen konstant bleibt lernen diese auch relativ schnell wie der Raum entsprechend reagiert und überheizen dann nicht mehr

und grüner Tee ist auch nur nicht fermentierter schwarzer Tee :-)
Titel: Antw:Rechnen mit Readings
Beitrag von: Gonzolo am 12 Mai 2017, 14:50:07
Danke Wuppi für Deinen Einwand!!  ;D
Titel: Antw:Rechnen mit Readings
Beitrag von: KernSani am 12 Mai 2017, 14:50:28
Einen noch:
Zitat von: Gonzolo am 12 Mai 2017, 13:44:07


@Beate-Use:
Wo waren da deine Gedanken? :-D
Titel: Antw:Rechnen mit Readings
Beitrag von: Beta-User am 12 Mai 2017, 15:01:04
Zitat von: Wuppi68 am 12 Mai 2017, 14:41:52
Coole Argumentation mit der Sanierung - nicht Diskussionsfördernd aber stimmig
Wenn man dann noch die Nebenwirkungen mancher Dämm-Maßnahmen kennt, wird sogar ein richtiger Schuh draus...
Zitat
Wenn der Vorlauf zu den HM Thermostaten  in Grenzen konstant bleibt lernen diese auch relativ schnell wie der Raum entsprechend reagiert und überheizen dann nicht mehr
...besonders iVm. einem Wandthermostat.

Btw. und wieder off-topic: warum schiebst Du nicht einfach passende Wochenprogramme auf die Thermostate? Ggf. kannst Du dann auch ganz einfach und komfortabel einzustellen eine Vorheizphase vorsehen... https://wiki.fhem.de/wiki/HomeMatic_Type_Thermostat#Templates
Sofern sich was ändert, kannst Du die dann jeweils wieder aktualisieren (für Schichtpläne, Ferien/Urlaubszeiten usw.). Reduziert den Funkverkehr und ist (nach Lektüre der Doku ;) ) einfach...

Ich fasse die Dinger jedenfalls nur noch dann an, wenn Ferien/Urlaub angesagt ist (mit einem notify, für DOIF bin ich nicht gemacht).
Titel: Antw:Rechnen mit Readings
Beitrag von: Thorsten Pferdekaemper am 12 Mai 2017, 15:02:19
Zitat von: Gonzolo am 12 Mai 2017, 14:34:07
GENAU deswegen mach ich ja den Mist!!! Wohne mit nur Rentner im Haus.
Ok, dann stimmt das mit dem "zeitgemäß gedämmten Haus" halt nicht.

Zitat
Leider haben die HM-Thermostate genau da ihre Schwäche! Wenn ich 21C einstelle "ballern" die noch auch wenn es schon 23C in der Bude ist
Bei mir machen die das nicht.
Schau vielleicht mal hier: https://wiki.fhem.de/wiki/HM-CC-RT-DN_Funk-Heizk%C3%B6rperthermostat#Der_Thermostat_heizt_.C3.BCber_die_Solltemperatur_hinaus

Zitat von: KernSani am 12 Mai 2017, 14:50:28
Einen noch:Wo waren da deine Gedanken? :-D
Die Frage ist, wo sind Deine? ...kann es sein, dass Dein Kopf da ein "h" sieht wo keins ist. Die Kunstflug-Pilotin schreibt man nämlich mit "h".

Gruß,
   Thorsten
Titel: Antw:Rechnen mit Readings
Beitrag von: CoolTux am 12 Mai 2017, 15:19:00
Zitat von: Thorsten Pferdekaemper am 12 Mai 2017, 15:02:19
Die Kunstflug-Pilotin schreibt man nämlich mit "h".

Der gefällt mir  ;D
Titel: Antw:Rechnen mit Readings
Beitrag von: KernSani am 12 Mai 2017, 15:57:58
Zitat von: Thorsten Pferdekaemper am 12 Mai 2017, 15:02:19
Die Frage ist, wo sind Deine? ...kann es sein, dass Dein Kopf da ein "h" sieht wo keins ist. Die Kunstflug-Pilotin schreibt man nämlich mit "h".

Kenne mich im Kunstflug nicht so gut aus ;-)
Titel: Antw:Rechnen mit Readings
Beitrag von: Beta-User am 12 Mai 2017, 16:03:33
Zitat von: KernSani am 12 Mai 2017, 15:57:58
Kenne mich im Kunstflug nicht so gut aus ;-)
Aber Du hast Doch hoffentlich die verfügbare Doku zu dem Thema zur Kenntnis genommen, oder etwa nicht :o ?
Titel: Antw:Rechnen mit Readings
Beitrag von: KernSani am 12 Mai 2017, 16:28:47
Zitat von: Beta-User am 12 Mai 2017, 16:03:33
Aber Du hast Doch hoffentlich die verfügbare Doku zu dem Thema zur Kenntnis genommen, oder etwa nicht :o ?
Als Moderator muss ich die Gemeinde jetzt aber mal bitten wieder zur Sache zu kommen, bevor das hier ausartet  :P  (Und natürlich kenne ich Wiki und Commandref zu 69_KUNSTFLUG.pm)
Titel: Antw:Rechnen mit Readings
Beitrag von: Beta-User am 12 Mai 2017, 16:57:16
off-topic an den Moderator:

Finde klasse, dass Du (und a.) den Job übernommen habt!

Vermutlich unbeabsichtigt wiederbelebt hat den Punkt jemand um 14:50:28 Uhr, vielleicht solltest Du den mal per PM zur Ordnung rufen ;) .

Gruß, Beta-User