Hausautomatisierung

  • 32 Antworten
  • Letztes Antwortdatum
So in etwa hab ich das gemeint (du musst den intent ja jeweils nur 1x senden)

Profile: Ping Gerät xyz (42)
State: Wifi Connected [ SSID:* MAC:* IP:* ]
Time: From 00:00 every 2m Till 23:59
Enter: PingXYZ (63)
A1: Run Shell [ Command:ping -W 3 -c 5 -s 0 192.168.178.20|grep -q "100% packet loss"
echo $? Timeout (Seconds):0 Use Root:Off Store Output In:%pingxyz Store Errors In: Store Result In: ]
A2: If [ %pingxyz eq 1 ]
A3: Send Intent [ Action:Ein Cat:None Mime Type: Data: Extra: Extra: Package: Class: Target:Broadcast Receiver ] If [ %Strom neq 1 ]
A4: Variable Set [ Name:%Strom To:1 Do Maths:Off Append:Off ]
A5: Else If [ %pingxyz eq 0 ]
A6: Send Intent [ Action:Aus Cat:None Mime Type: Data: Extra: Extra: Package: Class: Target:Broadcast Receiver ] If [ %Strom neq 0 ]
A7: Variable Set [ Name:%Strom To:0 Do Maths:Off Append:Off ]
A8: End If
 

Anhänge

  • Screenshot_2015-05-03-17-16-04.png
    Screenshot_2015-05-03-17-16-04.png
    27,7 KB · Aufrufe: 134
  • Danke
Reaktionen: TanjaR
Danke genau das ist es probier ich heute abend aus, muss jetzt mal an den Herd (Klischee will bedient werden )
Danke das ich so nerven durfte. Ich sage dir ob es geklappt hat
 
wenn es denn (hoffentlich) klappen sollte, könnte man noch überlegen ob man in dem "else block" ggf. noch überprüft ob das handy deines mannes erreichbar ist (und er damit zuhause) und falls ja, den "abschalt-intent" nicht sendet
 
vetzki schrieb:
A1: Run Shell [ Command:ping -W 3 -c 5 -s 0 192.168.178.20|grep -q "100% packet loss"
echo $? ]

gehört dies alles in die Command Zeile?
und bei der IP nehme ich an die meines Handys (feste IP)
 
ja alles in den run shell command bereich, wichtig ist das echo $? in einer neuen Zeile steht (oder alternativ so: ping -W 3 -c 5 -s 0 192.168.178.20|grep -q "100% packet loss";echo $? ) und ja die ip vom handy
Du kannst ja vorher mit einer Benachrichtung anstatt intent erstmal testen
 

Anhänge

  • Screenshot_2015-05-03-19-25-11.png
    Screenshot_2015-05-03-19-25-11.png
    36 KB · Aufrufe: 123
  • Danke
Reaktionen: TanjaR
...und keinen Smiley eintippen :winki:

:p


Grüße, Jürgen.
 
Danke :)

Es funktioniert :)

Die Variablen hab ich nicht benötigt, es reicht

Run Shell
if
send intent
else if
send intent
end if

der Fehler zuerst war das echo in der gleichen Zeile.

Super :thumbsup::thumbsup: danke für deine Geduld und ich habe soeben was gelernt.
(allerdings nur bezogen auf mein eigenes Handy :) )

Edit :

Den Text hab ich am PC abgelesen, nicht am Handy :)

Der ursprüngliche Beitrag von 17:43 Uhr wurde um 18:01 Uhr ergänzt:

vetzki schrieb:
wenn es denn (hoffentlich) klappen sollte, könnte man noch überlegen ob man in dem "else block" ggf. noch überprüft ob das handy deines mannes erreichbar ist (und er damit zuhause) und falls ja, den "abschalt-intent" nicht sendet


Das wäre nicht schlecht :) sonst mach ich aus Versehen das Fernsehen aus ... gibt dann glaub ich Diskussionen :flapper:
eine feste IP zu vergeben für dieses Handy ist ja kein Problem

EDIT Nr. 3

Habe in den "Else Block" noch ein Wait vor den Abschaltintent gesetzt. Sollte ich mal im Garten sein habe ich dort (noch) nicht überall Internet - Strom soll dann nicht sofort ausgehen, sondern erst nach einer gewissen Zeit.
 
Zuletzt bearbeitet:
so in etwa

