Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

new protocol 107 for Fine Offset WH51 #1055

Merged
merged 5 commits into from
Jan 9, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 11 additions & 42 deletions CHANGED
Original file line number Diff line number Diff line change
@@ -1,17 +1,13 @@
2022-01-06 - new sensor Fody E42 (#1052)

The temperature / humidity sensor Fody E42 uses the protocol 108.

2021-12-30 - new protocol definition 7.1 for Mebus HQ7312-2 (#1050)

* various updates
SD_ProtocolData.pm - new definitiion protocol 7.1 for sensor Mebus HQ7312-2 decoded in modul SD_WS07
14_SD_WS07.pm - update commandref
README.md - add sensor


2021-12-20 - Filling the rfmode array for the attribute list. (#1047)

Update 00_SIGNALduino.pm
* SD_Protocols.pm
getKeys um eine Filterfunktion erweitert
Expand All @@ -20,90 +16,65 @@
* 00_SIGNALduino.t
array rfmode wird in SIGNALduino_Initialize und nicht mehr global mit Wert initialisiert.
Co-authored-by: sidey79 <7968127+sidey79@users.noreply.github.com>
2021-12-17 - wrong syntax in SIGNALduino_Parse_MS & SIGNALduino_Parse_MC (#1049)

2021-12-17 - wrong syntax in SIGNALduino_Parse_MS & SIGNALduino_Parse_MC (#1049)
* Update 00_SIGNALduino.pm
2021-12-16 - wrong syntax in SIGNALduino_Parse_MU (#1043)

2021-12-16 - wrong syntax in SIGNALduino_Parse_MU (#1043)
* Update 00_SIGNALduino.pm
2021-12-09 - Conrad S522 no reading batteryState (#1042)

2021-12-09 - Conrad S522 no reading batteryState (#1042)
* Conrad S522 no reading batteryState, but temperatureTrend
update 14_SD_WS.pm protocol 33

2021-12-05 - wrong syntax in SIGNALduino_Parse_MN (#1040)

* Update 00_SIGNALduino.pm
2021-11-28 - new protocol 109 for rojaflex remote controls (#1030)

2021-11-28 - new protocol 109 for rojaflex remote controls (#1030)
* New protocol 109 for Rojaflex remote controls
* New module 10_SD_Rojaflex.pm for protocol 109
* Update SD_ProtocolData.pm
* Update README.md
* Update 00_SIGNALduino.pm

2021-11-27 - PERL WARNING - sub ConvLaCrosse robust (#1038)

* ConvLaCrosse revised
- hex check added (eliminates PERL WARNINGS)

* Update SD_Protocols.pm

* Update Versiondate

* Update 02_ConvLaCrosse.t
2021-11-22 - Parse_MU check expanded - ToDo eliminated (#1033)

2021-11-22 - Parse_MU check expanded - ToDo eliminated (#1033)
* Update 00_SIGNALduino.pm
- more exact check for faulty MU message
- Parse_MU capture groups entfernt

* Update 01_SIGNALduino_Parse_MU.t

* 10_FS10/09_parseData.t
- compensate removed test due to stricter regex
2021-11-21 - Introduce dmsg Tests fs10 with corrupt data (#1034)

2021-11-21 - Introduce dmsg Tests fs10 with corrupt data (#1034)
* lib/Test2/SIGNALduino/RDmsg.pm

- Testtool to easily verify parseFN with dmsg Data.


* t/FS10/09_parseData.t

- Uses RDmsg to verify FS10 Module parseFN


* 10_FS10/testData.json

- added some data to cover errors

2021-11-21 - Allow incremental addition of match list entries (#1026)

00_Signalduino

- Added commandrefs for MatchList Attribute

- Changed MatchList attribute

01_SIGNALduino_Attr.t

- Added some tests to verify add and remove MatchList attribute

- remove test for deleted attribute



Co-authored-by: sidey79 <7968127+sidey79@users.noreply.github.com>
2021-11-04 - sub SIGNALduino_CheckccConfResponse - is more robust #1015 (#1031)

2021-11-04 - sub SIGNALduino_CheckccConfResponse - is more robust #1015 (#1031)
* Update 00_SIGNALduino.pm
https://github.com/RFD-FHEM/RFFHEM/issues/1015

* Update 02_SIGNALduino_CheckccConfResponse.t
test added with wrong value
2021-10-16 - LaCrosse mode 2 optimization register settings (#1027)

2021-10-16 - LaCrosse mode 2 optimization register settings (#1027)
* LaCrosse mode 2 optimization register settings
SD_ProtocolData.pm
Reg. 0x02 - IOCFG0 0x2E, GDO0 output pin configuration High impedance (3-state) - unused in FSK-modes
Expand All @@ -118,7 +89,6 @@ SD_ProtocolData.pm
change field register array

2021-10-04 - LaCrosse mode 1 optimization register settings (#1022)

SD_ProtocolData.pm
Reg. 0x02 - IOCFG0 0x2E, GDO0 output pin configuration High impedance (3-state) - unused in FSK-modes
Reg. 0x03 - FIFOTHR 0x41, Design Note DN009, FIFOTHR.ADC_RETENTION - CC1101 will wake up with optimal ADC settings for low data rate (≤ 100 kbps)
Expand All @@ -128,20 +98,19 @@ SD_ProtocolData.pm
Reg. 0x12 - MDMCFG2 0x02, SYNC_MODE 16/16 sync word bits detected

2021-10-04 - Bresser 5in1 optimize register settings CC110x (#1020)

Reg. 0x02 - 0x2E GDO0 output pin configuration, High impedance (3-state) - unused in FSK-modes
Reg. 0x06 - 0x1A (26 Byte) PKTLEN
Reg. 0x08 - 0x00 Fixed packet length mode. Length configured in PKTLEN register.
2021-09-17 - Update SD_ProtocolData.pm - remove register entry (#1017)

2021-09-17 - Update SD_ProtocolData.pm - remove register entry (#1017)
* Update SD_ProtocolData.pm
* Update 01_verifyFSK.t
* Update 01_SIGNALduino_Attr_rfmode.t
2021-09-08 - Fixes perlcritic prototypes in 14_SD_WS part 2 (#1013)

2021-09-08 - Fixes perlcritic prototypes in 14_SD_WS part 2 (#1013)
* Fixes perlcritic prototypes in 14_SD_WS
2021-08-30 - new protocol 115 for Bresser 6-in-1 and new 5-in-1 Comfort Wetter Center (#1010)

2021-08-30 - new protocol 115 for Bresser 6-in-1 and new 5-in-1 Comfort Wetter Center (#1010)
* 00_SIGNALduino.pm - add rfmode Bresser_6in1
* 14_SD_WS.pm - add protocol 115
* SD_ProtocolData.pm - add definition for protocol 115
Expand Down
34 changes: 30 additions & 4 deletions FHEM/00_SIGNALduino.pm
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# $Id: 00_SIGNALduino.pm v3.5.2 2021-12-19 18:11:16Z elektron-bbs $
# $Id: 00_SIGNALduino.pm v3.5.2 2022-01-08 20:06:52Z elektron-bbs $
# v3.5.2 - https://github.com/RFD-FHEM/RFFHEM/tree/master
# The module is inspired by the FHEMduino project and modified in serval ways for processing the incoming messages
# see http://www.fhemwiki.de/wiki/SIGNALDuino
Expand Down Expand Up @@ -38,7 +38,7 @@ use List::Util qw(first);


use constant {
SDUINO_VERSION => '3.5.2+20211219', # Datum wird automatisch bei jedem pull request aktualisiert
SDUINO_VERSION => '3.5.2+20220108', # Datum wird automatisch bei jedem pull request aktualisiert
SDUINO_INIT_WAIT_XQ => 1.5, # wait disable device
SDUINO_INIT_WAIT => 2,
SDUINO_INIT_MAXRETRY => 3,
Expand Down Expand Up @@ -4772,12 +4772,25 @@ USB-connected devices (SIGNALduino):<br>
<li>rfmode<br>
Configures the RF transceiver of the SIGNALduino (CC1101). The available arguments:
<ul>
<li>Avantek<br>
Modulation 2-FSK, Datarate=50.087 kbps, Sync Word=0869, FIFO-THR=8 Byte, Frequency 433.3 MHz
<ul><small>Example: AVANTEK Wireless Digital Door Bell</small></ul>
</li>
<li>Bresser_5in1<br>
modulation 2-FSK, Datarate=8.23 kbps, Sync Word=2DD4, FIFO-THR=28 Byte, frequency 868.35 MHz
Modulation 2-FSK, Datarate=8.23 kbps, Sync Word=2DD4, Packet Length=26 Byte, Frequency 868.35 MHz
<ul><small>Example: BRESSER 5-in-1 weather center, BRESSER rain gauge, Fody E42, Fody E43</small></ul>
</li>
<li>Bresser_6in1<br>
modulation 2-FSK, Datarate=8.23 kbps, Sync Word=2DD4, FIFO-THR=20 Byte, frequency 868.35 MHz
</li>
<li>Fine_Offset_WH51_434<br>
Modulation 2-FSK, Datenrate=17.26 kbps, Sync Word=2DD4, Packet Length=14 Byte, Frequency 433.92 MHz
<ul><small>Example: Soil moisture sensor Fine Offset WH51, ECOWITT WH51, MISOL/1, Froggit DP100</small></ul>
</li>
<li>Fine_Offset_WH51_868<br>
Modulation 2-FSK, Datenrate=17.26 kbps, Sync Word=2DD4, Packet Length=14 Byte, Frequency 868.35 MHz
<ul><small>Example: Soil moisture sensor Fine Offset WH51, ECOWITT WH51, MISOL/1, Froggit DP100</small></ul>
</li>
<li>KOPP_FC<br>
modulation GFSK, Datarate=4.7855 kbps, Sync Word=AA54, frequency 868.3MHz
</li>
Expand Down Expand Up @@ -5330,12 +5343,25 @@ USB-connected devices (SIGNALduino):<br>
<li>rfmode<br>
Konfiguriert den RF Transceiver des SIGNALduino (CC1101). Verf&uuml;gbare Argumente sind:
<ul>
<li>Avantek<br>
Modulation 2-FSK, Datarate=50.087 kbps, Sync Word=0869, FIFO-THR=8 Byte, Frequenz 433.3 MHz
<ul><small>Example: AVANTEK Funk-Türklingel</small></ul>
</li>
<li>Bresser_5in1<br>
Modulation 2-FSK, Datenrate=8.23 kbps, Sync Word=2DD4, FIFO-THR=28 Byte, Frequenz 868.35 MHz
Modulation 2-FSK, Datenrate=8.23 kbps, Sync Word=2DD4, Packet Length=26 Byte, Frequenz 868.35 MHz
<ul><small>Beispiel: BRESSER 5-in-1 Wetter Center, BRESSER Profi Regenmesser, Fody E42, Fody E43</small></ul>
</li>
<li>Bresser_6in1<br>
Modulation 2-FSK, Datenrate=8.23 kbps, Sync Word=2DD4, FIFO-THR=20 Byte, Frequenz 868.35 MHz
</li>
<li>Fine_Offset_WH51_434<br>
Modulation 2-FSK, Datenrate=17.26 kbps, Sync Word=2DD4, Packet Length=14 Byte, Frequenz 433.92 MHz
<ul><small>Beispiel: Bodenfeuchtesensor Fine Offset WH51, ECOWITT WH51, MISOL/1, Froggit DP100</small></ul>
</li>
<li>Fine_Offset_WH51_868<br>
Modulation 2-FSK, Datenrate=17.26 kbps, Sync Word=2DD4, Packet Length=14 Byte, Frequenz 868.35 MHz
<ul><small>Beispiel: Bodenfeuchtesensor Fine Offset WH51, ECOWITT WH51, MISOL/1, Froggit DP100</small></ul>
</li>
<li>KOPP_FC<br>
Modulation GFSK, Datenrate=4.7855 kbps, Sync Word=AA54, Frequenz 868.3MHz
</li>
Expand Down
74 changes: 72 additions & 2 deletions FHEM/14_SD_WS.pm
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# $Id: 14_SD_WS.pm 21666 2022-01-05 20:44:16Z elektron-bbs $
# $Id: 14_SD_WS.pm 21666 2022-01-08 20:06:52Z elektron-bbs $
#
# The purpose of this module is to support serval
# weather sensors which use various protocol
Expand Down Expand Up @@ -38,6 +38,7 @@
# 30.08.2021 PerlCritic - fixes for severity level 5 and 4
# 07.12.2021 Protokoll 33: Conrad S522 kein Batteriebit, dafuer Trend Temperatur
# 05.01.2022 Protokoll 108: neuer Sensor Fody E42
# 08.01.2022 neues Protokoll 107: Soil Moisture Sensor Fine Offset WH51, ECOWITT WH51, MISOL/1, Froggit DP100

package main;

Expand Down Expand Up @@ -86,6 +87,7 @@ sub SD_WS_Initialize {
"SD_WS_85_THW_.*" => { ATTR => "event-min-interval:.*:300 event-on-change-reading:.*", FILTER => "%NAME", GPLOT => "temp4hum4:Temp/Hum,", autocreateThreshold => "4:120"},
"SD_WS_89_TH.*" => { ATTR => "event-min-interval:.*:300 event-on-change-reading:.*", FILTER => "%NAME", GPLOT => "temp4hum4:Temp/Hum,", autocreateThreshold => "3:180"},
"SD_WS_94_T.*" => { ATTR => "event-min-interval:.*:300 event-on-change-reading:.*", FILTER => "%NAME", GPLOT => "temp4:Temp,", autocreateThreshold => "3:180"},
'SD_WS_107_H.*' => { ATTR => 'event-min-interval:.*:300 event-on-change-reading:.*', FILTER => '%NAME', GPLOT => q{}, autocreateThreshold => '2:180'},
'SD_WS_108.*' => { ATTR => 'event-min-interval:.*:300 event-on-change-reading:.*', FILTER => '%NAME', GPLOT => 'temp4:Temp,', autocreateThreshold => '5:120'},
'SD_WS_110_TR.*' => { ATTR => 'event-min-interval:.*:300 event-on-change-reading:.*', FILTER => '%NAME', GPLOT => 'temp4:Temp,', autocreateThreshold => '3:180'},
'SD_WS_111_TL.*' => { ATTR => 'event-min-interval:.*:300 event-on-change-reading:.*', FILTER => '%NAME', GPLOT => 'temp4:Temp,', autocreateThreshold => '3:600'},
Expand Down Expand Up @@ -140,6 +142,7 @@ sub SD_WS_Parse {
my $id;
my $bat;
my $batChange;
my $batVoltage;
my $sendmode;
my $channel;
my $rawTemp;
Expand All @@ -161,6 +164,7 @@ sub SD_WS_Parse {
my $beep;
my $distance;
my $uv;
my $adc;

my %decodingSubs = (
50 => # Protocol 50
Expand Down Expand Up @@ -699,6 +703,62 @@ sub SD_WS_Parse {
},
crcok => sub {return 1;}, # CRC test method does not exist
} ,
107 => {
# Fine Offset WH51, ECOWITT WH51, MISOL/1, Froggit DP100 Soil Moisture Sensor
# ---------------------------------------------------------------------------
# Byte: 00 01 02 03 04 05 06 07 08 09 10 11 12 13
# Nibble: 01 23 45 67 89 01 23 45 67 89 01 23 45 67
# aa aa aa 2d d4 51 00 6b 58 6e 7f 24 f8 d2 ff ff ff 3c 28
# MN;D=51 00 C6 BF 10 7F 23 F8 C7 FF FF FF 5D A1 ;R=14; H: 35
# FF II II II TB YY MM ZA AA XX XX XX CC SS
# FF: Family code 0x51 (ECOWITT/FineOffset WH51)
# IIIIII: ID (3 bytes)
# T: Transmission period boost: highest 3 bits set to 111 on moisture change and decremented each transmission, if T = 0 period is 70 sec, if T > 0 period is 10 sec
# B: Battery voltage: lowest 5 bits are battery voltage * 10 (e.g. 0x0c = 12 = 1.2V). Transmitter works down to 0.7V (0x07)
# YY: ? Fixed: 0x7f
# MM: Moisture percentage 0%-100% (0x00-0x64) MM = (AD - 70) / (450 - 70)
# Z: ? Fixed: leftmost 7 bit 1111 100
# AAA: 9 bit AD value MSB byte[07] & 0x01, LSB byte[08] ??? 10 bit ??? WH51 Manual.pdf says: 100%AD setting range:0%AD+10~1000
# XXXXXX: ? Fixed: 0xff 0xff 0xff
# CC: CRC of the preceding 12 bytes (Polynomial 0x31, Initial value 0x00, Input not reflected, Result not reflected)
# SS: Sum of the preceding 13 bytes % 256
sensortype => 'WH51, DP100, MISOL/1',
model => 'SD_WS_107_H',
prematch => sub { ($rawData,undef) = @_; return 1 if ($rawData =~ /^51[0-9A-F]{16}[F]{6}/); },
id => sub { my ($rawData,undef) = @_; return substr($rawData,2,6); },
batVoltage => sub { my (undef,$bitData) = @_; return round(SD_WS_binaryToNumber($bitData,35,39) / 10 , 1); },
adc => sub { my (undef,$bitData) = @_; return SD_WS_binaryToNumber($bitData,62,71); },
hum => sub { my ($rawData,undef) = @_; return hex(substr($rawData,12,2)); },
crcok => sub { my $rawData = shift;
my $rc = eval {
require Digest::CRC;
Digest::CRC->import();
1;
};
if ($rc) {
my $datacheck1 = pack( 'H*', substr($rawData,0,24) );
my $crcmein1 = Digest::CRC->new(width => 8, poly => 0x31);
my $rr3 = $crcmein1->add($datacheck1)->hexdigest;
if (hex($rr3) != hex(substr($rawData,24,2))) {
Log3 $name, 3, "$name: SD_WS_107 Parse msg $rawData - ERROR CRC8";
return 0;
}
} else {
Log3 $name, 1, "$name: SD_WS_107 Parse msg $rawData - ERROR CRC not load, please install modul Digest::CRC";
return 0;
}
my $checksum = 0;
for (my $i=0; $i < 26; $i += 2) {
$checksum += hex(substr($rawData,$i,2));
}
$checksum &= 255;
if ($checksum != hex(substr($rawData,26,2))) {
Log3 $name, 3, "$name: SD_WS_107 Parse msg $rawData - ERROR checksum";
return 0;
}
return 1;
}
} ,
108 => {
# https://github.com/merbanan/rtl_433/blob/master/src/devices/bresser_5in1.c
# The compact 5-in-1 multifunction outdoor sensor transmits the data on 868.3 MHz.
Expand Down Expand Up @@ -1305,12 +1365,14 @@ sub SD_WS_Parse {
$channel = $decodingSubs{$protocol}{channel}->( $rawData,$bitData ) if (exists($decodingSubs{$protocol}{channel}));
$model = $decodingSubs{$protocol}{model};
$bat = $decodingSubs{$protocol}{bat}->( $rawData,$bitData ) if (exists($decodingSubs{$protocol}{bat}));
$batVoltage = $decodingSubs{$protocol}{batVoltage}->( $rawData,$bitData ) if (exists($decodingSubs{$protocol}{batVoltage}));
$batChange = $decodingSubs{$protocol}{batChange}->( $rawData,$bitData ) if (exists($decodingSubs{$protocol}{batChange}));
$rawRainCounter = $decodingSubs{$protocol}{rawRainCounter}->( $rawData,$bitData ) if (exists($decodingSubs{$protocol}{rawRainCounter}));
$rain = $decodingSubs{$protocol}{rain}->( $rawData,$bitData ) if (exists($decodingSubs{$protocol}{rain}));
$rain_total = $decodingSubs{$protocol}{rain_total}->( $rawData,$bitData ) if (exists($decodingSubs{$protocol}{rain_total}));
$sendCounter = $decodingSubs{$protocol}{sendCounter}->( $rawData,$bitData ) if (exists($decodingSubs{$protocol}{sendCounter}));
$beep = $decodingSubs{$protocol}{beep}->( $rawData,$bitData ) if (exists($decodingSubs{$protocol}{beep}));
$adc = $decodingSubs{$protocol}{adc}->( $rawData,$bitData ) if (exists($decodingSubs{$protocol}{adc}));
if ($model eq "SD_WS_33_T" || $model eq "SD_WS_58_T") { # for SD_WS_33 or SD_WS_58 discrimination T - TH
$model = $decodingSubs{$protocol}{model}."H" if $hum != 0; # for models with Humidity
}
Expand Down Expand Up @@ -1480,6 +1542,7 @@ sub SD_WS_Parse {
readingsBulkUpdate($hash, 'windDirectionText', $winddirtxt) if (defined($winddirtxt)) ;
readingsBulkUpdate($hash, 'windGust', $windgust) if (defined($windgust)) ;
readingsBulkUpdate($hash, "batteryState", $bat) if (defined($bat) && length($bat) > 0) ;
readingsBulkUpdate($hash, "batteryVoltage", $batVoltage) if (defined($batVoltage));
readingsBulkUpdateIfChanged($hash, "batteryChanged", $batChange) if (defined($batChange));
readingsBulkUpdate($hash, "channel", $channel, 0) if (defined($channel)&& length($channel) > 0);
readingsBulkUpdate($hash, "trend", $trend) if (defined($trend) && length($trend) > 0);
Expand All @@ -1488,6 +1551,7 @@ sub SD_WS_Parse {
readingsBulkUpdate($hash, "sendmode", $sendmode) if (defined($sendmode) && length($sendmode) > 0);
readingsBulkUpdate($hash, "type", $SensorTyp, 0) if (defined($SensorTyp));
readingsBulkUpdate($hash, "beep", $beep) if (defined($beep));
readingsBulkUpdate($hash, "adc", $adc) if (defined($adc));
readingsBulkUpdate($hash, 'rain', $rain) if (defined($rain));
readingsBulkUpdate($hash, "rawRainCounter", $rawRainCounter) if (defined($rawRainCounter));
readingsBulkUpdate($hash, "rain_total", $rain_total) if (defined($rain_total));
Expand Down Expand Up @@ -1594,6 +1658,7 @@ sub SD_WS_WH2SHIFT {
<li>Bresser 5-in-1 and 6-in-1 Comfort Weather Center, 7009994, Professional rain gauge, Temeo</li>
<li>Conrad S522</li>
<li>EuroChron EFTH-800, EFS-3110A (temperature and humidity sensor)</li>
<li>Fine Offset WH51, aka ECOWITT WH51, aka Froggit DP100, aka MISOL/1 (soil moisture sensor)</li>
<li>Fody E42 (temperature and humidity sensor)</li>
<li>NC-3911, NC-3912 refrigerator thermometer</li>
<li>Opus XT300</li>
Expand Down Expand Up @@ -1634,8 +1699,10 @@ sub SD_WS_WH2SHIFT {
Some devices may not support all readings, so they will not be presented<br>
</ul>
<ul>
<li>adc (raw value from analog to digital converter)</li>
<li>batteryChanged (1)</li>
<li>batteryState (low or ok)</li>
<li>batteryVoltage (battery voltage in volts)</li>
<li>channel (number of channel</li>
<li>distance (distance in cm)</li>
<li>humidity (humidity (1-100 % only if available)</li>
Expand Down Expand Up @@ -1714,6 +1781,7 @@ sub SD_WS_WH2SHIFT {
<li>Bresser 5-in-1 und 6-in-1 Comfort Wetter Center, 7009994, Profi Regenmesser, Temeo</li>
<li>Conrad S522</li>
<li>EuroChron EFTH-800, EFS-3110A (Temperatur- und Feuchtigkeitssensor)</li>
<li>Fine Offset WH51, aka ECOWITT WH51, aka Froggit DP100, aka MISOL/1 (Bodenfeuchtesensor)</li>
<li>Fody E42 (Temperatur- und Feuchtigkeitssensor)</li>
<li>Kabelloses Grillthermometer, Modellname: GFGT 433 B1</li>
<li>NC-3911, NC-3912 digitales Kuehl- und Gefrierschrank-Thermometer</li>
Expand Down Expand Up @@ -1755,11 +1823,13 @@ sub SD_WS_WH2SHIFT {
<b>Generierte Readings:</b><br><br>
<ul>(verschieden, je nach Typ des Sensors)</ul>
<ul>
<li>adc (Roh-Wert vom Analog-Digital-Wandler)</li>
<li>batteryChanged (1)</li>
<li>batteryState (low oder ok)</li>
<li>batteryVoltage (Batteriespannung in Volt)</li>
<li>channel (Sensor-Kanal)</li>
<li>distance (Entfernung in cm)</li>
<li>humidity (Luftfeuchte, 1-100 %)</li>
<li>humidity (Luft-/Bodenfeuchte, 1-100 %)</li>
<li>humidityTrend (Trend Luftfeuchte, gleichbleibend, steigend, fallend)</li>
<li>rain (Regenmenge l/m&sup2;))</li>
<li>rain_total (Regenmenge l/m&sup2;))</li>
Expand Down
Loading