Hallo liebe Experten,
mit define Gerät HTTPMOD http://eine.seite 360
frage ich alle 6 Minuten die Seite eine.seite ab. Da ich meinen RasPi nicht 24 Stunden alle 6 Minuten diese Seite abrufen lassen will, sondern nur zu bestimmten Zeiten, würde ich gerne entweder das Abfrageintervall zur Laufzeit ändern, oder eine Zeitsteuerung einbauen. Wie kann ich das verwirklichen. set Gerät interval 500
führte leider zu einem Fehler.
Das Intervall kannst du meines Wissens nach nicht getrennt setzen.
Du kannst es aber zB mit DOIF lösen:
define di_Verkehr DOIF ([06:00]) (attr Verkehr disable 0) DOELSEIF ([09:00]) (attr Verkehr disable 1) DOELSEIF ([17:00]) (attr VerkehrHeim disable 0) DOELSEIF ([19:00]) (attr VerkehrHeim disable 1)
Damit schalte ich von 6:00 bis 9:00 das HTTPMOD "Verkehr" ein, und von 17:00-19:00 das "VerkehrHeim".
Ausserhalb dieser Zeiten wirds einfach disabled.
lg, Ici
perfekt, genau das suche ich
Hallo zusammen,
ich hänge mich mal dran. Was ich mache will:
- ich möchte einmal am Tag einen Wert von einer Webseite abfragen (funktioniert auch soweit)
- allerdings hängt die Ausführung derzeit vom Start von fhem ab, danach richten sich auch alle anderen ausgelesenen Werde
Wenn ich Icingers code richtig verstehe, müsste ich - analog zum geposteten Beispiel -
- beim Start von fhem den Aufruf disablen und
- per at einmalig zum gewünschten Zeitpunkt enablen
und wäre fertig.
Oder habe ich einen Denkfehler?
Danke für einen kleinen Hinweis.
Gruß PeMue
Naja, ich würds evtl. mit einem Notify mit Trigger auf global:initialized versuchen, der das HTTPMOD disabled.
Ja, und mit einem at zu einer fixen Zeit wieder enabeln.
Hab aber ehrlich gesagt noch nicht getestet, ob HTTPMOD dann mit einem 24h-Intervall laufen kann.
lg, Ici
Hallo,
so ganz kapiert habe ich es nicht. Mein erster Versuch war folgender:
define <name> HTTPMOD <website> 86400
attr <name> timeout 5
# usw
attr <name> disable 1
define <name_at> at 16:00:00 attr <name> disable 0
mit dem Ergebnis, dass die Seite vermutlich schon ausgelesen war, als sie deaktiviert wurde.
Notify kenne ich, aber eigentlich will ich ja das erste Auslesen von HTTPMOD solange verzögern, bis es "wieder im Raster" liegt.
Hat jemand eine Idee?
Danke + Gruß
PeMue
Stimmt, eingentlich ne dumme Sache.....
Du hättest gern, dass es zwar angelegt wird, aber nicht gleich beim define ausgeführt.
Naja, du könntest es so machen, dass du NUR das at anlegst.
Das at ruft dann eine sub in der myutils auf, wo geprüft wird, ob das HTTPMOD schon angelegt ist.
Wenn ja -> nix tun
Wenn noch nicht angelegt: Hier dann ein fhem("define HTTPMOD") machen...
Das at muss halt wiederkehrend sein, sonst wirds ja nicht in der fhem.cfg gespeichert, daher ist dann auch der Test notwendig, ob das HTTPMOD schon angelegt wurde.
Also:
define <name_at> at 16:00:00 meineEigeneSub()
sub meineEigeneSub()
{
if (defined($defs{'HTTPMOD-NAME'})) {return undef}
fhem("define <name> HTTPMOD <website> 86400");
fhem("attr <name> timeout 5");
}
ACHTUNG! Ungetestet, nur aus dem Kopf heraus getippselt, aber der Gedanke dahinter sollte klar sein, oder?
lg, Ici
Wobei....Da müsste noch ein zusätzliches notify auf global:initialized um das (falls vorhanden) erstmalig zu löschen...
Wenns einmal angelegt ist, wirds ja beim nächsten Save in die config geschrieben.
lg, Ici
Hallo Icinger,
Dein Grundkonzept habe ich verstanden, danke. Trotzdem finde ich es etwas "daneben" ein Modul (auch wenn es nur der Start ist) zeitabhängig zu definieren und danach das Auslesen zu starten. Mir wäre ein get <HTTMODname> update
so wie es André bei SYSSTAT eingebaut hat lieber. Dann könnte man das erste Mal ein at darauf setzen und den Rest (im definierten Zeitabstand) macht dann das Modul selber. Ich schaue mir mal den Code an, befürchte aber, dass da meine Perl/fhem internen Kenntnise noch zu "dünn" sind. Aber man lernt ...
Schöne Ostern noch.
Viele Grüße
PeMue
Schon klar, dass das nicht das "gelbe vom Ei" ist :) ist eher ein Workaround.
Sorry, war jetzt ne Woche in Rom, ganz ohne Netz....War ne richtige Erholung.
Hast du was geschafft betreffend einem "update..."? Ansonsten schau ich mir das mal an.
Ist zwar nicht mein Modul, aber vielleicht kann man ja nen Patch einfliessen lassen.
lg, Ici