Huhu,
ich hab aus dem Forum was nachgebaut, mit dem Unterschied, dort klappte es :-p
Ich möchte ein eigenes Reading aus einer XML auslesen. Später extern, jetzt zum testen ein eigener String:
99_myutil
sub xmlTest {
use XML::Simple qw(:strict);
my $xmltext = '<?xml version="1.0" encoding="UTF-8" ?>
<GetValues>
<Version>1.2.51</Version>
<Uptime>0d 00:08:37</Uptime>
<Copyright>Nico Treffkorn,Magdeburg</Copyright>
<CurrentDateTime>19.03.2014 17:41:06</CurrentDateTime>
<LastEDLReceive>19.03.2014 17:41:06</LastEDLReceive>
<LastUDPReceive>00.00.0000 00:00:00</LastUDPReceive>
<LastWallboxControl>00.00.0000 00:00:00</LastWallboxControl>
<LastSQLStatement>00.00.0000 00:00:00</LastSQLStatement>
<LastKNXBroadcast>00.00.0000 00:00:00</LastKNXBroadcast>
<LastStorageReceive>00.00.0000 00:00:00</LastStorageReceive>
<SmartMeter>
<Using>1</Using>
<Type>SMA</Type>
<Serial>1900204007</Serial>
<TimeStamp>525987</TimeStamp>
<ActualPower>861</ActualPower>
<RealPower>
<L1>213</L1>
<L2>371</L2>
<L3>277</L3>
</RealPower>
<PowerFactor>
<total>0.916</total>
<L1>0.845</L1>
<L2>0.728</L2>
<L3>0.934</L3>
</PowerFactor>
<Voltage>
<L1>227</L1>
<L2>227</L2>
<L3>227</L3>
</Voltage>
<mAmpere>
<L1>1111</L1>
<L2>2245</L2>
<L3>1307</L3>
</mAmpere>
<MeterReadings>
<Consumption>180.0</Consumption>
<Surplus>160.6</Surplus>
</MeterReadings>
</SmartMeter>
<Infrastructure>
<MainFuses>
<Current>35000</Current>
<SafetyDistance>2000</SafetyDistance>
</MainFuses>
</Infrastructure>
<KNX>
<Using>0</Using>
</KNX>
<MySQL>
<Using>0</Using>
</MySQL>
<EV>
<Using>0</Using>
</EV>
<StorageSystem>
<Using>0</Using>
</StorageSystem>
</GetValues>
';
my $ref = XMLin($xmltext, KeyAttr => { }, ForceArray => [ ]);
fhem("setreading 'xmldummy', 'CurrentDateTime', $ref->{CurrentDateTime}");
return;
}
cfg
define xmldummy dummy
attr xmldummy room Email
Log:
Zitat2016.09.06 19:12:07 3: setreading 'xmldummy', 'CurrentDateTime', 19.03.2014 17:41:06 : Please define 'xmldummy', first
Es passiert aber auch beim Aufruf von
{xmlTest} nüx außer der Eintrag im Log. Ich habe xmldummy doch definiert. Was hab ich verbockt?
versuch doch mal so:
fhem("setreading xmldummy CurrentDateTime $ref");
aus meiner Sicht entspricht das eher der CommandRef.
Christof
Läuft :-)
Nachdem ich feststellte das ich den 127.0.0.1 freigeben muss läuft auch das mit der externen URL.
Weitere Frage, wenn erlaub, wie lege ich denn an das ich oben beim Set ein "reload" provozieren kann?
Okay, stelle gerade fest das überhaupt kein Reload statt findet.
Wie sorgt man dafür das sich dieses Reading immer selbstständig erneuert?
Hallo, ein entsprechendes "at" definieren. Siehe commandref.
Grüße Jörg
Gesendet von iPhone mit Tapatalk
So weit war ich auch schon, ich wollte nur nicht extra dafür eins anlegen, ich nahm an das geht im Sub direkt irgendwie.