DOIF mit Bash-Script Ausführung

Begonnen von mlrtimbf, 06 August 2018, 20:41:42

Vorheriges Thema - Nächstes Thema

mlrtimbf

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

Otto123

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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

mlrtimbf

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...

Otto123

Ja in dem Fall (nur eine Zeit und keine Alternative) brauchst Du wohl do always.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Frank_Huber

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