PingXYZ (63)
A1: Run Shell [ Command:ping -W 3 -c 5 -s 0 192.168.88.1|grep -q "100% packet loss"
echo $? Timeout (Seconds):0 Use Root:Off Store Output In:%pingxyz Store Errors In: Store Result In: ]
A2: If [ %pingxyz eq 1 ]
A3: Send Intent [ Action:An Cat:None Mime Type: Data: Extra: Extra: Package: Class: Target:Broadcast Receiver ] If [ %Strom neq 1 ]
A4: Variable Set [ Name:%Strom To:1 Do Maths:Off Append:Off ]
A5: Else If [ %pingxyz eq 0 ]
A6: Run Shell [ Command:ping -W 3 -c 5 -s 0 192.168.88.2|grep -q "100% packet loss"
echo $? Timeout (Seconds):0 Use Root:Off Store Output In:%pingxyz2 Store Errors In: Store Result In: ]
A7: If [ %pingxyz2 eq 0 ]
A8: Send Intent [ Action:Aus Cat:None Mime Type: Data: Extra: Extra: Package: Class: Target:Broadcast Receiver ] If [ %Strom neq 0 ]
A9: Variable Set [ Name:%Strom To:0 Do Maths:Off Append:Off ]
A10: End If
A11: End If
 
Guten Morgen,

getestet und für gut befunden :) Funktioniert einwandfrei, auch in der 2. Variante.
Ich stell nachher mal das komplette skript ein - vielleicht ist hier im Forum ja noch jemand der mit der Powerswitch app arbeitet.

Dir erst mal ganz vielen Dank für deine Hilfe :thumbsup:

Da wir Zuhause alle grundsätzlich die Handy`s im WLAN haben ist dies eine gute Möglichkeit der Steuerung.
 
ich habe die Heimautomation zum größten Teil von der anderen Seite aufgezogen. Bei mir zu Hause läuft ein Linux-Rechner, welcher alle paar Minuten diverse Geräte anpingt und dann reagiert. Nur das "Comming-Home"-Licht wird mit Tasker ausgelöst (hier wird dann aber auch Sonnenauf- und untergang berücksichtigt).
 
Das ist natürlich auch eine Variante
ab zwar noch nen Rasperry hier rumfliegen, der sich eignen würde, aber Linux kann ich so gar nicht und mein Sohn fängt erst im August mit seiner IT Ausbildung an
 
ja, der RaspberryPi wäre dafür sehr gut geeignet. Ich lasse auch einen von meinen PIs Schaltwünsche per Funk ausführen.

im Endeffekt lasse ich Tasker zum Schalten des "Coming-Home"-Lichtes nur HTTP-Requests aufrufen und den Rest macht meine Linux-Büchse.
 
Hier wie versprochen das Profil


PingXYZ (63)
A1: Run Shell [ Command: ping -W 3 -c 5 -s 0 192.168.88.*|grep -q "100% packet loss"
echo $?
Timeout (Seconds):0
Use Root:Off
Store Output In:%pingxyz
Store Errors In:
Store Result In: ]
* eigene IP Nummer
A2: If [ %pingxyz eq 1 ]
A3: Send Intent [ Action:de.ressel.powerswitch.action.Room.ON
Cat:None
Mime Type:
Data:
Extra:Room:xyz;;
Extra:
Package:
Class:
Target:Broadcast Receiver ]
If [ %Strom neq 1 ]
A4: Variable Set [ Name:%Strom To:1
Do Maths:
Off Append:Off ]
A5: Else If [ %pingxyz eq 0 ]
A6: Run Shell [ Command: ping -W 3 -c 5 -s 0 192.168.88.*|grep -q "100% packet loss"
echo $?
Timeout (Seconds):0
Use Root:Off
Store Output In:%pingxyz2
Store Errors In: Store Result In: ]
* IP des Partners, damit Strom anbleibt - oder wenn nicht im Haus - ausgeht
A7: If [ %pingxyz2 eq 0 ]
A8: Send Intent [ Action:de.ressel.powerswitch.action.Room.OFF
Cat:None
Mime Type:
Data:
Extra:Room:xyz;;
Extra:
Package:
Class:
Target:Broadcast Receiver ]
If [ %Strom neq 0 ]
A9: Variable Set [ Name:%Strom To:0
Do Maths:Off
Append:Off ]
A10: End If
A11: End If

Dank der super Hilfe hier von Vetzki steuer ich damit nun damit gewisse Funksteckdosen im Haus. Wenn ich heim komme geht z.B. die Kaffeemaschine an, wenn ich das Haus verlasse geht sie wieder aus, außer meine bessere Hälfte ist noch Zuhause :)

@ Vetzki

dank deiner PING Hilfe habe ich nun noch weiter Profile erstellen können, so z.b. Abklärung ob ich alleine Zuhause bin und dann Stereo Anlage an und die letzte Playlist spielen :)
Nochmal ein dickes Danke in deine Richtung:thumbup:
 

Ähnliche Themen

Benny1995
Antworten
3
Aufrufe
2.304
Benny1995
Benny1995
Zurück
Oben Unten