NEWS
Iphone verliert immer das wlan???
-
@thomas-braun ich habe sie über filezilla eingefügt und vorher sie von txt in sh Datei gebracht.
-
@oliverio "sudo -u iobroker chmod 0754 /opt/iobroker/cmd/iphone.sh" sagtest du nicht 0755???
-
@denjo
ja
0755
So ist es bei mir -
@oliverio okay, weil du in deiner neuen Anleitung dieses geschrieben hattest:
"sudo -u iobroker chmod 0754 /opt/iobroker/cmd/iphone.sh"
Werde es gleich nochmal ausprobieren wenn ich Feierabend habe bevor ich ins Bett gehe.
Besten Dank erst mal
-
@oliverio so ich habe jetzt alles genau so gemacht die datei hat 755 und besitzer und gruppe sind iobroker die datei sieht so aus
#!/bin/bash #Enter your ip of your device here DEVICES="192.168.178.82" for i in `echo $DEVICES`; do ping $i -c 1 hping3 -2 -c 10 -p 5353 -i u1 $i -q >/dev/null 2>&1 sleep 1 # Only arp specific device, grep for a mac-address status=`arp -an $i | awk '{print $4}' | grep "..:..:..:..:..:.."` #A mac will be 17 characters including the ":" IP=${i//./-} if [ ${#status} -eq 17 ]; then echo "Phone $i is detected!" curl http://192.168.178.98:8081/set/0_userdata.0.Anwesenheit.$IP?value=1 else echo "Phone $i is not present" curl http://192.168.178.98:8081/set/0_userdata.0.Anwesenheit.$IP?value=0 fi done
am script habe ich nur die zahl auf 3 min geändert
function wakeIphone() { exec("bash /opt/iobroker/cmd/iphone.sh") } schedule ("*/3 * * * *", function(){ wakeIphone(); });
wenn ich folgendes eingebe kommt das:
pi@raspberrypi:~ $ echad@chet:/opt/iobroker/cmd $ ls -la /opt/iobroker/cmd/iphone.sh -bash: echad@chet:/opt/iobroker/cmd: Datei oder Verzeichnis nicht gefunden pi@raspberrypi:~ $
wobei datei und ordner da sind sehe ich ja über filezilla
und im log vom iobroker kommt wieder mal
javascript.0 2099 2021-12-02 06:33:00.015 info script.js.Test.iphone_anwesenheit: exec is not available. Please enable "Enable Exec" option in instance settings javascript.0 2099 2021-12-02 06:33:00.014 error exec is not available. Please enable "Enable Exec" option in instance settings
jetzt habe ich im java adapter die option exec erlauben aktiviert und es kommt im log keine fehler meldung mehr
-
@denjo sagte in Iphone verliert immer das wlan???:
wobei datei und ordner da sind sehe ich ja über filezilla
Du hast ja auch mein Login prompt als Befehl eingegeben. Das funktioniert natürlich nicht.
chmod 0754
Hatte ich bewusst so gesetzt. Das Skript muss nicht für User außerhalb des iobrokers ausführbar sein.
-
@denjo
Du hast bei den curl Befehlen den falschen Port eingetragen. Simple api horcht bei mir auf 8087 -
sudo -u iobroker chmod 0754 /opt/iobroker/cmd/iphone.sh
habe das jetzt nochmal ausgeführt nun sind die rechte auf 754
und den port habe ich auf 5663 wie im adapter steht geämdert.was soll ich jetzt genau eingeben zum testen?
-
@denjo sagte in Iphone verliert immer das wlan???:
/opt/iobroker/cmd/iphone.sh
Du kannst jetzt z. B. in das Verzeichnis wechseln und das skript auf der Konsole ausführen:
cd /opt/iobroker/cmd/iphone.sh ./iphone.sh
Dann siehst du schon mal ob es drundsätzlich läuft.
Das dann ggf. in den ioBroker einweben ist der nächste Step.
Kann dir @OliverIO bestimmt noch helfen. -
@thomas-braun
habe jetzt die meldungpi@raspberrypi:/opt/iobroker/cmd $ ./iphone.sh PING 192.168.178.82 (192.168.178.82) 56(84) bytes of data. From 192.168.178.98 icmp_seq=1 Destination Host Unreachable --- 192.168.178.82 ping statistics --- 1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms Phone 192.168.178.82 is not present curl: (52) Empty reply from server pi@raspberrypi:/opt/iobroker/cmd $
das iphone ist gerade nicht da
-
@denjo sagte in Iphone verliert immer das wlan???:
curl: (52) Empty reply from server
hast du den simple api adapter installiert?
hast du die portnummer angepasst?
hast du datenpunkte angelegt, wo der status eingetragen werden soll?
hast du die ggfs datenpunktbezeichnungen in den zeilen mit curl angepasst? -
@oliverio ja alles gemacht
-
dann dein angepasstes script hier nochmal posten
deine Ausgabe sollte ungefähr so aussehen. Hier mit 2 IP-Adressen.
eine erreichbar, eine nicht erreichbarPING 192.168.1.209 (192.168.1.209) 56(84) bytes of data. From 192.168.1.85 icmp_seq=1 Destination Host Unreachable --- 192.168.1.209 ping statistics --- 1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms Phone 192.168.1.209 is not present {"id":"0_userdata.0.Anwesenheit.192-168-1-209","value":0,"val":0}PING 192.168.1.225 (192.168.1.225) 56(84) bytes of data. --- 192.168.1.225 ping statistics --- 1 packets transmitted, 0 received, 100% packet loss, time 0ms Phone 192.168.1.225 is detected!
-
function wakeIphone() { exec("bash /opt/iobroker/cmd/iphone.sh") } schedule ("*/3 * * * *", function(){ wakeIphone(); });
-
-
#!/bin/bash #Enter your ip of your device here DEVICES="192.168.178.82" for i in `echo $DEVICES`; do ping $i -c 1 hping3 -2 -c 10 -p 5353 -i u1 $i -q >/dev/null 2>&1 sleep 1 # Only arp specific device, grep for a mac-address status=`arp -an $i | awk '{print $4}' | grep "..:..:..:..:..:.."` #A mac will be 17 characters including the ":" IP=${i//./-} if [ ${#status} -eq 17 ]; then echo "Phone $i is detected!" curl http://192.168.178.98:5663/set/0_userdata.0.Anwesenheit.$IP?value=1 else echo "Phone $i is not present" curl http://192.168.178.98:5663/set/0_userdata.0.Anwesenheit.$IP?value=0 fi done
das ist der erstellte datenpunkt
"_id": "0_userdata.0.Anwesenheit",
pi@raspberrypi:/opt/iobroker/cmd $ pi@raspberrypi:/opt/iobroker/cmd $ ./iphone.sh --- 192.168.178.82 ping statistics --- 1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms -bash: pi@raspberrypi:/opt/iobroker/cmd: Datei oder Verzeichnis nicht gefunden Phone 192.168.178.82 is not present curl: (52) Empty reply from server
-
ok
1.)
du musst auch noch die Datenpunkte für die IP anlegen.
Das macht das Script oder der simple api adapter nicht
also im iobroker Objektbaum den "Ordner" Anwesenheit auswählen,
dann + Knopf drücken
dann
192-168-178-82mit Typ Zeichenkette anlegen
2.)
Warum steht da in der curl zeile als port 5663?
wie ist die einstellung im iobroker bei deiner instanz für simple api?
bei mir sieht es so aus. also steht bei mir an der stelle der port 8087 -
@oliverio achso dachte anwesenheit muss ein objekt sein. jetzt habe ich einen ordner und da drin ein objekt "number" mit 192-168-178-82
pi@raspberrypi:/opt/iobroker/cmd $ ./iphone.sh PING 192.168.178.82 (192.168.178.82) 56(84) bytes of data. From 192.168.178.98 icmp_seq=1 Destination Host Unreachable --- 192.168.178.82 ping statistics --- 1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms Phone 192.168.178.82 is not present curl: (52) Empty reply from server
ja den port hatte ich irgendwann mal geändert der ist wirklich 5663
-
@denjo sagte in Iphone verliert immer das wlan???:
curl: (52) Empty reply from server
irgendwas stimmt dann an dem link nicht oder am datenpunkt.
warum hast du jetzt number genommen?
@oliverio sagte in Iphone verliert immer das wlan???:
dann
192-168-178-82
mit Typ Zeichenkette anlegenbitte aufmerksam lesen und genau das machen was da steht, sonst kann sich das hier nochmal hinziehen.
dann bitte in die datenpunkteinstellung gehen und im reiter "raw" den kasten markieren und kopieren.
bei mir sieht es so aus{ "_id": "0_userdata.0.Anwesenheit.192-168-1-209", "type": "state", "common": { "name": "IPhone", "role": "", "type": "string", "read": true, "write": true, "desc": "Manuell erzeugt", "def": "", "custom": { "history.0": { "enabled": true, "changesOnly": true, "debounce": 0, "maxLength": "10", "retention": "31536000", "changesRelogInterval": 0, "changesMinDelta": 0, "aliasId": "" } } }, "native": {}, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1626116496107, "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
Falls der _id und der type und der common.type nicht ähnlich aussieht,
dan lösche den ganzen Ast nochmal,
markiere 0_userdata.0 drücke dann den Plus-Knopf und gebe das folgende einAnwesenheit.192-168-178-82
Es wird dann zwar genauso aussehen, aber die innere Struktur ist dennoch eine andere.
-
@oliverio das ist das objekt
{ "common": { "name": "192-168-178-82", "desc": "Manuell erzeugt", "role": "state", "type": "string", "read": true, "write": true, "def": "" }, "type": "state", "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1638458158185, "_id": "0_userdata.0.Anwesenheit.192-168-178-82", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
und das kommt jetzt wieder
pi@raspberrypi:/opt/iobroker/cmd $ ./iphone.sh PING 192.168.178.82 (192.168.178.82) 56(84) bytes of data. From 192.168.178.98 icmp_seq=1 Destination Host Unreachable --- 192.168.178.82 ping statistics --- 1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms Phone 192.168.178.82 is not present curl: (52) Empty reply from server
jetzt ist meine freundin wieder da und ich habe die meldung
pi@raspberrypi:/opt/iobroker/cmd $ ./iphone.sh PING 192.168.178.82 (192.168.178.82) 56(84) bytes of data. 64 bytes from 192.168.178.82: icmp_seq=1 ttl=64 time=5.56 ms --- 192.168.178.82 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 5.560/5.560/5.560/0.000 ms Phone 192.168.178.82 is detected! curl: (52) Empty reply from server
aber am objekt ändert sich nix