nur in einem bestimmten Zeitraum schalten lassen

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

Vorheriges Thema - Nächstes Thema

Puschel74

Hatte ich nicht oben geschrieben das meine Beispiele NICHT für die fhem.cfg sind  ???
Zitat von: Puschel74 am 27 Dezember 2015, 10:52:32
Meine Code Beispiele sind nur für das DEF gedacht.
Ach ne, sorry - ich hab nur geschrieben das meine Beispiele für das DEF gedacht sind.
War wohl mein Fehler.

Also nochmal:
Meine Beispiele in die fhem.cfg geprügelt werden Fehlermeldungen verursachen da ich die fhem.cfg NICHT direkt bearbeite.
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


CoolTux

Wie groß ist Dein Wissensstand im Umgang mit FHEMweb? Kannst Du über die Eingabezeile ein Device anlegen?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Puschel74

Entweder die erweiterte Suche bemühen und nach
fhem.cfg bearbeiten suchen mit Benutzer puschel74 und meine Beiträge durchlesen oder
einfach in der Detailansicht des at auf DEF klicken und meinen Code einfügen - danach auf modify klicken und zum Schluss auf save config
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

Funktioniert "out off the box" bei Benutzung des DEF-Editors.

define Heizung_Ameisen 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)


Hier noch einige Hinweise zur Nutzung des DEF-Editors mit der codemirror-Erweiterung: Tips leichtere Bedienung Syntaxhervorhebung Klammerprüfung Suchen&Ersetzen

simonela80

also wenn ich das eingebe in DEF kommt bei mir dann folgender Fehler

wrong syntax: define <name> CUL_HM 6-digit-hex-code [Raw-Message]



??????

Puschel74

#21
Zitat von: Ellert am 27 Dezember 2015, 13:07:55
Funktioniert "out off the box" bei Benutzung des DEF-Editors.
Eben nicht da im DEF kein define <Name> DOIF mehr benötigt wird.

Edith: @simonela80
Gib in die FHEM-Befehlszeile ein
delete Heizung_Ameisen
ein.
Danach ein
define Heizung_Ameisen at +*00:00:20 {
Dort klickst du dann auf das DEF und dann kopierts du noch
  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");
  }
}

das es so aussieht wie in der zweiten Antwort - meinem ersten Beitrag.
Klick auf modify und der Code wird übernommen.
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

super vielen Dank, es scheint zu funktionieren

wieder was gelernt


und was würde jetzt passieren wenn die Heizung eine Sekunde vor 20:00 Uhr einschaltet???
würde sie dann die ganze Nacht Heizen???
Das wäre sehr schlecht für die Ameisen

Puschel74

Der Aktor wird ausgeschaltet da der letzte else-Fall greift.
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

super

möchte mich bedanken für deine Hlf und deine Geduld mit mir

dev0

Zitat von: simonela80 am 27 Dezember 2015, 13:34:58
super vielen Dank, es scheint zu funktionieren

Ich hatte Dir bewusst keine fertige Lösung geliefert, sondern nur einen Hinweis gegeben, damit Du versuchst den Code zu verstehen, da DU für Deine Tiere verantwortlich bist. Der Code ist soweit ok, auch wenn 1s vorher... Aber bedenke, dass Dein FHEM auch mal die Grätsche machen kann... Das sollte nicht die Endgültige Lösung sein, auch wenn es nur um Kleinsttierleben geht. Zusätzlich mit einem on-for-timer auf Hardwareseite zum Beispiel. Hatte Puschel74 ja schon geschieben. Auf (d)eine FHEM Installation alleine würde ich mich nicht verlassen.

Ellert


Puschel74

Zitat von: dev0 am 27 Dezember 2015, 13:43:50
Ich hatte Dir bewusst keine fertige Lösung geliefert, sondern nur einen Hinweis gegeben, damit Du versuchst den Code zu verstehen, da DU für Deine Tiere verantwortlich bist.
Jep, hab ich mir auch einen Moment überlegt aber ich wollte die Tiere nicht unnötig rösten und tieffrieren lassen  ;D

Zitat von: dev0 am 27 Dezember 2015, 13:43:50
Aber bedenke, dass Dein FHEM auch mal die Grätsche machen kann... Das sollte nicht die Endgültige Lösung sein, auch wenn es nur um Kleinsttierleben geht. Zusätzlich mit einem on-for-timer auf Hardwareseite zum Beispiel. Hatte Puschel74 ja schon geschieben. Auf (d)eine FHEM Installation alleine würde ich mich nicht verlassen.
Daher auch mein Hinweis in meinem ersten Beitrag:
ZitatDa 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 noch weiter minimieren zu können.

