Moin!
Ich arbeite gerade an der Dokumentation neuer Funktionen im FOSHKplugin. Ueblicherweise ist dem Programmautor jedoch die Funktionalitaet des eigenen Programmes und der darin enthaltenen Funktionen klarer als dem Endnutzer.
Ist diese Erklaerung soweit nachvollziehbar und verstaendlich? Erbitte Unterstuetzung. Danke!
Gruss, Oliver
Remappen von Keys/Values (ab v0.09)
Einige Forward-Ziele unterstützen nur eine Auswahl an Sensoren, Ambient Weather unterstützt z.B. nur jeweils einen internen/externen PM2.5-Sensor oder Awekas oder WSWin nur 4 Bodenfeuchtesensoren.
FOSHKplugin überträgt jedoch immer logisch fortlaufend - beginnt also beim jeweils ersten Sensor und sendet die für den Forward jeweils gültige max. Anzahl der Kanäle.
Mit FWD_REMAP kann eine entsprechende Zuordnung bzw. Auswahl erfolgen.
Beispiel:
Ambient Weather unterstützt nur einen internen und einen externen PM2.5-Sensor. Im Ecowitt-Format gibt es jedoch 4 PM2.5-Sensoren - ohne Unterscheidung von intern oder extern.
FOSHKplugin sendet den PM2.5-Sensor von Kanal 1 als Außen- und Kanal 2 als Innensensensor an Ambient Weather.
Möchte man nun z.B. den PM2.5-Sensor von Kanal 3 bei Ambient Weather als Innensensor nutzen, kann man mit
Code: Alles auswählen
FWD_REMAP = @pm25_ch1=@pm25_ch3,@pm25_avg_24h_ch1=@pm25_avg_24h_ch3
die Daten des 3. Kanals auf den 1. Kanal umsetzen, womit der 3. Kanal als Außensensor bei Ambient Weather genutzt wird.
Dies lässt sich beliebig kombinieren - will man also zusätzlich auch die Daten des 4. Kanals als Innensensor bei Ambient Weather nutzen, kann mit der Zeile
Code: Alles auswählen
FWD_REMAP = @pm25_ch1=@pm25_ch3,@pm25_avg_24h_ch1=@pm25_avg_24h_ch3,@pm25_ch2=@pm25_ch4,@pm25_avg_24h_ch2=@pm25_avg_24h_ch4
auch dies erledigt werden.
Dabei erfolgt die Zuweisung immer mit ziel=ursprung - wobei der Ursprung sowohl ein statischer String oder ein statischer Zahlenwert oder auch der Inhalt eines bestehenden Feldes sein kann.
Will man den Inhalt eines Feldes nutzen, muss ein @ an den Anfang des Ursprungsfeldes gesetzt werden. Ein
würde dem Feld pm25_ch1 nur den String "pm25_ch3" zuweisen. Das @ klassifiziert also ein vorhandenes Feld.
Gleiches gilt für das Ziel - die Zuweisung
erledigt grundsätzlich die gleiche Aufgabe wie
jedoch erfolgt im zweiten Fall bei Nichtvorhandensein des Feldes pm25_ch1 eine Fehlermeldung im Log; während im ersten Fall einfach ein zusätzliches Feld pm25_ch1 erzeugt wird. Das @ im ziel dient also der Überprüfbarkeit der Funktion.
Bei der remap-Funktion gibt es zwei beachtenswerte, kritische Punkte:
1. Das Remappen erfolgt nicht global sondern ist immer auf den jeweiligen Forward bezogen.
2. Die anzugebenden Feldnamen entsprechen NICHT den Key-Namen des Zielsystems sondern den internen Variablennamen von FOSHKplugin. Je nach für das Ziel nötigen Maßsystem (metrisch/imperial) können diese Namen unterschiedlich sein.
Ein weiteres Beispiel:
Ecowitt bietet mit dem WN34 insgesamt 8 Temperatursensoren, die für Temperaturmessungen im Boden (WN34S) oder in Flüssigkeiten (WN34L) genutzt werden können.
WSWin kennt neben dem eigentlichen Innentemperatursensor noch 6 weitere T/H-Sensoren sowie 4 Bodentemperatursensoren.
FOSHKplugin nutzt die ersten 6 WH31 zum Füllen der in WSWin möglichen 6 T/H-Sensoren und nimmt für die Bodentemperatursensoren ausschließlich die Kanäle 1 bis 4 (Kanal 5..8 werden verworfen).
Hier kann der Wunsch des Nutzers bestehen, statt des WH31 Kanal 4 lieber den Temperatur- und Feuchtewert eines vorhandenen WH45 zu nutzen.
Ein Remappen der Daten des WH45 auf den Kanal 4 der Zusatzsensoren sollte dann so aussehen:
Möchte man statt der Kanäle 1-4 der ggf. vorhandenen 8 WN34 die Kanäle 5-8 an WSWin übertragen, könnte eine Remap-Definition wie diese erfolgen:
Code: Alles auswählen
FWD_REMAP = @tf_ch1c=@tf_ch5c,@tf_ch2c=@tf_ch6c,@tf_ch3c=@tf_ch7c,@tf_ch4c=@tf_ch8c
Letztes Beispiel:
Beim Forward zu Luftdaten wird durch FOSHKplugin immer Kanal 1 der vorhandenen PM2.5-Sensoren genutzt. Möchte man stattdessen Kanal 3 nutzen kann dies durch ein Remap der Werte erfolgen:
Damit wird dem Key pm25_ch1 der Inhalt des Keys pm25_ch3 zugewiesen.
Die Remap-Funktion ist ab v0.09 von FOSHKplugin für alle Forwards verfügbar.