FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Thema gestartet von: swifty am 10 März 2014, 21:34:26

Titel: Verbesserungvorschlag WBS Modul
Beitrag von: swifty am 10 März 2014, 21:34:26
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

Titel: Antw:Verbesserungvorschlag WBS Modul
Beitrag von: betateilchen am 10 März 2014, 21:52:06
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.
Titel: Antw:Verbesserungvorschlag WBS Modul 18_WBS.pm
Beitrag von: swifty am 10 März 2014, 21:56:27
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...
Titel: Antw:Verbesserungvorschlag WBS Modul
Beitrag von: betateilchen am 10 März 2014, 21:58:08
siehe oben - da hab ich die Antwort reingeschrieben, während Du geantwortet hast :)
Titel: Antw:Verbesserungvorschlag WBS Modul
Beitrag von: swifty am 10 März 2014, 21:59:02
prima.

Wer kann das für alle ändern?
Titel: Antw:Verbesserungvorschlag WBS Modul
Beitrag von: betateilchen am 10 März 2014, 22:00:17
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.
Titel: Antw:Verbesserungvorschlag WBS Modul
Beitrag von: swifty am 10 März 2014, 22:09:07
ich habe es mal abgegeben. Wer triggert den merge?
Titel: Antw:Verbesserungvorschlag WBS Modul
Beitrag von: betateilchen am 10 März 2014, 22:31:20
Ich hab die zwei Änderungen mal eingebaut. Sollte per SVN bereits verfügbar sein.
Titel: Antw:Verbesserungvorschlag WBS Modul
Beitrag von: swifty am 08 April 2014, 19:29:28
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
Titel: Antw:Verbesserungvorschlag WBS Modul
Beitrag von: betateilchen am 08 April 2014, 19:34:59
Das werde ich nicht ändern.
Titel: Antw:Verbesserungvorschlag WBS Modul
Beitrag von: swifty am 08 April 2014, 19:39:55
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
Titel: Antw:Verbesserungvorschlag WBS Modul
Beitrag von: swifty am 08 April 2014, 22:35:10
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...

Titel: Antw:Verbesserungvorschlag WBS Modul
Beitrag von: tresa am 18 September 2014, 15:55:27
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
Titel: Antw:Verbesserungvorschlag WBS Modul
Beitrag von: Samsi am 02 November 2014, 12:05:33
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);