hallo,
ich habe das Problem das hin und wieder die Verbindung abbricht und sich mein Modem dann gelegentlich aufhängt.
Ich würde nun gerne mit FHEM die Verbindung kontrollieren und über eine Schaltsteckdose aus/ein durchführen.
Mit Presence scheint ja "nur" der interne Ping zu funktionieren?! welche Möglichkeiten gebe es noch?
den Rest mit dem Schalten wäre ja kein Problem.
Vielen Dank!
Grüße Udo
du kannst jedes beliebige ziel anpingen. auch im internet.
ok danke! werde es gleich probieren
Hab ein ähnliches Problem.
Ich nutze presence um 8.8.8.8 anzupingen (Googles DNS Server)
Dann einen HourCounter um zu zählen, wie oft die Verbinung weg ist.
Dann noch ein DOIF, welches den Strom abdreht
Und zu guter letzt ein Notify, das nach 10 Sekunden den Strom wieder einschaltet...
wäre das mit einem einzigen WATCHDOG nicht einfacher?
Ich mache das mit einem doif mit Wait. Wenn das Internet länger als 60 min weg ist Steckdose für 1 min aus.
Gesendet von iPhone mit Tapatalk
hmm, Schalterei macht mir entgegen meiner Vorahnung doch Probleme.
Bekomms nicht recht hin, wollte es mit "off-for-timer" im Watchdog machen aber da nimmt es mir das "defined" nicht ...
möchte die Steckdose nur 10sec. deaktivieren wenn Presence auf absent geht.
Funktionieren tut es mit notify aber da hab ich natürlich dann einen Loop (wenn Internetverbindung offline, schaltet es 10sec aus und wieder ein und wieder aus ...) :(
Deshalb ja auch der hourcounter. Der verhindert die Endlosschleife ganz gut.
Das Notify das den Aktor wieder einschaltet könnte man sich sicher sparen, aber bei mir können auch spielende Kinder den Aktor ausschalten. Dann geht er halt wieder an ;)
Watchdog alleine hilft bei mir nicht.
Mein Internet fällt einfach hin und wieder mal kurz aus. Das ist nicht wild. Da muss ich nicht drauf reagieren.
Dumm wird es dann, wenn es permanent kommt und ausfällt. Dann fängt sich das nämlich nicht mehr. Daher der Counter.
Bin nicht zu Hause, sonst würde ich die DEFs posten. Vielleicht heute Abend.
Verhindern lässt sich dieser Loop auch ganz gut wenn nach dem ausschalten das notify für x Minuten disabled wird.
Dann schlägt es nicht mit dem nächsten PRESENCE wieder zu - oder man verlängert die PRESENCE-Abfrage.
Aber so ganz ohne Code wird es schwer zu helfen.
hallo
da hast du natürlich recht, ich hab leider schon alles wieder gelöscht ... das war ein Versuch davon mit Watchdog ...
define InternetUeberwachung watchdog Internetverbindung:offline 00:02 Internetverbindung:online set LTE_Router off-for-timer 10;setstate InternetUeberwachung defined
wie bringe ich ein notify dazu sich für x-Minuten zu disablen?
Danke!
Der HourCounter
Internals:
DEF Internetkontrolle:0
NAME InternetAusgefallen_Counter
NR 233
NTFY_ORDER 50-InternetAusgefallen_Counter
STATE 8
TYPE HourCounter
VERSION 1.0.1.2 - 24.12.2014
Readings:
2015-05-24 00:01:00 clearDate 2015-05-24 00:01:00
2015-05-24 20:00:00 countsOverall 8
2015-05-24 20:00:00 countsPerDay 8
2015-05-24 00:00:00 pauseTimePerDay 0
2015-05-24 00:00:00 pulseTimePerDay 0
2015-05-24 20:00:00 state 8
2015-05-24 19:04:39 tickChanged 870
2015-05-24 00:00:00 tickDay 3
2015-05-24 20:00:00 tickHour 75
2015-05-21 17:04:21 tickMonth 0
2015-05-24 20:00:00 tickUpdated 835
2015-05-24 00:00:00 tickWeek 1
2015-05-21 17:04:21 tickYear 0
2015-05-24 20:00:00 value 1
Helper:
OFF_Regexp
ON_Regexp Internetkontrolle:0
calledByEvent
changedTimestamp
forceClear
forceDayChange
forceHourChange
forceMonthChange
forceWeekChange
forceYearChange
isFirstRun 1
sdRoundHourLast 1432490400
value -1
cmdQueue:
Attributes:
disable 0
event-min-interval state.*:0
event-on-change-reading .*
room Kommunikation
Presence
Internals:
ADDRESS 8.8.8.8
DEF lan-ping 8.8.8.8 30
MODE lan-ping
NAME Internetkontrolle
NR 184
STATE 1
TIMEOUT_NORMAL 30
TIMEOUT_PRESENT 30
TYPE PRESENCE
Readings:
2015-05-24 20:50:00 presence present
2015-05-24 20:50:00 state present
Helper:
Attributes:
eventMap present:1 absent:0
room Kommunikation
Das DoIf
Internals:
DEF ([InternetAusgefallen_Counter:state]>7) (set MyTTS tts Das Internet wird wegen häufiger Abbrüche neu gestartet. Es sollte in etwa zwei Minuten wieder alles funktionieren., set InternetAusgefallen_Counter clear, set sa_SD_FritzBoxPWR off)
NAME InternetAusgefallen_Reset
NR 236
NTFY_ORDER 50-InternetAusgefallen_Reset
STATE disabled
TYPE DOIF
Readings:
2015-05-23 01:19:58 cmd_event InternetAusgefallen_Counter
2015-05-23 01:19:58 cmd_nr 2
2015-05-23 01:20:32 e_InternetAusgefallen_Counter_state 2
2015-05-23 01:20:49 state disabled
Condition:
0 ReadingValDoIf('InternetAusgefallen_Counter','state','')>7
Devices:
0 InternetAusgefallen_Counter
all InternetAusgefallen_Counter
Do:
0 set MyTTS tts Das Internet wird wegen häufiger Abbrüche neu gestartet. Es sollte in etwa zwei Minuten wieder alles funktionieren., set InternetAusgefallen_Counter clear, set sa_SD_FritzBoxPWR off
Helper:
last_timer 0
sleeptimer -1
Internals:
Itimer:
Readings:
0 InternetAusgefallen_Counter:state
all InternetAusgefallen_Counter:state
State:
Trigger:
Attributes:
disable 1
room Rumpelkammer
Zitat von: ChiliApple am 24 Mai 2015, 20:44:28
wie bringe ich ein notify dazu sich für x-Minuten zu disablen?
Danke!
Nichts leicher als das.
Nach dem off-for-timer ein
attr <name_des_notify> disable 1
einfügen und danach ein
define notify_enable at +00:05:00 attr <name_des_notify> disable 0
einfügen (hier 5 Minuten als Beispiel - die Zeiten können angepasst werden siehe commandref zu at).
Das geht sicher auch mit DOIF aber das ist nicht meine "Baustelle".
Aber wie gesagt:
Mit den korrekten, zur Zeit eingefügten, Codes wäre die Hilfe einfacher.
ich verstehe immer noch nicht warum ein einfacher warchdog nicht ausreichen soll. eigentlich reicht es im presence device event-on-change-reading zu setzen. dann gibt es events nur wenn der zustand sich ändert und es gibt keine endlos schleife.
falls das aus irgend einem grund nicht reicht:
mach das reaktivieren des warchdog in einem notify auf present.
d.h. du hast einen warchdog der reagiert wenn die verbindung . eine gewisse zeit weg ist und startest den router neu und du hast ein notify das reagiert wenn die verbindung wieder da ist und den warchdog wieder scharf schaltet.
gruss
andre
vielen Dank fürs erste! ...
ich habe mir DOIF schon angesehen aber da blicke ich noch nicht durch, habe es jetzt mal mit einem notify laufen damit es funktioniert.
define InternetUeberwachung notify Internetverbindung:offline sleep 20;;set LTE_Modem off-for-timer 10;;attr InternetUeberwachung disable 1
define notify_enable at +00:05:00 attr InternetUeberwachung disable 0
attr InternetUeberwachung group Internet
ist zwar sicher nicht optimal aber es hat mal eine Funktion. Es ist bei mir genau so das manch mal die Verbindung abreißt, ich nur dann eingreifen muß wenn sich dabei das Modem aufhängt, das Modem hat Grundsätzlich ne Wiederwahl ...
der watchdog mag irgendwie das "off-for-timer" nicht so, da kann ich kein defined setzen ...
du meinst ein "event-on-change-reading" im presence würde dafür genügen?
werde ich morgen testen, danke
a) Beiträge lassen sich bearbeiten
b) Ich glaube kaum das es mit deinem geposteten Code klappt ::)
Dein define notify_enable wird doch nur einmalig angelegt, ausgeführt und dann wieder gelöscht - mit deinem Code direkt nach der Eingabe.
Ich dachte ich hab mich verständlich ausgedrückt das das define notify_enable logischerweise NACH dem disable 1 gehört.
Ok, ich habs nicht so geschrieben aber denken muss bei mir jeder immer noch selbst.
Oder wie und/oder durch was soll das at ausgelöst/angelegt werden ???
das ist mir aufgefallen, danke
dein semikolon ist vermutlich falsch. wenn du deine eingabe nicht im web frontend unter DEF machst sondern das konfigfile direkt änderst musst du dich selber um das maskieren oder verdoppeln mancher zeichen kümmern.
ein warchdog wird normalerweise mit
trigger <name> .
reaktiviert.
gruß
andre
danke hatte das DEF gepostet, in der cfg steht es mit zwei ;;
ich dachte trigger is der Auslöser, im Wiki ist die Anwesenheit auch mit "defined" zurückgesetzt
was heißt der watchdog mag off-for-timer nicht? welche meldung bekommst du?