Einer mehr aus Berlin


#1

Guten Tag allesamt!
Herzlichen Dank für die Aufnahme.
Ich heiße Clemens (das wird hoffentlich keine Verwirrung geben :-D), Hobbyimker mit aktuell sieben Völkern auf Dadant im schönen Moabit. Jobtechnisch bin ich Umweltingenieur und an der Uni als WiMi unterwegs. Messtechnik und Datenauswertung sind also nicht gänzlich unbekannt für mich ;-) Gedanklich schleiche ich schon einige Zeit um eure schönen Projekte herum. Sowohl Waage als auch die akustische Vermessung der Völker möchte ich gerne realisieren und natürlich auch gerne meine Erfahrungen und Ideen zur Verfügung stellen.
Um vom Gedankenspiel in die Praxis zu kommen habe ich auf meinem Server erstmal damit gefochten mir Influx und Grafana zu installieren und damit ein wenig herumzuspielen - ich will also gern selbst hosten und die Eigenständigkeit genießen.
Hardwaretechnisch bin ich in den letzten Wochen schon etwas vorangeschritten, ein solar-beelogger und zwei Bosche H30A sollen zum Start genutzt werden, der Logger ist in der Bauphase und die Wägezellen liegen schon eine Zeit rum.
Eine gute Wägeplattform habe ich noch nicht, die wird sich aber auch finden. Bei mir ist erfahrungsgemäß das Luxusproblem der Auswahl einer aus zu vielen
Möglichkeiten der zeitfressende Schritt.
Ich wünsch euch erstmal eine gutes Bienenjahr 2019!


#2

Hallo @Cle21, schön weitere Mitstreiter – auch in Berlin! – zu haben. Selbst hosten ist klasse, das wollen wir auch auf jeden Fall ermöglichen. Manchmal und für den Anfang kann es aber auch hilfreich sein an ein bestehendes System von dem man weiß, dass es funktioniert Daten zu schicken, das kannst du gerne vorab oder parallel tun, Wir haben an Grafana einiges herumgeschraubt und @wtf hat tolle Visualisierungen gebaut. Lass dich da gerne inspirieren. Weiter haben wir mit BOB ein Projekt am Laufen, das Leuten möglichst einfach Zugang und eine einfache Bauanleitung für den Hardware-Teil erlauben soll. Vielleicht ist das ein Punkt, um zu starten. Viele Grüße Clemens (G. ;-)


#3

Definieren wir eigentlich mal nen Stammtisch? Noch so nen Berliner! (:


#4

Ich bin dafür.


#5

So, mittlerweile wurde gesägt, geschweißt, getippt, gelötet.
Der erste Chip ist erstmal ein Esp32 geworden - ich hab die 8266er MQTT Firmware aus dem Git Rep dafür und für Json6 umgebaut. Scheint zu tun was es soll.
Der Debugger war zu hoch für mich, der ist rausgeflogen.
Mosquitto, nodered, influxdb und Grafana zucken auch bereits.
Jetzt müssen noch Sensorkabel und Kalibierungen erledigt werden, vielleicht gehts morgen ja schon los mit dem wiegen.


Moin ich bin Michael aus Schleswig Holstein
#6

Was mich ja spontan begeistert hat ist die Telegram Einbindung in nodered - lässt sich da schon jemand von euch was aus der Datenbank getriggertes aufs Handy zurück schicken?


#7

Hi Clemens,

schön dass Du weiterkommst! Ein paar neugierige Rückfragen haben wir da natürlich gleich ;].

Firmware

Exzellent! Du meinst die node-wifi-mqtt, ja? Schön zu hören, dass die auch gut auf dem ESP32 tut!

Danke, @clemens hatte das neulich auch angemerkt, dass es für die ArduinoJson Bibliothek Version 6.x ein paar Anpassungen braucht. Wenn Du Deinen Code mit uns teilen willst und bestätigen kannst, dass damit alles gut klappt, stelle ihn doch gerne zur Verfügung, dann können wir das entsprechende Upgrade auch Upstream durchziehen – pull requests welcome ;].

Was genau, wie genau? Wenn da irgendwas drin ist, was die schnelle Inbetriebnahme erschwert, berücksichtigen wir das natürlich gerne.

HX711

