Hallo,
wie Kann ich denn dem Reading LaufzeitEnergie die beiden Werte übergeben.
so funktioniert es nicht, so schreibt er nur den Text ins reading.
$data{boiler_tot} = sprintf("%.0f",$data{boiler_tot});
$data{Energie_Erzeugt} = $data{Energie_Ende} - $data{Energie_Start};
fhem "setreading HVLaufzeitX LaufzeitEnergie $data{boiler_tot} $data{Energie_Erzeugt}";
Gruß Josty
fhem sprintf( "setreading HVLaufzeitX LaufzeitEnergie %s %s", $data{boiler_tot}, $data{Energie_Erzeugt});
Hallo,
dann sieht das reading so aus:
LaufzeitEnergie %s %s", $data{boiler_tot}, $data{Energie_Erzeugt} 2018-11-29 23:50:30
Gruß Josty
Hallo,
Wo hast du den Code denn drin? Das Problem ist, deine Variablen werden so nicht aufgelöst.
Du kannst es mit concatenation versuchen.
Deinen Text umzuschreiben bekomme ich leider am Tablet so auf die schnelle nicht hin.
Auf meiner Webseite findest du aber meine Notizen zu dem Thema.
Gruß Otto
Hallo,
Hab den Text in einem Notify.
Die letzte Zeile ist die entscheidende die nicht funktioniert so.
HVStatus {
if("$EVENT" eq "AN") {
$data{boiler_last} = time();
fhem "setreading HVLaufzeitX VorVorVorLetzteLaufzeit [HVLaufzeitX:VorVorLetzteLaufzeit]";
$data{boiler_letzte} = ReadingsVal ("HVLaufzeitX","VorLetzteLaufzeit",0);
fhem "setreading HVLaufzeitX VorVorLetzteLaufzeit $data{boiler_letzte}";
$data{boiler_letzte} = ReadingsVal ("HVLaufzeitX","LetzteLaufzeit",0);
fhem "setreading HVLaufzeitX VorLetzteLaufzeit $data{boiler_letzte}";
$data{boiler_letzte} = ReadingsVal ("HVLaufzeitX","Laufzeit",0);
fhem "setreading HVLaufzeitX LetzteLaufzeit $data{boiler_letzte}";
fhem "setreading HVLaufzeitX Laufzeit 0";
$data{Energie_Start} = ReadingsVal ("myuvr_messuebersicht","Energiemenge",0);
fhem "setreading HVLaufzeitX EnergiemengeStart [myuvr_messuebersicht:Energiemenge]";
} elsif("$EVENT" eq "AUS") {
$data{boiler_letzte} = ReadingsVal ("HVLaufzeitX","Auszeit",0);
$data{boiler_min} = (time()-$data{boiler_last})/60*1;
$data{boiler_rv} = ReadingsVal ("HVLaufzeitX","Laufzeit",0);
$data{boiler_tot} = $data{boiler_rv}+$data{boiler_min};
$data{boiler_tot} = sprintf("%.0f",$data{boiler_tot});
fhem "setreading HVLaufzeitX Laufzeit $data{boiler_tot}";
$data{boiler_rechne} = ReadingsVal ("HVLaufzeitX","Gesamtlaufzeit",0);
$data{boiler_rechne} = $data{boiler_rechne} + $data{boiler_tot};
fhem "setreading HVLaufzeitX Gesamtlaufzeit $data{boiler_rechne}";
$data{Energie_Ende} = ReadingsVal ("myuvr_messuebersicht","Energiemenge",0);
$data{Energie_Start} = ReadingsVal ("HVLaufzeitX","EnergiemengeStart",0);
fhem "setreading HVLaufzeitX VorVorVorLetzteLaufzeit [HVLaufzeitX:VorVorLetzteLaufzeit]";
fhem "setreading HVLaufzeitX EnergiemengeEnde [myuvr_messuebersicht:Energiemenge]";
$data{Energie_Erzeugt} = $data{Energie_Ende} - $data{Energie_Start};
fhem "setreading HVLaufzeitX VorVorVorLetzteEnergieErzeugt [HVLaufzeitX:VorVorLetzteEnergieErzeugt]";
fhem "setreading HVLaufzeitX VorVorLetzteEnergieErzeugt [HVLaufzeitX:VorLetzteEnergieErzeugt]";
fhem "setreading HVLaufzeitX VorLetzteEnergieErzeugt [HVLaufzeitX:LetzteEnergieErzeugt]";
fhem "setreading HVLaufzeitX LetzteEnergieErzeugt [HVLaufzeitX:EnergieErzeugt]";
fhem "setreading HVLaufzeitX EnergieErzeugt $data{Energie_Erzeugt}";
fhem "setreading HVLaufzeitX LaufzeitEnergie $data{boiler_tot} $data{Energie_Erzeugt}";
fhem sprintf( "setreading HVLaufzeitX LaufzeitEnergie %s %s", $data{boiler_tot}, $data{Energie_Erzeugt});
}
}
Gruß Josty
Entweder bin ich blind oder Du hast den Hash %data gar nicht deklariert. Kann mir nicht wirklich vorstellen das es überhault irgendwie geht.
Hallo,
jetzt hat es so doch geklappt er hat die zwei Werte in das einereading geschrieben.
Wie sollte ich denn $data deklarieren wobei es funktioniert jetzt einwandfrei mit dieser Zeile.
fhem sprintf( "setreading HVLaufzeitX LaufzeitEnergie %s %s", $data{boiler_tot}, $data{Energie_Erzeugt});
hatte das manuell auszulösen versucht da ging es nicht.
Jetzt wo der Holzvergaser tatsächlich an und aus ging hat er es gesetzt.
Dankeschön
Gruß Josty
Zitat von: jostmario am 30 November 2018, 12:45:24
Wie sollte ich denn $data deklarieren wobei es funktioniert jetzt einwandfrei mit dieser Zeile.
Ich weiß nicht wirklich wie ich mit der Frage umgehen soll.
Ich belasse es einfach mal dabei. Scheint ja zu funktionieren.
Grüße
Data ist in fhem.pl ...ist so ok
Zitat von: herrmannj am 30 November 2018, 13:11:13
Data ist in fhem.pl ...ist so ok
Ah also eine globaler Hash. Na dann.
Habs gefunden. Ist anscheinend sogar für den User gedacht
Zitat
use vars qw(%data); # Hash for user data
Also noch nicht mal missbrauch