Freeze durch externen Linux-Befehl

Begonnen von m0urs, 12 Februar 2016, 08:57:57

Vorheriges Thema - Nächstes Thema

m0urs

Hallo,

in einer Routine in der 99_myUtils.pm rufe ich ein externes Linux-Kommando auf, welches bei meinem WLAN-Router nachfragt, ob ein Device noch online ist. Hier der Ausschnitt:

  # Frage WLAN-Status des Geräts auf router ab
   ($lastActivity) = `sudo /usr/local/bin/checkWLANActivity.sh "$mac"`;


Dadurch erzeuge ich in FHEM aber immer einen Freeze von ca. 4,5 Sekunden.

Gibt es da eine bessere Lösung, wie man so etwas macht (also Befehl in Lux aufrufen und Rückgabewerte dann in FHEM weiterverarbeiten) ohne FHEM in dieser Zeit lahmzulegen oder muss ich damit leben?

Wernieman

Da Du mit Hilfe von telnet und/oder nc Daten von extern nach FHEM "reinpusten" kannst:

1. Entweder extern oder mit FHEM Dein Shell Script Starten und gleich in den Hintergrund schieben "tolles-script &"
2. Im Script mit Hilfe von telnet/ die Daten nach fhem reinpusten
echo -en "set ${1} ${2}\nquit\n" | nc -w 5 fhem-server 7072

Reicht Dir das als "Idee"?

Ich persönlich starte gleich das Script extern über den Cron-Deamon, damit ich nicht mit sudo arbeiten muß. Der Startet das Script gleich mit den "richtigen" rechten
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

m0urs

Zitat von: Wernieman am 12 Februar 2016, 09:05:15
echo -en "set ${1} ${2}\nquit\n" | nc -w 5 fhem-server 7072
Reicht Dir das als "Idee"?

Ja, vielen Dank! Habe es eben mal so umgebaut. Das mit dem Senden von Kommandos an FHEM von Linux aus ist super (kann man sicher auch für andere Sachen gebrauchen ;-)) Es gibt jetzt keinen Freeze mehr, da ich via Cron direkt ein Reading in einem Device ändere und in FHEM dann nur das Reading abfrage.

Wernieman

Arbeite sogar so bei meiner Infrarot-Fernbediehung. Mag das lirc-Modul von FHEM nicht, da es "pollt".

P.S. geht sogar, wenn der Port "verschlüsselt" ist.
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html