Auch bin ich am zweifeln ob ein at alle 20 Sekunden wirklich Sinn macht und ob nicht ein notify (oder auch gerne eine DOIF  ;) ) auf die Temperatur sinnvoller wäre.
Im Temperatur-Device noch ein event-on-change-reading auf die Temperatur gesetzt und die Einschränkungen bzgl. Uhrzeit lassen sich ja auch in einem notify (oder DOIF) berücksichtigen.
Aber wie schon geschrieben fehlen einfach Angaben des TE um auf dieser Seite weiter helfen zu können.

@Ellert
Der TE hat ja noch nichtmal meinen angepinnten Beitrag gelesen  :P
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

erstmal danke für die Hilfe,

nun wollte ich mir eine Push Nachricht senden lassen wenn die Heizung länger als 8 Minuten eingeschaltet ist, aber leider funktioniert das nicht.
Hoffe ihr könnt mir auch bei diesem Problem helfen

Hier mal der Code den ich geschrieben habe:

define Ameisen GPIO4 28-00044eeeecff
attr Ameisen group Temperatur Ameisen
attr Ameisen icon icoKLIMA
attr Ameisen model DS18B20
attr Ameisen room Ameisen

#Watchdog definieren
define watchdogHeizungsMelder watchdog Ameise_Heizung:on 00:08:00 SAME set Ameise_Heizung off;;set Temperatur_Alarm on-for-timer 10;; setstate watchdogHeizungsMelder defined
attr watchdogHeizungsMelder group Temperatur Ameisen
attr watchdogHeizungsMelder icon dog_silhouette
attr watchdogHeizungsMelder room Ameisen

define Temperatur_Alarm dummy
attr Temperatur_Alarm group Temperatur Ameisen
attr Temperatur_Alarm icon Wecker.Immer
attr Temperatur_Alarm room Ameisen
attr Temperatur_Alarm webCmd on:off

# Temperatur Alarm Nachricht
define TemperaturAlarmPushover notify Temperatur_Alarm:on-for-timer 10 { system ("curl -s -F 'token=XXXXXXXXXXXXXXX' -F 'user=XXXXXXXXXXXXX' -F 'message=Ameisen\nHeizung ist nicht  ausgeschaltet' https://api.pushover.net/1/messages.json")}


bin mal gespannt was hier falsch ist??

Der Dummy funktioniert mit on-for-timer, dafür habe ich Netz diesen Code gefunden

#########################
# on-for-timer 4 dummys #
#########################
define OnForTimer_n notify .*:on-for-timer.* {\
my $NAME_off = "x";;\
my @args= split(" ", "$EVENT");; \
if($defs{$NAME_off}) { \
my $mod_cmd= sprintf ( \
"modify $NAME_off +%02d:%02d:%02d", \
$args[1] / 3600, ($args[1] / 60) % 60, $args[1] %60);; \
fhem $mod_cmd;; \
} else { my $room = AttrVal("$NAME", "room", "Unsorted");; \
my $def_cmd= sprintf ( \
"define $NAME_off at +%02d:%02d:%02d set $NAME off", \
$args[1] / 3600, ($args[1] / 60) % 60, $args[1] %60);; \
fhem $def_cmd;; \
fhem "attr $NAME_off room $room" \
} \
}

##########################
# off-for-timer 4 dummys #
##########################
define OffForTimer_n notify .*:off-for-timer.* { \
my $NAME_on = "x";;\
my @args= split(" ", "%EVENT");; \
if($defs{$NAME_on}) { \
my $mod_cmd= sprintf ( \
"modify $NAME_on +%02d:%02d:%02d", \
$args[1] / 3600, ($args[1] / 60) % 60, $args[1] %60);; \
fhem $mod_cmd;; \
} else { my $room = AttrVal("$NAME", "room", "Unsorted");; \
my $def_cmd= sprintf ( \
"define $NAME_on at +%02d:%02d:%02d set $NAME on", \
$args[1] / 3600, ($args[1] / 60) % 60, $args[1] %60);; \
fhem $def_cmd;; \
fhem "attr $NAME_on room $room" \
} \
}


Gruß
Peter


simonela80