Autor Thema: Abfrage eines Device per Skript  (Gelesen 2909 mal)

Offline Puschel74

  • Hero Member
  • *****
  • Beiträge: 9839
Abfrage eines Device per Skript
« am: 20 April 2013, 17:24:50 »
Hallo,

ich hatte bisher in einer sub folgendes im Einsatz:
my ($name) = @_;
my ($befehl) = "sudo i2cget -y 1 ".$name." 0x00 w &";
my ($result) = `$befehl`;

bis ich am 10.04.2013 ein update durchgeführt habe.
Bisher habe ich bei mir alles abgesucht und gestern den RasPi neu aufgesetzt weil die Daten nichtmehr in der Datenbank gelandet sind.
Im Frontend-Unterforum habe ich die Fragen schonmal angeschnitten gehabt bin jetzt aber relativ sicher das nicht das Frontend
bzw. sqlite3 schuld sein dürften.

Ein
return "$name";
liefert mir schön
Zitat
0x4c

zurück.
Ein
return "$befehl";
liefert mir schön
Zitat
sudo i2cget -y 1 0x4c 0x00 w &

zurück.
Ein
return "$result";
liefert mir unschön
Zitat

zurück. Also nichts.

Auf der Kommandozeile ein
Zitat
sudo i2cget -y 1 0x4c 0x00 w

eingegeben liefert mir
Zitat
0x602a

was bisher (also bis 10.04 ca 20:00 Uhr) eigentlich auch immer in der weiteren sub umgerechnet wurde in eine Dezimalzahl
und an fhem zurückgegeben wurde.
An diesem Zeitpunkt hören die Logeinträge und natürlich die Datenbank-Einträge auch auf.

Wie gesagt. Ich hatte erst mein Können im Umgang mit sqlite3 und dem Frontend im Verdacht.
Daher habe ich gestern ein Backup meiner Erstinstallation auf die SD-Karte geworfen und fhem neu auf meinem RasPi installiert und alles drum herum wieder neu eingerichtet.
Da ich die Werte meiner I2C-Sensoren bis 10.04 einwandfrei im Frontend anzeigen lassen konnte und nachher nichtmehr habe ich
die Neuinstallation zum Anlass genommen um meine Sensoren neu zu definieren.
Meine defines das notify und die 99_myUtils.pm habe ich aus einer Sicherungskopie wieder hergestellt und ich habe festgestellt das eben der Rückgabewert meines Aufrufs leer bleibt - und das vermutlich seit 10.04 schon.

Für Ideen wäre ich mal wieder dankbar.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Offline OiledAmoeba

  • Full Member
  • ***
  • Beiträge: 168
Aw: Abfrage eines Device per Skript
« Antwort #1 am: 09 Mai 2013, 16:55:08 »
Moin,

schon ein paar Tage her, aber kann es sein, dass das & der Fehler ist?
Zitat
my ($befehl) = "sudo i2cget -y 1 ".$name." 0x00 w &";

Damit schickst Du i2cget in den Hintergrund. Das Script wartet nicht auf eine Rückgabe. Wenn jetzt i2cget länger braucht und der Perl-Interpreter an my ($result) = `$befehl`; bereits vorbei ist, wenn das Ergebnis kommt, wird $result nicht mehr gefüllt.

Probier mal, was passiert, wenn Du das & aus $befehl rausnimmst.
Gruß
Florian

Jail auf XigmaNAS (freeBSD); CCU2 mit CULv3, nanoCUL868 und JeeLink-Clone; div. FS20-Komponenten; andFHEM; div. hm- und hmip-Komponenten; div. IT+

Offline Puschel74

  • Hero Member
  • *****
  • Beiträge: 9839
Aw: Abfrage eines Device per Skript
« Antwort #2 am: 12 Mai 2013, 15:54:39 »
Hallo,

danke für den Tipp aber ich habe die Abfrage auch ohne "&" versucht und bekomme nichts zurück.
Leider greifen jetzt 2 Beiträge das selbe Thema auf.
Ich verlink mal auf den anderen Beitrag: Link

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.