Und noch eine Frage meinerseits: Welche Version der HX711 Bibliothek hast Du denn verwendet bzw. wie genau hast Du sie installiert? Die unter arduino/libraries at 0.16.0 · hiveeyes/arduino · GitHub referenzierte ist mittlerweile nämlich ordentlich veraltet, dank Improving the canonical Arduino HX711 library for ESP32 and beyond gibts die aktuelle mittlerweile jedoch auch direkt bei HX711 Arduino Library - Arduino Libraries und installierbar über den Arduino Library Manager – ich vermute Du hast direkt jene (Version 0.7.2) installiert?

Node-RED

Node-RED wollten wir uns schon immer mal ansehen, sind da aber bisher nicht dazu gekommen. Was uns hier aus Plattformsicht konkret interessieren würde, wäre, wie gut man das Teil mandantenfähig betreiben könnte, siehe Design: multiuser · node-red/node-red Wiki · GitHub.

Aus Communitysicht freuen wir uns aber definitiv darüber, wenn Du entsprechende Flows zur Verfügung stellst, dazu haben wir grade die Erweiterung .json für den Upload von Dateien freigegeben. So kann jede Teilnehmerin mit einer eigenen Node-RED Instanz beliebige Dinge realisieren und hätte durch passende Flow-Schnipsel einen guten Startpunkt.

Fazit

Wir freuen uns sehr, dass Du in unserem Universum ein paar sinnvolle Dinge entdecken konntest, die Dir die Inbetriebnahme Deines Systems erleichtert haben. Weitere Ideen, Vorschläge und Hinweise auf verbesserungswürdige Teilbereiche sind jederzeit gerne gesehen, hier hilft es uns sehr, wenn Leute mit einem frischen Blick drauf schauen und uns auf entsprechende Aspekte hinweisen oder selbst mit anpacken, sie zu verbessern.

Merci schon im Voraus und viel Erfolg weiterhin!

Herzliche Grüße,
Andreas.


#8

Debugging the SerialDebugger

Ah, i see. Du meinst jenen hier?

Ja, der ist eigentlich durchaus nett. Schade, dass Dir das Schmerzen bereitet hatte. Kannst Du ungefähr sagen, was das Problem dabei war?


#9

Hallo,
ja ich hab von der node-wifi-mqtt aus begonnen.

Ich nutze das HX711er Board von Sparkfun und als Library die aktuelle aus der Arduino IDE

Node-RED scheint eher was für einen einzelnen Administrator zu sein, wie ich das grad überblicke, was hoffentlich da drin auch geht, ist die Übergabe an den MQTT vom Hiveeye-Schwarm (btw… schaltet Ihr mir einen Zugang dafür?)

Ich setz einfach mal den JSON6 Teil hier ein, so wie er bei mir funktioniert:

`void transmit_readings() {

// Build JSON object containing sensor readings
// TODO: How many data points actually fit into this?
DynamicJsonDocument doc(512);
JsonObject obj = doc.as<JsonObject>();



#if SENSOR_DUMMY
doc["dummy"]                      = true;
doc["weight"]                     = 42.42;
doc["airtemperature"]             = 42;
#endif

doc["device"]                     = devicename;
doc["network"]                    = 
#if SENSOR_HX711
doc["weight"]                      = weight;
#endif

#if SENSOR_DHTxx
doc["airtemperature"]              = dht_temperature[0];
doc["airhumidity"]                 = dht_humidity[0];

  if (dht_device_count >= 2) {
    doc["airtemperature_outside"]  = dht_temperature[1];
    doc["airhumidity_outside"]     = dht_humidity[1];
    }
  #endif

#if SENSOR_DS18B20
doc["broodtemperature"]            = ds18b20_temperature[0];
  if (ds18b20_device_count >= 2) {
    doc["entrytemperature"]        = ds18b20_temperature[1];
    }
  #endif

#if SENSOR_BATTERY_LEVEL
doc["battery_raw"]                 = adc_level;
doc["battery_level"]               = battery_level,2;
#endif

#if SENSOR_MEMORY_FREE
doc["memory_free"]                 = memory_free,0;
#endif


// Debugging
if(DEBUG){
serializeJsonPretty(doc, Serial);
Serial.println();
}

// Serialize data

int json_length = measureJson(doc);
char payload[json_length+1];
String payloadstring;  
serializeJson(doc, payloadstring);
payloadstring.toCharArray(payload, sizeof(payload));



// Publish data
// TODO: Refactor to TerkinTelemetry
if (mqtt_publisher.publish(payload)) {
  if(DEBUG){
    Serial.println( "transmit_readings  -  MQTT publish succeeded");
  }
} else {
  if(DEBUG){
    Serial.println( "transmit_readings  -  MQTT publish failed");
  }
}

}`