PanStamp Umweltsensor: Unterschied zwischen den Versionen
K (typos) |
K (→Links) |
||
(12 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
{{SEITENTITEL:panStamp}} | {{SEITENTITEL:panStamp Umweltsensor}} | ||
{{Infobox Hardware | {{Infobox Hardware | ||
|Bild= | |Bild=Arduino_Umweltsensor_v1.0_Fertig.jpg | ||
|Bildbeschreibung=panStamp | |Bildbeschreibung=panStamp Umweltsensor, fertig aufgebaut | ||
|HWProtocol=SWAP | |HWProtocol=SWAP | ||
|HWType=Sensor | |HWType=Sensor | ||
Zeile 13: | Zeile 13: | ||
|HWPoweredBy=Battery AA | |HWPoweredBy=Battery AA | ||
|HWSize=48.5 x 100 mm | |HWSize=48.5 x 100 mm | ||
|HWDeviceFHEM= | |HWDeviceFHEM={{Link2CmdRef|Anker=panStamp|Label=panStamp}}, {{Link2CmdRef|Anker=SWAP|Label=SWAP}} | ||
|ModOwner=für diesen Sketch: | |ModOwner=für diesen Sketch: {{Link2FU||118|}} | ||
|HWManufacturer=panStamp | |HWManufacturer=panStamp | ||
}} | }} | ||
[http://www.panstamp.com/home panStamps] sind [[Arduino]] Clones, die ein CC1101 Funkmodul beinhalten. Mit ihnen lassen sich Sensoren und Aktoren drahtlos an FHEM anbinden. Sie lassen sich genau wie Arduinos über die Arduino IDE oder mit dem ino Kommandozeilen Binary programmieren. Dieser bildet das Herzstück des Umweltsensors | [http://www.panstamp.com/home panStamps] sind [[Arduino]] Clones, die ein CC1101 Funkmodul beinhalten. Mit ihnen lassen sich Sensoren und Aktoren drahtlos an FHEM anbinden. Sie lassen sich genau wie Arduinos über die Arduino IDE oder mit dem ino Kommandozeilen Binary programmieren. Dieser bildet das Herzstück des Umweltsensors | ||
Weiterführende Information zu panStamps und den grundlegenden Modulen um sie mit | Weiterführende Information zu panStamps und den grundlegenden Modulen um sie mit FHEM zu integrieren finden sich auf der [[panStamp]] Seite in diesem Wiki. | ||
== Beschreibung == | == Beschreibung == | ||
Der auf dem panStamp (Arduino328p) basierende Umweltsensor hat die folgenden Eigenschaften: | |||
Der auf dem | |||
* 4x Analogeingänge | * 4x Analogeingänge | ||
* Helligkeitserfassung per TSL2561 | * Helligkeitserfassung per TSL2561 | ||
Zeile 33: | Zeile 31: | ||
* Messung der Batteriespannung | * Messung der Batteriespannung | ||
* Messung der Solarspannung | * Messung der Solarspannung | ||
* Anpassbare | * Anpassbare Messfrequenz für Tag und Nacht | ||
* passt alles in ein ELV IP65 (Nr: G203/G203C) Gehäuse und ist damit geeignet für den Außeneinsatz | * passt alles in ein ELV IP65 (Nr: G203/G203C) Gehäuse und ist damit geeignet für den Außeneinsatz | ||
Zeile 41: | Zeile 39: | ||
* Target3001 Dateien | * Target3001 Dateien | ||
Unbestückte Platinen können beim | Unbestückte Platinen können beim {{Link2FU|118|Ersteller}} angefragt und, falls vorrätig, erworben werden. | ||
'''WICHTIG!''' Schaltplan und Platinen sind für den Panstamp AVR 1. | |||
== Schaltplan und Bauteilliste == | == Schaltplan und Bauteilliste == | ||
Zeile 47: | Zeile 47: | ||
[[Datei:Arduino_Umweltsensor_v1.0_Platine_Oben.jpg|200px|thumb|right|Platinenlayout Oberseite]] | [[Datei:Arduino_Umweltsensor_v1.0_Platine_Oben.jpg|200px|thumb|right|Platinenlayout Oberseite]] | ||
[[Datei:Arduino_Umweltsensor_v1.0_Platine_Unten.jpg|200px|thumb|right|Platinenlayout Unterseite]] | [[Datei:Arduino_Umweltsensor_v1.0_Platine_Unten.jpg|200px|thumb|right|Platinenlayout Unterseite]] | ||
[[Datei:Arduino_Umweltsensor_v1.0_Fertig.jpg|200px|thumb|right|fertiger Aufbau]] | |||
[[Datei:Arduino_Umweltsensor_v1.0_Plot1.jpg|200px|thumb|right|Plot Nr 1]] | |||
Bauteilliste: | Bauteilliste: | ||
Zeile 129: | Zeile 131: | ||
| SMD-0805 4,70K | | SMD-0805 4,70K | ||
71-CRCW0805-4.7K-E3 | 71-CRCW0805-4.7K-E3 | ||
|- | |- | ||
| J1 | | J1 | ||
| Stiftleiste 1x5Pol | | Stiftleiste 1x5Pol | ||
Zeile 194: | Zeile 191: | ||
| -- | | -- | ||
| DHT22 | | DHT22 | ||
| | | | ||
| | | | ||
|- | |- | ||
| -- | | -- | ||
| BMP180 | | BMP180 | ||
| | | | ||
| | | | ||
|- | |- | ||
| -- | | -- | ||
| TSL2561 | | TSL2561 | ||
| | | | ||
| | | | ||
|- | |- | ||
| -- | | -- | ||
| Dallas DS18B20 | | Dallas DS18B20 | ||
| | | | ||
| | | | ||
|} | |} | ||
== Hinweise zum Aufbau== | == Hinweise zum Aufbau== | ||
Soll kein 1Wire genutzt werden, so wird empfohlen den R4 (4k7) nicht zu bestücken da dieser Pullup bei jedem Messvorgang bei denen 1wire/DHT22/BMP180 oder TSL2561 involviert sind zusätzlich die Batterie belasten. | Soll kein 1Wire genutzt werden, so wird empfohlen, den R4 (4k7) nicht zu bestücken, da dieser Pullup bei jedem Messvorgang, bei denen 1wire/DHT22/BMP180 oder TSL2561 involviert sind, zusätzlich die Batterie belasten würde. | ||
Soll kein DHT22 genutzt werden, so wird empfohlen R3 und C7 (4k7) nicht zu bestücken da beide bei jedem Messvorgang bei denen 1wire/DHT22/BMP180 oder TSL2561 involviert sind zusätzlich die Batterie belasten. | Soll kein DHT22 genutzt werden, so wird empfohlen R3 und C7 (4k7) nicht zu bestücken, da beide bei jedem Messvorgang, bei denen 1wire/DHT22/BMP180 oder TSL2561 involviert sind, zusätzlich die Batterie belasten. | ||
== Hinweise zum Betrieb mit FHEM == | == Hinweise zum Betrieb mit FHEM == | ||
===Configuration=== | ===Configuration=== | ||
Nach upload des Sketches auf den Panstamp ist zuerst die korrekte Kennung über das Register 09 sowie der gewünschte Sendezyklus über das Register 0A zu setzen (siehe | Nach upload des Sketches auf den Panstamp ist zuerst die korrekte Kennung über das Register 09 sowie der gewünschte Sendezyklus über das Register 0A zu setzen (siehe [[panStamp#Neue panStamps in Betrieb nehmen|Inbetriebname im Wiki Artikel]] zu den panStamps). | ||
Anschließend ist die Konfiguration mittels Register 0B zu setzen: | Anschließend ist die Konfiguration mittels Register 0B zu setzen: | ||
{| class="wikitable" | {| class="wikitable" | ||
Zeile 246: | Zeile 243: | ||
| 1 Byte | | 1 Byte | ||
| 6 | | 6 | ||
| Type:1 -> Nutzung des Solarwertes ; Type:2 -> Nutzung der Helligkeit vom TSL2561 | | Type:1 -> Nutzung des Solarwertes; Type:2 -> Nutzung der Helligkeit vom TSL2561 | ||
|- | |- | ||
| Day/NigthShift Threshold | | Day/NigthShift Threshold | ||
| 3 Byte | | 3 Byte | ||
| 7+8+9 | | 7+8+9 | ||
| Schwellwert bei dem Day/Night umgeschaltet werden soll, Type 1: in mV ;Type 2: in Lum | | Schwellwert bei dem Day/Night umgeschaltet werden soll, Type 1: in mV; Type 2: in Lum | ||
|- | |- | ||
| Day/NightShift TX Intervall | | Day/NightShift TX Intervall | ||
| 2 Byte | | 2 Byte | ||
| 10+11 | | 10+11 | ||
| Intervall in Sekunden im Tagesrhythmus, | | Intervall in Sekunden im Tagesrhythmus, das "normale" TX_INTERVAL (Register 0A) ist dann NachtRhythmus | ||
|- | |- | ||
| HAS_Analog4 | | HAS_Analog4 | ||
Zeile 291: | Zeile 288: | ||
| 1Bit | | 1Bit | ||
| 13.2 | | 13.2 | ||
| Ein | | Ein Helligkeitssensor TSL2561 ist angeschlossen und soll ausgelesen werden. | ||
|- | |- | ||
| HAS_BMP180 | | HAS_BMP180 | ||
Zeile 320: | Zeile 317: | ||
===Nutzung von unterschiedlichen Sendeintervallen bei Tag/Nacht=== | ===Nutzung von unterschiedlichen Sendeintervallen bei Tag/Nacht=== | ||
Soll das Sendeintervall tagsüber anders sein als in der Nacht, so ist dies über die Day/NightShift Funktionen einzustellen. Beispielsweise soll der Umweltsensor für eine Rolladensteuerung benutzt werden. Dann ist es besser die Messung minütlich durchzuführen. In der Nacht wäre dann | Soll das Sendeintervall tagsüber anders sein als in der Nacht, so ist dies über die Day/NightShift Funktionen einzustellen. Beispielsweise soll der Umweltsensor für eine Rolladensteuerung benutzt werden. Dann ist es besser, die Messung minütlich durchzuführen. In der Nacht wäre dann 10-minütlich ausreichend. | ||
Über den ConfigParameter "Day/ | Über den ConfigParameter "Day/NightShift Type" kann angegeben werden, auf welcher Grundlage die Tag/Nachterkennung stattfinden soll. Entweder über eine Solarspannung, die normalerweise nur am Tage vorliegt, oder über eine Helligkeitsmessung des TSL2561, falls einer bestückt ist. In beiden Fällen wird über "Day/NightShift Threshold" der Schwellwert angegeben an welchem Punkt die Tag/Nacht Grenze gesetzt werden soll. Bei Nutzung von Solarspannung ist hier der Schwellwert in mV anzugeben (zb. 500 für 0.5V) oder in Lumen als gemessener Lumenwert des TSL2561. Hier sollte man vorher die Messerte der jeweiligen Sensoren über einige Tage genau beobachten, um einen geeigneten Wert zu finden. | ||
Durch die | Durch die Angabe des Intervalls mit "Day/NightShift TX Intervall" wird das Sendeintervall für den Tagrhythmus angegeben. Das Standardsendeintervall aus dem Register 0A ist für den Nachtrhythmus verantwortlich. | ||
===Setzen der Konfiguration=== | ===Setzen der Konfiguration=== | ||
Zeile 347: | Zeile 344: | ||
| 0035 | | 0035 | ||
|- | |- | ||
| Day/ | | Day/NightShift Type | ||
| 1 | | 1 | ||
| | | | ||
| 01 | | 01 | ||
|- | |- | ||
| Day/ | | Day/NightShift Threshold | ||
| 1000mV | | 1000mV | ||
| | | | ||
Zeile 440: | Zeile 437: | ||
In obigem Fall ist das Konfigurationsregister wie folgt aufgebaut: ''A8C0 0064 0035 01 0003E8 003C 0C 09 0B'' | In obigem Fall ist das Konfigurationsregister wie folgt aufgebaut: ''A8C0 0064 0035 01 0003E8 003C 0C 09 0B'' | ||
Aufgrunddessen wird die Konfiguration folgendermaßen gesetzt: | Aufgrunddessen wird die Konfiguration folgendermaßen gesetzt: | ||
:<code>set <MySwapDevice> regSet 0B A8C000640035010003E8003C0C090B</code> | |||
Es ist auch möglich die einzelnen Endpoints unabhängig voneinander zu setzen, z.B.: | |||
:<code>set <MySwapDevice> regSet 0B.17 1</code> | |||
===Synchronisation mit der Zentrale=== | |||
Jede Synchronisation kostet zusätzlichen Strom und belastet damit die Batterie. Allerdings benötigt man eine Synchronisation, um Befehle von der Zentrale entgegenzunehmen, z.B. für eine neue Konfiguration. Im Normalfall benötigt man keine automatisierte Synchronisation, da mit Druck auf den Reset-Button ebenfalls eine Synchronisation erfolgt. | |||
Hat man aber ein Szenario vorliegen, bei dem FHEM automatisiert die Konfiguration ändern soll, so ist ein SyncIntervall notwendig. Um die automatisierte Synchronisation abzuschalten, ist als Wert 0000 zu setzen. | |||
Hat man aber ein Szenario vorliegen, | |||
===Nutzung von mehreren DS18B20=== | ===Nutzung von mehreren DS18B20=== | ||
Die Messwerte für die 1wire Temperatursensoren werden in einem einzelnen Register 0E übertragen. Das bedeutet, falls mehrere DS18B20 am Bus | Die Messwerte für die 1wire Temperatursensoren werden in einem einzelnen Register 0E übertragen. Das bedeutet, falls mehrere DS18B20 am Bus angeschlossen sind, überschreiben diese sich gegenseitig. Dieses Verhalten ist aber vom Autor so gewollt, um eine gewissen Generik zu gewährleisten. | ||
Um nun auf die einzelnen Messerte in FHEM | Um nun auf die einzelnen Messerte in FHEM Zugriff zu bekommen, schafft folgendes [[userReadings|userReading]] Abhilfe: | ||
:<code>attr <MySwapDevice> userReadings Temperature_Sun:0E.1-1wire_Address:.*28D6CF710400009C {SWAP_1wire($name)}</code> | |||
Die im Beispiel verwendete 1Wire ID ist natürlich an die eigenen Gegebenheiten anzupassen. Pro angeschlossenem DS18B20 ist ein weiteres userReading anzulegen. | |||
Anschließend ist folgende Prozedur in | Anschließend ist folgende Prozedur in [[99 myUtils anlegen|myUtils]] zu ergänzen: | ||
sub SWAP_1wire( | <source lang="perl"> | ||
my ($SwapDevice | sub SWAP_1wire($) { | ||
my ($SwapDevice) = @_; | |||
return (hex(ReadingsVal($SwapDevice, "0E.0-1wire_Temperature", ""))*0.01) - 50; | |||
} | } | ||
</source> | |||
Nun wird pro eindeutiger 1Wire-ID ein neues Reading erzeugt, welches den Messwert enthält. | |||
== Weitere Hinweise == | == Weitere Hinweise == | ||
Zeile 469: | Zeile 467: | ||
== Links == | == Links == | ||
[https:// | * [https://github.com/tobiasfaust/Panstamp_AVR_EnvironmentSensor Alle Dateien im GitHub] | ||
* [https://www.tindie.com/products/miceuz/i2c-soil-moisture-sensor/ Bodenfeuchtesensor auf I2C-Basis] | |||
* [http://vegetronix.com/Products/VH400/ Vegetronix Bodenfeuchtesensor] | |||
* [http://www.amazon.com/Arduino-compatible-Sensitivity-Moisture-Sensor/dp/B00AFCNR3U LowCost Arduino compatible High Sensitivity Moisture Sensor] | |||
[[Kategorie: | [[Kategorie:panStamp]] | ||
[[Kategorie:Temperatursensoren]] | [[Kategorie:Temperatursensoren]] | ||
[[Kategorie:Feuchtesensoren]] | [[Kategorie:Feuchtesensoren]] | ||
[[Kategorie:Lichtsensoren]] | [[Kategorie:Lichtsensoren]] | ||
[[Kategorie:1-Wire]] |
Aktuelle Version vom 26. Mai 2020, 13:42 Uhr
PanStamp Umweltsensor | |
---|---|
Allgemein | |
Protokoll | SWAP |
Typ | Sensor |
Kategorie | HardwareMods |
Technische Details | |
Kommunikation | 868MHz (433/915MHz) |
Kanäle | |
Betriebsspannung | 3.3V |
Leistungsaufnahme | |
Versorgung | Battery AA |
Abmessungen | 48.5 x 100 mm |
Sonstiges | |
Modulname | panStamp, SWAP |
Ersteller | für diesen Sketch: Vorlage Link2FU wurde falsch eingebunden |
Hersteller | panStamp |
panStamps sind Arduino Clones, die ein CC1101 Funkmodul beinhalten. Mit ihnen lassen sich Sensoren und Aktoren drahtlos an FHEM anbinden. Sie lassen sich genau wie Arduinos über die Arduino IDE oder mit dem ino Kommandozeilen Binary programmieren. Dieser bildet das Herzstück des Umweltsensors
Weiterführende Information zu panStamps und den grundlegenden Modulen um sie mit FHEM zu integrieren finden sich auf der panStamp Seite in diesem Wiki.
Beschreibung
Der auf dem panStamp (Arduino328p) basierende Umweltsensor hat die folgenden Eigenschaften:
- 4x Analogeingänge
- Helligkeitserfassung per TSL2561
- Temperatur- und Luftfeuchtemessung mit DHT22
- Luftdruck- und Temperaturmessung per BMP180
- Anschluss von 1..n 1wire Temperatursensoren DS18B20
- Messung der Batteriespannung
- Messung der Solarspannung
- Anpassbare Messfrequenz für Tag und Nacht
- passt alles in ein ELV IP65 (Nr: G203/G203C) Gehäuse und ist damit geeignet für den Außeneinsatz
Alle benötigten Dateien sind hier zu finden:
- Sketch
- EnvironmentSensor.xml
- Target3001 Dateien
Unbestückte Platinen können beim Ersteller angefragt und, falls vorrätig, erworben werden.
WICHTIG! Schaltplan und Platinen sind für den Panstamp AVR 1.
Schaltplan und Bauteilliste
Bauteilliste:
Bauteil | Bezeichnung | Shop | BauteilNr |
---|---|---|---|
L1 | LQH4C Speicherdrossel | Mouser.com
Reichelt Reichelt |
81-LQH43CN100K03L
L-1212FPS 10µ L-1616FPS 10µ |
C1, C2 | Keramikkondensator Typ:X7R 10uf | Reichelt
Mouser.com |
X5R-G0805 10/16
810-CGJ4J1X7R0J106AC |
C3 | Keramikkondensator Typ:X7R 1uF | Reichelt
Mouser.com |
X7R-G0805 1,0/16
810-C2012X5R1C105K-2 |
C4, C7 | Keramikkondensator Typ:X7R 100nF | Reichelt
Mouser.com |
X7R-G0805 100N
581-0805YD104KAT2A |
IC1 | MAX1724 Schaltregler 1.5uA IQ Step-Up DC/DC Converter | Mouser.com
tme.eu Ebay: G&C Supermarket |
MAX1724EZK33T
MAX1724EZK33+T MAX1724 |
K1,K2,K3,K4,K5 | Anreihklemme 3,5mm 3Pol | IT-WNS | AK-3.5-3-GY |
R1 | Widerstandsnetzwerk 100K | Reichelt | SIL 5-4 100K |
R2 | SMD Widerstand 1k | Reichelt
Mouser.com |
SMD-0805 1K
71-CRCW0805-1.0K-E3 |
R3 | SMD Widerstand 10k | Reichelt
Mouser.com |
SMD-0805 10K
71-CRCW0805-10K-E3 |
R4 | SMD Widerstand 4k7 | Reichelt
Mouser.com |
SMD-0805 4,70K
71-CRCW0805-4.7K-E3 |
J1 | Stiftleiste 1x5Pol | Reichelt | MPE 087-1-005 |
D1 | LED 3mm LowCurrent 2mA | Reichelt | LED 3MM 2MA GN |
TASTER | Reset TASTER 9314 | Reichelt | TASTER 9314 |
Batteriehalter | Batteriehalter 1x AA Mignon(Akku) | Reichelt | HALTER 1XAAP |
K7 | Anschluss Solarpanel (VERT PCB 2Pin TIN FRICTION LOCK) | Reichelt
Mouser |
zb. MPE 087-1-002
538-22-23-2021 |
D2 | BAV70 Schaltdiode SMD, SOT-23, 250V, 1A | Reichelt | BAV 70 SMD |
T1 | BCW 61 Transistor SMD PNP SOT-23 32V 0,1A 0,25W | Reichelt | BCW 61C SMD |
T2 | BC847 Transistor SMD NPN SOT-23 45V 0,1A 0,25W | Reichelt | BC 847B SMD |
T3 | BSS138 Transistor SMD N-FET SOT-23 50V 0,22A | Reichelt | BSS 138 SMD |
IC | panStamp AVR | panstamp.com | panStamp AVR |
-- | Female Header 2,54 mm, 1X16, straight | Reichelt | MPE 094-1-016 |
-- | DHT22 | ||
-- | BMP180 | ||
-- | TSL2561 | ||
-- | Dallas DS18B20 |
Hinweise zum Aufbau
Soll kein 1Wire genutzt werden, so wird empfohlen, den R4 (4k7) nicht zu bestücken, da dieser Pullup bei jedem Messvorgang, bei denen 1wire/DHT22/BMP180 oder TSL2561 involviert sind, zusätzlich die Batterie belasten würde.
Soll kein DHT22 genutzt werden, so wird empfohlen R3 und C7 (4k7) nicht zu bestücken, da beide bei jedem Messvorgang, bei denen 1wire/DHT22/BMP180 oder TSL2561 involviert sind, zusätzlich die Batterie belasten.
Hinweise zum Betrieb mit FHEM
Configuration
Nach upload des Sketches auf den Panstamp ist zuerst die korrekte Kennung über das Register 09 sowie der gewünschte Sendezyklus über das Register 0A zu setzen (siehe Inbetriebname im Wiki Artikel zu den panStamps). Anschließend ist die Konfiguration mittels Register 0B zu setzen:
Bezeichnung | Länge | Position | Beschreibung |
---|---|---|---|
Sync Intervall | 2 Byte | 0+1 | Intervall in Sekunden zur Synronisation mit der Zentrale. 0000 ist deaktiviert |
SendDelay | 2 Byte | 2+3 | Sendeverzögerung in ms zwischen dem Senden von mehreren Registern. Soll Sendeüberlagerung bei Nutzung von Repeatern minimieren |
Altitude | 2 Byte | 4+5 | Angabe des Standortes des Sensors in Höhenmetern ünN. Notwendig zur Berechnung von SeaLevelPressure |
Day/NichtShift Type | 1 Byte | 6 | Type:1 -> Nutzung des Solarwertes; Type:2 -> Nutzung der Helligkeit vom TSL2561 |
Day/NigthShift Threshold | 3 Byte | 7+8+9 | Schwellwert bei dem Day/Night umgeschaltet werden soll, Type 1: in mV; Type 2: in Lum |
Day/NightShift TX Intervall | 2 Byte | 10+11 | Intervall in Sekunden im Tagesrhythmus, das "normale" TX_INTERVAL (Register 0A) ist dann NachtRhythmus |
HAS_Analog4 | 1Bit | 12.0 | Die analoge Spannung am A3 wird gemessen. VCC liegt an D3 an. |
HAS_Analog3 | 1Bit | 12.1 | Die analoge Spannung am A2 wird gemessen. VCC liegt an D3 an. |
HAS_Analog2 | 1Bit | 12.2 | Die analoge Spannung am A1 wird gemessen. VCC liegt an D6 an. |
HAS_Analog1 | 1Bit | 12.3 | Die analoge Spannung am A0 wird gemessen. VCC liegt an D7 an. |
HAS_DS18B20 | 1Bit | 13.0 | Ein oder mehrere DS18B20 sind angeschlossen und sollen ausgelesen werden |
HAS_DHT22 | 1Bit | 13.1 | Ein DHT22 ist angeschlossen und soll ausgelesen werden |
HAS_TSL2561 | 1Bit | 13.2 | Ein Helligkeitssensor TSL2561 ist angeschlossen und soll ausgelesen werden. |
HAS_BMP180 | 1Bit | 13.3 | Ein Luftdrucksensor BMP180 ist angeschlossen und soll ausgelesen werden. |
Transmit BatVol | 1Bit | 14.0 | Die aktuelle Batteriespannung soll übermittelt werden. |
Transmit SolarVol | 1Bit | 14.1 | Die aktuelle Spannung von der Solarzelle soll übermittelt werden. |
Enable Debug LED | 1Bit | 14.2 | Aktivierung der LED als Debug Ausgabe zur Initialisierung und zu jedem Sendezeitpunkt |
Enable Day/NightShift | 1Bit | 14.3 | Die Sendeintervalle für Tag und Nachtrhythmus sollen aktiviert werden |
Nutzung von unterschiedlichen Sendeintervallen bei Tag/Nacht
Soll das Sendeintervall tagsüber anders sein als in der Nacht, so ist dies über die Day/NightShift Funktionen einzustellen. Beispielsweise soll der Umweltsensor für eine Rolladensteuerung benutzt werden. Dann ist es besser, die Messung minütlich durchzuführen. In der Nacht wäre dann 10-minütlich ausreichend. Über den ConfigParameter "Day/NightShift Type" kann angegeben werden, auf welcher Grundlage die Tag/Nachterkennung stattfinden soll. Entweder über eine Solarspannung, die normalerweise nur am Tage vorliegt, oder über eine Helligkeitsmessung des TSL2561, falls einer bestückt ist. In beiden Fällen wird über "Day/NightShift Threshold" der Schwellwert angegeben an welchem Punkt die Tag/Nacht Grenze gesetzt werden soll. Bei Nutzung von Solarspannung ist hier der Schwellwert in mV anzugeben (zb. 500 für 0.5V) oder in Lumen als gemessener Lumenwert des TSL2561. Hier sollte man vorher die Messerte der jeweiligen Sensoren über einige Tage genau beobachten, um einen geeigneten Wert zu finden. Durch die Angabe des Intervalls mit "Day/NightShift TX Intervall" wird das Sendeintervall für den Tagrhythmus angegeben. Das Standardsendeintervall aus dem Register 0A ist für den Nachtrhythmus verantwortlich.
Setzen der Konfiguration
Ein Register ist als Hex-Wert zu setzen. Folgende Tabelle zeigt eine exemplarische Konfiguration:
Bezeichnung | Wert | Binär Wert | Hex Wert |
---|---|---|---|
Sync Intervall | 12h -> 43200s | A8C0 | |
SendDelay | 100ms | 0064 | |
Altitude | 53m | 0035 | |
Day/NightShift Type | 1 | 01 | |
Day/NightShift Threshold | 1000mV | 0003E8 | |
Day/NightShift TX Intervall | 60s | 003C | |
HAS_Analog4 | nein | 0 | |
HAS_Analog3 | nein | 0 | |
HAS_Analog2 | ja | 1 | |
HAS_Analog1 | ja | 1 | |
00001100 | 0C | ||
HAS_DS18B20 | ja | 1 | |
HAS_DHT22 | nein | 0 | |
HAS_TSL2561 | nein | 0 | |
HAS_BMP180 | nein | 1 | |
00001001 | 09 | ||
Transmit BatVol | ja | 1 | |
Transmit SolarVol | ja | 1 | |
Enable Debug LED | nein | 0 | |
Enable Day/NightShift | ja | 1 | |
00001011 | 0B |
In obigem Fall ist das Konfigurationsregister wie folgt aufgebaut: A8C0 0064 0035 01 0003E8 003C 0C 09 0B Aufgrunddessen wird die Konfiguration folgendermaßen gesetzt:
set <MySwapDevice> regSet 0B A8C000640035010003E8003C0C090B
Es ist auch möglich die einzelnen Endpoints unabhängig voneinander zu setzen, z.B.:
set <MySwapDevice> regSet 0B.17 1
Synchronisation mit der Zentrale
Jede Synchronisation kostet zusätzlichen Strom und belastet damit die Batterie. Allerdings benötigt man eine Synchronisation, um Befehle von der Zentrale entgegenzunehmen, z.B. für eine neue Konfiguration. Im Normalfall benötigt man keine automatisierte Synchronisation, da mit Druck auf den Reset-Button ebenfalls eine Synchronisation erfolgt.
Hat man aber ein Szenario vorliegen, bei dem FHEM automatisiert die Konfiguration ändern soll, so ist ein SyncIntervall notwendig. Um die automatisierte Synchronisation abzuschalten, ist als Wert 0000 zu setzen.
Nutzung von mehreren DS18B20
Die Messwerte für die 1wire Temperatursensoren werden in einem einzelnen Register 0E übertragen. Das bedeutet, falls mehrere DS18B20 am Bus angeschlossen sind, überschreiben diese sich gegenseitig. Dieses Verhalten ist aber vom Autor so gewollt, um eine gewissen Generik zu gewährleisten. Um nun auf die einzelnen Messerte in FHEM Zugriff zu bekommen, schafft folgendes userReading Abhilfe:
attr <MySwapDevice> userReadings Temperature_Sun:0E.1-1wire_Address:.*28D6CF710400009C {SWAP_1wire($name)}
Die im Beispiel verwendete 1Wire ID ist natürlich an die eigenen Gegebenheiten anzupassen. Pro angeschlossenem DS18B20 ist ein weiteres userReading anzulegen.
Anschließend ist folgende Prozedur in myUtils zu ergänzen:
sub SWAP_1wire($) {
my ($SwapDevice) = @_;
return (hex(ReadingsVal($SwapDevice, "0E.0-1wire_Temperature", ""))*0.01) - 50;
}
Nun wird pro eindeutiger 1Wire-ID ein neues Reading erzeugt, welches den Messwert enthält.
Weitere Hinweise
Keine.