nur in einem bestimmten Zeitraum schalten lassen

Begonnen von simonela80, 27 Dezember 2015, 08:45:44

Vorheriges Thema - Nächstes Thema

simonela80

Hallo an alle,

brauche mal wieder eure Hilfe, komme da einfach nicht weiter.

Ich habe ein Terrarium mit Heizung, dazu dann noch ein Temperaturfühler.
Die Heizung soll einschalten wenn eine gewisse Temperatur unterschritten ist, das funktioniert schon mal recht gut.
In der Nacht soll die Heizung aber immer aus bleiben, das funktioniert leider noch nicht.

Hier mal mein Code:

define Heizung_Ameisen at +*00:00:20 \
{if( $hour>5 && $hour<20) &&\
{if (ReadingsVal("Temp_Ameisen","temperature",99)<26) \
{fhem("set Ameise_Heizung on")} else {fhem("set Ameise_Heizung off")}}}


Hoffe mal ihr könnt mir helfen

lg
Peter

dev0

#1
Wenn Du den Code etwas strukturierter schreibst, dann kannst Du besser erkennen was passiert. Ich habe nur das überflüssige && entfernt:
+*00:00:20 {
if ($hour > 5 && $hour <20)
{
if (ReadingsVal("Temp_Ameisen","temperature",99) < 26)
{
fhem("set Ameise_Heizung on")
}
else
{
fhem("set Ameise_Heizung off")
}
}
}


Was Du noch berücksichtigen musst: Was passiert, wenn um 19:59:59 die Heizung an ist? Dann würde mit diesem Code die ganze Nacht geheizt bis die Ameisen am Morgen gar sind.
Zum posten von Code bitte die "Code Tags" verwenden (# Button). Danke.

Edit: Code für Copy&Paste DEF Edit angepasst.

Puschel74

#2
Noch eine Möglichkeit:
+*00:00:20 {
  if ($hour > 5 && $hour < 20) {
    if (ReadingsVal("Temp_Ameisen","temperature",99) < 26) {
      fhem("set Ameise_Heizung on") if(Value("Ameise_Heizung") ne "on");
}
else {
  fhem("set Ameise_Heizung off") if(Value("Ameise_Heizung") ne "off");
}
  }
  else {
    fhem("set Ameise_Heizung off") if(Value("Ameise_Heizung") ne "off");
  }
}

- if-Prüfung ob on / off bereits geschalten wurde eingefügt
- ausschalten ab 20 Uhr eingefügt

Da ich nicht weiß wie schnell die Temperatur steigt oder sinkt - ein Plot wäre nicht uninteressant -
und auch nicht weiß ob Ameise_Heizung ein on-for-timer kennt wären noch ein paar Angaben nötig um diese Gefahr
Zitatbis die Ameisen am Morgen gar sind
noch weiter minimieren zu können.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Ellert

#3
Mit einem einsteigerfreundlichen, wie auch expertentauglichen ;) DOIF könnte man es so
DOIF ([?05:00:00-20:00:00] and [Temp_Ameisen:temperature] < 26) (set Ameise_Heizung on)
DOELSEIF ([?05:00-20:00] and [Temp_Ameisen:temperature] > 30) (set Ameise_Heizung off)
DOELSEIF ([20:00:01-04:59:59]) (set Ameise_Heizung off)

lösen.
Zwischen 5 und 20 Uhr schaltet die Heizung ein, wenn die Temperaur < 26 °C liegt.
Zwischen 5 und 20 Uhr schaltet die Heizung aus, wenn die Temperaur > 30 °C liegt.
Zwischen 20 und 5 Uhr schaltet die Heizung aus.

Voraussetzung, der Temperatursensor übermittelt regelmässig seine Temperatur.

simonela80

Danke mal an alle,

leider schaltet jetzt die Heizung nicht mehr ein, der Code von Puschel74 würde mir am besten gefallen, nur leider gibt mir fhem hier viele Fehler zurück und ich weiß nicht warum???

langsam bin ich am verzweifeln

dev0

Wissen wir ohne Details auch nicht.
Vermutung: Du editierst die fhem.cfg direkt ohne zu wissen wie...

satprofi

gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

simonela80


Puschel74

Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

dev0


simonela80

jetzt schaltet die Heizung nicht mehr aus
leider kann ich auch nicht den Code einfügen mit dem Button #, warum weiß ich nicht?????

define Heizung_Ameisen at +*00:00:20 \
{if ($hour > 5 && $hour < 20) \
{if (ReadingsVal("Temp_Ameisen","temperature",99) < 25) \
{fhem("set Ameise_Heizung on") if(Value("Ameise_Heizung") ne "on")} else {fhem("set Ameise_Heizung off") if(Value("Ameise_Heizung") ne "off")} else {fhem("set Ameise_Heizung off") if(Value("Ameise_Heizung") ne "off")}}

hoffe ihr habt noch eine Idee

Puschel74

Zitathoffe ihr habt noch eine Idee
Ja - die Lösung steht im Logfile.

a) lies dir bitte meinen angepinnten Beitrag hier im Anfängerbereich durch.
Ein "geht nicht" ist eindeitug zuwenig
b) wenn du meine Codebeispiele einfach nach Gutdünken abänderst darfst du dich auch gerne selbst darum kümmern das dein Code funktioniert.
Denn dein gesposteter Code ist NICHT gleich wie der von mir gepostete - und das hat jetzt nichts mit der Formatierung zu tun.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

simonela80

ja, aber wenn ich deinen Code verwende kommt immer eine Fehlermeldung

Unknown command if, try help. Unknown command if, try help. Unknown command fhem("set, try help. Unknown command }, try help. Unknown command else, try help. Unknown command fhem("set, try help. Unknown command }, try help. Unknown command }, try help. Unknown command else, try help. Unknown command fhem("set, try help. Unknown command }, try help. Unknown command }, try help.


und nun

Puschel74

Die Fehlermeldung ist schonmal schön - in Tags wäre sie leserlicher.
Zeig mal den Code so wie er jetzt bei dir im DEF steht und diese Meldung verursacht.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

simonela80

so steht der Code im fhem.cfg

define Heizung_Ameisen at +*00:00:20 {
  if ($hour > 5 && $hour < 20) {
    if (ReadingsVal("Temp_Ameisen","temperature",99) < 26) {
      fhem("set Ameise_Heizung on") if(Value("Ameise_Heizung") ne "on");
}
else {
  fhem("set Ameise_Heizung off") if(Value("Ameise_Heizung") ne "off");
}
  }
  else {
    fhem("set Ameise_Heizung off") if(Value("Ameise_Heizung") ne "off");
  }
}