Mit einem fertig konfigurierten BOB-Sensor-Kit läuft die Datenerhebung nicht immer so akkurat wie wir gerne möchten, immer noch gibt es Schwankungen und Ausreißer bei der Waage (und den Temperatursensoren). Weiter kann man Daten an die Digitale Stockkarte und das Sensor-Daten-Panel des Bee Observer-Projekts unter https://bee-observer.org schicken, aber nicht an ein “ausgewachsenes” Visualisierungstool wie Grafana z.B. unter https://swarm.hiveeyes.org/grafana/.
Der hiveeyes / Terkin-Datenlogger hat den Vortel, dass die Sensoren zuverlässiger ausgelesen werden und weitere features. Wie kann ich nun mit einem bereits vorhandenen Bee Observer-Kit das nutzen?
- aktuelle
user_setting.json
auf dem FiPy sichern - (optional) jetzt bietet es sich an, gleich auf die neueste firmware zu wechseln mit
– erase_all
– aktuelle firmware aufspielen - letztes release von Releases · hiveeyes/terkin-datalogger · GitHub herunterladen, [edit] (Stand 2020-12-31)
terkin-datalogger-0.10.0-pycom-mpy-1.11.zip und lokal entpacken. - den gerade entpackten Ordner mit Atom öffnen
- nun in Atom die Datei
settings.example-bob.py
öffen und neu abspeichern untersettings.py
- die alte
user_setting.json
öffnen und z.B. mit https://jsonformatter.curiousconcept.com/ etwas übersichtlicher und hübscher formatieren (Atom kann das auch, wenn man das package atom-beautify installiert, dann mit Strg-Alt-B):
Diese Datei ist unsere Quelle:
user_setting.json von Bee Observer
{
"sensors":{
"hx711":{
"tare_offset":-569748.6,
"calibration_factor":23328
},
"ds1820":{
"positions":{
"t_i_5":"28ff641d8fd8778b",
"t_i_1":"28ff641d8fd4d5d5",
"t_i_2":"28ff641d8fd18ab0",
"t_i_3":"28ff641d8fd922ab",
"t_i_4":"28ff641d8fd833ac",
"t_o":"287e4d7997040320"
}
}
},
"networking":{
"wlan":{
"available":[
{
"channel":1,
"sec":3,
"rssi":-85,
"ssid":"WLAN FritBox A",
"bssid":"7cff4d716a6f"
},
{
"channel":1,
"sec":3,
"rssi":-86,
"ssid":"WLAN TP-Link",
"bssid":"7eff4d716a6f"
}
],
"ssid":"Meine konfigurierte WLAN-SSID",
"password":"mein-wlan-passwort",
"encryption":3
},
"accesspoint":{
"channel":4,
"ssid":"Heidelbeere",
"encryption":3,
"enabled":true,
"password":"hiverize"
}
},
"telemetry":{
"beep":{
"sensor_key":"mein-beep-key-fuer-volk-x"
}
},
"general":{
"general":{
"initial_time":1584724519177
}
}
}
Übertragung der Konfiguration
Nun müssen wir einzelne Parameter von oben in de settings.py
übertragen.
WLAN
Bee Observer
"wlan":{
"available":[
[...]
],
"ssid":"Meine konfigurierte WLAN-SSID",
"password":"mein-wlan-passwort",
"encryption":3
},
Hiveeyes
# WiFi stations to connect to in STA mode.
'stations': [
# Variant 1: Use DHCP.
# Variant 1a: Straight forward.
{'ssid': 'Meine konfigurierte WLAN-SSID', 'password': 'mein-wlan-passwort'},
Waage
Bee Observer
"hx711":{
"tare_offset":-569748,
"calibration_factor":23328
},
Hiveeyes
Bei scale
den calibration_factor
und
bei offset
den Wert von tare_offset
eintragen
{
'id': 'scale-1',
'number': 0,
'name': 'scale',
'description': 'Waage 1',
'type': 'HX711',
'enabled': True,
'pin_dout': 'P22',
'pin_pdsck': 'P21',
'scale': 23328,
'offset': -569748,
'decimals' : 3,
},
Temperatur / DS18B20
Bee Observer
"ds1820":{
"positions":{
"t_i_1":"28ff641d8fd4d5d5",
"t_i_2":"28ff641d8fd18ab0",
"t_i_3":"28ff641d8fd922ab",
"t_i_4":"28ff641d8fd833ac",
"t_i_5":"28ff641d8fd8778b",
"t_o":"287e4d7997040320"
}
}
Hiveeyes
Bei brood_1
einige Zeilen darüber das zugehörige Feld address
suchen und dort die ID von t_i_1
zuordnen, brood_2 ID von t_i_2
usw. Bei outside
dann die ID von t_o
{
'id': 'ds18b20-1',
'name': 'temperature',
'description': 'Wabengasse 1',
'type': 'DS18B20',
'enabled': True,
'bus': 'onewire:0',
'devices': [
{
'id': 'ds18b20-m1wg1',
'address': '28ff641d8fd4d5d5',
'description': 'Magazin 1, Wabengasse 1',
'enabled': True,
'telemetry_name': 'inside.temperature.brood_1',
'realm': 'inside',
'type': 'temperature',
'name': 'brood_1',
},
{
'id': 'ds18b20-m1wg3',
'address': '28ff641d8fd18ab0',
'description': 'Magazin 1, Wabengasse 3',
'enabled': True,
'telemetry_name': 'inside.temperature.brood_2',
'realm': 'inside',
'type': 'temperature',
'name': 'brood_2',
},
{
'id': 'ds18b20-m1wg5',
'address': '28ff641d8fd922ab',
'description': 'Magazin 1, Wabengasse 5',
'enabled': True,
'telemetry_name': 'inside.temperature.brood_3',
'realm': 'inside',
'type': 'temperature',
'name': 'brood_3',
},
{
'id': 'ds18b20-m1wg7',
'address': '28ff641d8fd833ac',
'description': 'Magazin 1, Wabengasse 7',
'enabled': True,
'telemetry_name': 'inside.temperature.brood_4',
'realm': 'inside',
'type': 'temperature',
'name': 'brood_4',
},
{
'id': 'ds18b20-m1wg9',
'address': '28ff641d8fd8778b',
'description': 'Magazin 1, Wabengasse 9',
'enabled': True,
'telemetry_name': 'inside.temperature.brood_5',
'realm': 'inside',
'type': 'temperature',
'name': 'brood_5',
},
{
'id': 'ds18b20-outside',
'address': '287e4d7997040320',
'description': 'outside',
'enabled': True,
'telemetry_name': 'outside.temperature',
'realm': 'outside',
'type': 'temperature',
'name': 'outside',
},
],
},
weiter unten dann die IDs nochmals entsprechend eintragen>
# DS18B20
"temperature.28ff641d8fd4d5d5.onewire:0": "t_i_1",
"temperature.28ff641d8fd18ab0.onewire:0": "t_i_2",
"temperature.28ff641d8fd922ab.onewire:0": "t_i_3",
"temperature.28ff641d8fd833ac.onewire:0": "t_i_4",
"temperature.28ff641d8fd8778b.onewire:0": "t_i_5",
"temperature.287e4d7997040320.onewire:0": "t_o",
Beep key
Bee Observer
"telemetry":{
"beep":{
"sensor_key":"mein-beep-key-fuer-volk-x"
}
},
Hiveeyes
# Beep telemetry: JSON over HTTP
{
# Enable/disable this telemetry target.
'enabled': True,
# Define telemetry endpoint and address information.
'endpoint': 'https://bee-observer.org/api/sensors',
'topology': 'beep-bob',
'data': {
'key': 'mein-beep-key-fuer-volk-x',
},
},