Ich nutze das WBS modul, um von meinem Arduino via Ethernet Daten an FHEM zu schicken. Das funktioniert auch wunderbar. Allerdings war ich mit den LOGeinträgen des WBS nicht ganz zufrieden.
aktueller Logeintrag
2014-03-10_21:22:27 KWL_Press1 Pressure1:982.58
besser ist
2014-03-10_21:22:27 KWL_Press1 Pressure1: 982.58
man beachte das Leerzeichen vor dem Wert. So kann viel einfacher eine Grafik angezeigt werden, oder irre ich mich?
ich habe das gelöst im WBS Code ab Zeile 135 :
# Changed
$wbs->{CHANGED}[0] = "$reading: $value";
return $wbs_name;
(ein Leerzeichen vor $value)
Das WBS Modul füllt bei jedem FHEM start das fhem.log mit allen Definitionen. Kann man das irgendwie abschalten?
2014.03.10 21:17:46 0: WBS|DEFINE: $VAR1 = {
'NAME' => 'KWL_Press2',
'NR' => 32,
'DEF' => 'Pressure2 2002',
'STATE' => '???',
'TYPE' => 'WBS'
};
Gruß
Jan
kannst Du mal bitte den vollständigen Modulnamen nennen?
edit.. habs gefunden.
Dein Vorschlag mit dem Leerzeichen ist ok,
Dein zweites Problem kannst Du lösen, wenn Du diese Zeile
Log 0, "WBS|DEFINE: " . Dumper(@_);
auskommentierst. Bei mir ist das in Zeile 70.
klar.
18_WBS.pm
https://github.com/mhop/fhem-mirror/blob/master/fhem/contrib/WBS/18_WBS.pm (https://github.com/mhop/fhem-mirror/blob/master/fhem/contrib/WBS/18_WBS.pm)
ist glaub nicht Mainstream, aber sehr praktisch...
siehe oben - da hab ich die Antwort reingeschrieben, während Du geantwortet hast :)
prima.
Wer kann das für alle ändern?
Das ist ein contrib-Modul. Da gibt es keine reguläre Wartung und diese Module werden auch nicht per update verteilt.
An dem Modul gab es auch seit 4 Jahren keine Änderung, ich weiß nicht, ob sich darum überhaupt noch jemand kümmert.
ich habe es mal abgegeben. Wer triggert den merge?
Ich hab die zwei Änderungen mal eingebaut. Sollte per SVN bereits verfügbar sein.
Ich hätte da noch was.
Das modul ist ja mit Arduino unglaublich praktisch, aber etwas unhandlich. Denn, die Werte der WBS definitionen sehen z.B. so aus:
T: 12.8 | 2014-04-08 19:14:14
Damit lässt sich sehr schlecht rechnen, jede Aktion muss den String wieder auseinander pflücken, mir gefällt besser das hier:
12.8
dazu muss im WBS die Zeile 134:
$wbs->{STATE} = "$fc: $value | " . TimeNow();
geändert werden in:
$wbs->{STATE} = "$value";
Gibt es wichtige Gründe, den großen String abzulegen?
swifty
Das werde ich nicht ändern.
Nun, das Problem ist jede at sieht dann so aus:
my @P1 = split(/ /, Value("WBS_Variable"));
my $var = $P1[1]
noch schlimmer ist es im notify, arrays kann FHEM in notify nicht verarbeiten.
Damit alte Skripte weiterlaufen kann man das schlecht ändern. Aber warum wird so viel (unnützer?) Text abgelegt?
swifty
Die Änderung ist wirklich nicht nötig.
Um auf den Wert zuzugreifen ist Value() der falsche Ansatz. Um auf ein WBS Signal definiert mit
define KWL_Press1 WBS Pressure1 2001
zuzugreifen
sollte ReadingsVal verwendet werden, hier:
ReadingsVal("KWL_Press1", "Pressure1","");
man lernt nie aus...
Hallo,
ich möchte das WBS Modul auch gerne nutzen um Daten an Fhem zu schicken. Ich habe in meinem Arduino Code folgendes stehen:
client.println("GET /fhem/rawmsg?WBS:1235:xx");
xx ist der Wert, der übertragen wird. Kann ich hier irgendwie eine Variable einfügen?
Viele Grüße
Tresa
Hallo,
du kannst das zb. so machen:
als erstes kein println:
client.print("GET /fhem/rawmsg?WBS:1235:");
und dann deine Varibale
client.println(value);