Hi allseits,
entschuldigt wenn ich etwas frage, was ich sicher auch irgendwann irgendwo in der Doku oder im Forum gefunden hätte, nach 30 Minuten Suche fand ich nichts was mir hilft, vielleicht spart mir jemand etwas Zeit, und postet einen Link der mir weiter hilft.
Ich möchte einen Verbraucher "takten", d.h. er soll folgendermaßen geschaltet werden:
Jeden Tag von 7 Uhr bis 20 Uhr, alle 15 Minuten, "Ein" - Signal an einen Funkschalter, 30 Sekunden warten, dann "Aus".
Der Funkschalter ist angelegt und funktioniert (manuell). Wie komme ich nun weiter um das o.g. "Programm" in FHEM zu machen?
Thx, Armin.
Zitat von: Nimral am 17 Januar 2019, 10:41:34
Hi allseits,
entschuldigt wenn ich etwas frage, was ich sicher auch irgendwann irgendwo in der Doku oder im Forum gefunden hätte, nach 30 Minuten Suche fand ich nichts was mir hilft, vielleicht spart mir jemand etwas Zeit, und postet einen Link der mir weiter hilft.
Ich möchte einen Verbraucher "takten", d.h. er soll folgendermaßen geschaltet werden:
Jeden Tag von 7 Uhr bis 20 Uhr, alle 15 Minuten, "Ein" - Signal an einen Funkschalter, 30 Sekunden warten, dann "Aus".
Der Funkschalter ist angelegt und funktioniert (manuell). Wie komme ich nun weiter um das o.g. "Programm" in FHEM zu machen?
Thx, Armin.
Hier ein paar Stichworte:
DOIF, [+:15], [07:00-20:00] (https://forum.fhem.de/index.php?topic=35638.0), wait / on-for-timer, do
https://wiki.fhem.de/wiki/Zeitschaltuhr (https://wiki.fhem.de/wiki/Zeitschaltuhr)
Und hier: DOIF Intervall-Timer (https://fhem.de/commandref_DE.html#DOIF_Intervall-Timer)
Wow! Das ging superschnell, vielen Dank. Die Seite über die "Zeitschaltuhr" ist perfekt genau das was ich suche, ich arbeite mich gleich rein und durch die verschiedenen Möglichkeiten.
Herzlichen Dank!
Armin.
Zitat von: Nimral am 17 Januar 2019, 11:08:03
Wow! Das ging superschnell, vielen Dank. Die Seite über die "Zeitschaltuhr" ist perfekt genau das was ich suche, ich arbeite mich gleich rein und durch die verschiedenen Möglichkeiten.
Herzlichen Dank!
Armin.
MSwitch wäre auch eine Möglichkeit .
hier bräuchtest du nur noch die eigentlichen schaltbefehle eintragen , der rest ist selbserklärend.
gruss Byte09
defmod Takt MSwitch
attr Takt MSwitch_Comments 1
attr Takt MSwitch_Debug 0
attr Takt MSwitch_Delete_Delays 1
attr Takt MSwitch_Expert 0
attr Takt MSwitch_Extensions 0
attr Takt MSwitch_Help 1
attr Takt MSwitch_Ignore_Types notify allowed at watchdog doif fhem2fhem telnet FileLog readingsGroup FHEMWEB autocreate eventtypes readingsproxy svg cul
attr Takt MSwitch_Include_Devicecmds 1
attr Takt MSwitch_Include_MSwitchcmds 0
attr Takt MSwitch_Include_Webcmds 0
attr Takt MSwitch_Inforoom MSwitch
attr Takt MSwitch_Lock_Quickedit 1
attr Takt MSwitch_Mode Notify
attr Takt room 1_test
setstate Takt active
setstate Takt 2019-01-17 12:00:22 .Device_Affected FreeCmd-AbsCmd1,FreeCmd-AbsCmd2
setstate Takt 2019-01-17 12:04:24 .Device_Affected_Details FreeCmd-AbsCmd1#[NF]cmd#[NF]cmd#[NF]#[NF]#[NF]delay1#[NF]delay1#[NF]00#[dp]00#[dp]00#[NF]00#[dp]00#[dp]00#[NF]#[NF]#[NF]0#[NF]0#[NF]1#[NF]0#[NF]kommentar#[sp]-#[sp]auszuf#[sp]in#[sp]cmd1#[sp]befehl#[sp]alle#[sp]15#[sp]min#[sp](#[sp]set#[sp]DEVICE#[sp]on)#[NF]0#[NF]0#[NF]1#[ND]FreeCmd-AbsCmd2#[NF]cmd#[NF]cmd#[NF]#[NF]#[NF]delay1#[NF]delay1#[NF]00#[dp]07#[dp]00#[NF]00#[dp]00#[dp]00#[NF]#[NF]#[NF]0#[NF]0#[NF]1#[NF]0#[NF]kommentar#[sp]-#[sp]auszuf#[sp]in#[sp]cmd1#[sp]befehl#[sp]alle#[sp]15#[sp]+#[sp]7min#[sp](#[sp]set#[sp]DEVICE#[sp]off)#[NF]0#[NF]0#[NF]1
setstate Takt 2019-01-17 12:00:14 .Device_Events no_trigger
setstate Takt 2019-01-17 11:59:43 .First_init done
setstate Takt 2019-01-17 11:59:43 .Trigger_cmd_off no_trigger
setstate Takt 2019-01-17 11:59:43 .Trigger_cmd_on no_trigger
setstate Takt 2019-01-17 12:00:14 .Trigger_condition
setstate Takt 2019-01-17 11:59:43 .Trigger_off no_trigger
setstate Takt 2019-01-17 11:59:43 .Trigger_on no_trigger
setstate Takt 2019-01-17 12:00:14 .Trigger_time on~off~ononly[00#[dp]15*07#[dp]00-20#[dp]00]~offonly~onoffonly
setstate Takt 2019-01-17 11:59:43 .V_Check V2.00
setstate Takt 2019-01-17 12:00:00 EVENT Takt:execute_timer_P3:12:00
setstate Takt 2019-01-17 12:00:00 EVTFULL Takt:execute_timer_P3:12:00
setstate Takt 2019-01-17 12:00:00 EVTPART1 Takt
setstate Takt 2019-01-17 12:00:00 EVTPART2 execute_timer_P3
setstate Takt 2019-01-17 12:00:00 EVTPART3 12:00
setstate Takt 2019-01-17 12:01:46 Trigger_device no_trigger
setstate Takt 2019-01-17 11:59:43 Trigger_log off
setstate Takt 2019-01-17 12:04:24 state active
edit: startet sofort ( siiehe folgebeitrag )
Jede Lösung bringt gleich ein neues Problem - typisch Einsteiger.
Die Defintion habe ich geschafft:
define PumpeStart at *08:00:00 {
{ fhem("define PumpeEin at +*{48}00:15:00 set Sender_FS20_01 on-for-timer 5") }
}
Passt. Aber nun das Folgeproblem:
das at wird auf morgen früh, 8:00 definiert. Ich möchte natürlich, dass der Zeitschalter jetzt sofort mit seiner Arbeit beginnt.
Der naive Versuch war, beim at ein Datum mitzugeben, aber das akzeptiert FHEM nicht.
Der nächste naive Versuch war, das TRIGGERTIME oder TRIGGERTIME_FMT Attribut auf heute früh, 08:00:00 zu setzen, das geht so leider auch nicht.
Wie bekomme ich meine Zeitschaltuhr jetzt sofort in Gang?
Armin.
Wie wäre es mit "set PumpeStart execNow"?
Bitte solche Sachen erst mal selbst in der Detailansicht des Geräts (hier: at) suchen, vieles ist eigentlich selbsterklärend (jedenfalls, wenn man keine Attributorgien für die Einstellungen benötigt).
Auch ein Blick in die commandref schadet im allgemeinen nicht (zu den meisten Modulen ist das eher übersichtlich).
Zitat von: Byte09 am 17 Januar 2019, 12:04:01
MSwitch wäre auch eine Möglichkeit .
hier bräuchtest du nur noch die eigentlichen schaltbefehle eintragen , der rest ist selbserklärend.
...
gruss Byte09
Danke für Deinen Vorschlag.
Ich habs auf Anhieb nicht genau geschafft, die Sequenz zu verstehen.
Angesichts dessen, dass das ein ziemlicher Haufen Kommandos sind, und es den at Befehl gibt der das offenbar ganz gut kann - warum wollte ich es auf diese Weise machen? Ist da irgendeine tiefere Magie dahinter, in die es sich einzuarbeiten lohnt, weil mir das anderswo mal nützen wird, oder ist das einfach nur eine theoretisch denkbare Alternative, die man zur Kenntnis nimmt aber nicht wirklich braucht?
Amrin
Thx, Armin.
Zitat von: Byte09 am 17 Januar 2019, 12:04:01
MSwitch wäre auch eine Möglichkeit .
Trag das doch mal (mit Erklärung) ins Wiki auf die Zeitschaltuhr-Seite (https://wiki.fhem.de/wiki/Zeitschaltuhr) ein. Ist eigentlich tatsächlich eine häufige Frage und TIMTOWDI (https://en.wikipedia.org/wiki/There%27s_more_than_one_way_to_do_it).
Zitat von: Nimral am 17 Januar 2019, 12:13:21
Danke für Deinen Vorschlag.
Ich habs auf Anhieb nicht genau geschafft, die Sequenz zu verstehen.
Angesichts dessen, dass das ein ziemlicher Haufen Kommandos sind, und es den at Befehl gibt der das offenbar ganz gut kann - warum wollte ich es auf diese Weise machen? Ist da irgendeine tiefere Magie dahinter, in die es sich einzuarbeiten lohnt, weil mir das anderswo mal nützen wird, oder ist das einfach nur eine theoretisch denkbare Alternative, die man zur Kenntnis nimmt aber nicht wirklich braucht?
Amrin
Thx, Armin.
war nur eine weiter alternative. ansonste ist MSwitch eine one-for-all Lösung, die über webinterface konfiguriert wird.
gruss Byte09
Zitat von: Christoph Morrison am 17 Januar 2019, 12:16:24
Trag das doch mal (mit Erklärung) ins Wiki auf die Zeitschaltuhr-Seite (https://wiki.fhem.de/wiki/Zeitschaltuhr) ein. Ist eigentlich tatsächlich eine häufige Frage und TIMTOWDI (https://en.wikipedia.org/wiki/There%27s_more_than_one_way_to_do_it).
werde ich mal machen ;-)
gruss Byte09
Zitat von: Beta-User am 17 Januar 2019, 12:12:46
Wie wäre es mit "set PumpeStart execNow"?
Nicht gut wärs. Ich habe den Befehl schon vor Deinem Hinweis in der at Kommandoreferenz gefunden, aber er funzt nicht.
set PumpeStart execNow
ergibt stets:
"Unknown argument execNow, choose one of active inactive modifyTimeSpec"
Abgesehen davon wollte ich, dass die Zeitschaltuhr jetzt sofort voll loslegt, also für den Rest des heutigen Tages bis 20:00 UIhr bereits ein/aus schaltet. Der Befehl würde - wenn er ginge - das Kommando ja nur ein Mal ausführen. Ich habe JETZT Wasser im Keller, und möchte ab jetzt abpumpen, nicht erst ab morgen früh :-)
Dennoch wärs natürlich eine Vereinfachung beim Testen, wenn Dein Kommando ginge - aber es scheint nicht unterstützt zuwerden.
Armin
An sich wird es unterstützt (ich habe das letzten Freitag genutzt), und es wäre auch nett gewesen, wenn du das vorher erwähnt hättest.
Aber an sich würde ich das auch anders lösen - ausnahmsweise mit _einem_ Attribut ;) :
define PumpeEin at +*00:15:00 set Sender_FS20_01 on-for-timer 5
attr PumpeEin disabledForIntervals 00:00-08:00 19:50-24:00
Kann aber grade nicht testen, müßte aber gleich loslegen.
Zitat von: Beta-User am 17 Januar 2019, 12:40:10
...
ExecNow gerade nochmnal versucht, copy&paste um Tippfehler auszuschließen, nein, selbe Fehlermeldung, klappt nicht. Seltsam, dass es bei Dir klappt. Mein FHEM ist schon relativ alt: 5.7, vielleicht ist das der Grund?
Dein Vorschlag mit dem Attribut: interessante Variante, danke dafür.
Immerhin löst sich das Problem innerhalb von 24 Stunden von alleine :-)
HG Armin
Hmm, ich hatte dazu den "Knopf" in FHEMWEB genutzt (V5.9).
Das mit dem Attribut ist hier vermutlich auch besser als das mit dem weiteren define (seit einiger Zeit gibt es auch defmod, solltest du in dem Zusammenhang evtl. mal ansehen). Die Attribut-Variante hat m.E. den Vorteil, dass es wirklich auch zum richtigen Zeitpunkt wieder aufhört (sonst sind die 48 Mal später um ;) ).
Zitat von: Nimral am 17 Januar 2019, 13:15:42
Immerhin löst sich das Problem innerhalb von 24 Stunden von alleine :-)
Nimm einfach die DOIF-Lösung, da löst sich das Problem innerhalb der nächsten 15 Minuten.
Zitat von: Christoph Morrison am 17 Januar 2019, 13:44:43
Nimm einfach die DOIF-Lösung, da löst sich das Problem innerhalb der nächsten 15 Minuten.
Da wäre ich bei einem 5.7-FHEM nicht so sicher ;) ...
Zitat von: Beta-User am 17 Januar 2019, 13:50:35
Da wäre ich bei einem 5.7-FHEM nicht so sicher ;) ...
Hat schon jemand bei der zuständigen Denkmalschutzbehörde Bescheid gesagt?
Zitat von: Christoph Morrison am 17 Januar 2019, 14:14:21
Hat schon jemand bei der zuständigen Denkmalschutzbehörde Bescheid gesagt?
...weiß nicht, ob die helfen können: die denken vermutlich, dass "Lenny" eine falsche Schreibweise von "Lemmy ist ;D ::) 8) ...
Zitat von: Christoph Morrison am 17 Januar 2019, 14:14:21
Hat schon jemand bei der zuständigen Denkmalschutzbehörde Bescheid gesagt?
Die sind ja das Problem, ich dafs ohne Genehmigung weder umbauen noch abreißen :-)
Im Ernst: FHEM ist viele Jahre unauffällig und problemlos gelaufen, ich hatte nie einen Grund, an ihm herumzuschrauben. Never change a running system.
Jetzt hab ich ja einen für ein Update auf 5.9 :-)
Danke euch für eure Hilfe,
Armin.
Wer "viele Jahre lang" ein FHEM-System ohne Update betreibt, kaum Ahnung von den Grundlagen hat und es dann doch noch schafft, gestandene Entwickler zu seitenlangen Antworten zu bewegen, muss über die MACHT verfügen.
Ich hätte Nimral sicher empfohlen, sich mal selbst einzulesen - das macht auf Dauer schlauer.
LG
pah
Zitat von: Prof. Dr. Peter Henning am 17 Januar 2019, 15:48:35
... muss über die MACHT verfügen.
haben wir ihn endlich gefunden.....
hoffentlich dürfen wir alle padawan werden ;D
ICH WILL EUCH LEBEND! 8)
Zitat von: Prof. Dr. Peter Henning am 17 Januar 2019, 15:48:35
Ich hätte Nimral sicher empfohlen, sich mal selbst einzulesen - das macht auf Dauer schlauer.
Du meinst so wie hier (https://forum.fhem.de/index.php/topic,96008.msg889732.html#msg889732)?
Langfristig haben wir alle schon dadurch gewonnen, dass Nimrals FHEM im Jetzt ankommt. Das war mir den konkreteren Hinweis wert.
ZitatICH WILL EUCH LEBEND!
Kein Problem, an mir hat sich schon man einer die Zähne ausgebissen.
pah