Übertragung einer BOB-Konfigurations-Datei auf hiveeyes / Terkin

Mit einem fertig konfigutierten BOB-Sensor-Kit läuft nicht so akurat 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?

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',
    },
},
1 Like