FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: mlrtimbf am 06 August 2018, 20:41:42

Titel: DOIF mit Bash-Script Ausführung
Beitrag von: mlrtimbf am 06 August 2018, 20:41:42
Hi,

ich habe folgendes DOIF, welches jeden Tag um 23:59h den Stromverbrauch einer Steckdose in eine externe Log-Datei schreiben soll:

([20:35]) (

{ my $energyOffset = ReadingsVal('Steckdose_Pool_Pwr', 'energyCalc', '-1');;
my $currentTime = strftime('%Y-%m-%d,%H:%M', localtime);;
system("sudo /home/fhemUser/home_automation/fhem/getEnergyConsumption_Poolpumpe.sh $currentTime $energyOffset") }

)


Das Bash-Script macht folgendes:
#!/bin/bash

echo $1,$2 >> /home/mlrtimpi/home_automation/fhem/logs/energyConsumption_Poolpumpe.log


Wenn ich beim DOIF nun den Timer, sagen wir mal auf 20:40h stelle (jetzt ist es 20:39h), dann wird auch alles richtig ausgeführt. Stelle ich diesen aber auf meinen Zielwert 23:59h dann funktioniert es nicht. Beednet sich das DOIF irgednwie?

In den Logs steht folgendes:
2018-08-06 20:35:00 DOIF getEnergyConsumption_Poolpumpe error: { my $energyOffset = ReadingsVal('Steckdose_Pool_Pwr', 'energyCalc', '-1');; my $currentTime = strftime('%Y-%m-%d,%H:%M', localtime);;  system("sudo /home/mlrtimpi/home_automation/fhem/getEnergyConsumption_Poolpumpe.sh $currentTime $energyOffset") }: -1

Trotz des Errors funktionmiert es aber wie gesagt...

Seht ihr den Fehler?

Danke
Titel: Antw:DOIF mit Bash-Script Ausführung
Beitrag von: Otto123 am 06 August 2018, 21:52:38
Hi,

system liefert immer -1 als Rückgabewert unter FHEM. Insofern ist die Antwort ok.
Warum es 23:59 nicht gehen soll, kann man aus den Infos nicht entnehmen.

Warum braucht man zum Schreiben in ein Logfile sudo?

Zum Schreiben in eine Datei gibt es auch Perlfunktionen -> https://wiki.fhem.de/wiki/DevelopmentModuleAPI#FileWrite

Gruß Otto
Titel: Antw:DOIF mit Bash-Script Ausführung
Beitrag von: mlrtimbf am 06 August 2018, 22:11:12
Hi und danke für Antwort.

Ja das sudo könnte ich weglassen....

Denke habe den Fehler gefunden. Hatte das "always" Attribut bei DOIF nicht gesetzt. Könnte daran liegen, oder? Werde ich morgen früh bzw. heute sehen...
Titel: Antw:DOIF mit Bash-Script Ausführung
Beitrag von: Otto123 am 06 August 2018, 22:19:51
Ja in dem Fall (nur eine Zeit und keine Alternative) brauchst Du wohl do always.

Gruß Otto
Titel: Antw:DOIF mit Bash-Script Ausführung
Beitrag von: Frank_Huber am 06 August 2018, 22:27:58
Zitat von: Otto123 am 06 August 2018, 22:19:51
Ja in dem Fall (nur eine Zeit und keine Alternative) brauchst Du wohl do always.

Gruß Otto
Meine aber Damian hatte letztens in nem anderen Thread geschrieben dass bei "einzeilern" der do always automatisch greift.

Ich setz es aber auch immer gezielt auch bei Einzeilern.
Oder DOELSEIF auf ne andere Uhrzeit. Je nachdem.

Gesendet von meinem Doogee S60 mit Tapatalk