Jump to content

André K.

Members
  • Gesamte Inhalte

    62
  • Benutzer seit

  • Letzter Besuch

Posts erstellt von André K.

  1. Guter Punkt, danke. In meinem Enumerate-Callback ist im Prinzip nur ein großer switch() drin, der sämtliche Callbacks und Initialisierungen einrichtet, und nur für den Master einen Eintrag ins Event-Log schreibt. Außerdem beginnt er folgendermaßen:

    if(enume_type == IPCON_ENUMERATION_TYPE_AVAILABLE) switch (did)

    Das heißt, ich bekomme die anderen Types gar nicht mit.

    Ich baue da mal einen else-Zweig rein der zu einem weiteren Event-Log-Eintrag führt um ein Gefühl dafür zu bekommen was da ggf. ankommt.

    André

  2. The story continues 😅

    Gestern Abend hat sich auch das neue Temperatur-Bricklet verabschiedet, nach 35 Tagen störungsfreiem Betrieb. Immerhin nicht mit einem falschen Wert, sondern es hat einfach aufgehört den Callback auszulösen. Wiederbelebung per Brick Viewer war Gott sei Dank wieder möglich.

    Jetzt bin ich mit meinem Latein so langsam am Ende ;) oder hat jemand von euch noch einen Ansatz?

    André

  3. So, mal wieder eine kleine Rückmeldung meinerseits :)

    Die drei neuen Bricklets für Temperatur, Luftdruck und Luftfeuchte sind seit etwas mehr als anderthalb Wochen montiert und seitdem läuft es absolut störungsfrei, yay! :D

    Das "alte" Temp-Bricklet habe ich ins Gehäuse rein gesetzt um die interne Temperatur loggen zu können, wie vermutet funktioniert auch das, aber jetzt ist natürlich auch ein erheblich kürzeres Kabel im Spiel.

    Wenn ihr mal schauen wollt: http://www.koethur.de/wetter/

    Und nicht wundern, die "Live-Aktualisierung" stoppt nach 30s, das ist noch Absicht …

    André

  4. OK ich verstehe, also lag ich mit meiner Vermutung gar nicht so falsch.

    Im Grunde brauche ich die Voltage gar nicht, ich "zweckentfremde" das bloß um an einen festen 60-Sekunden-Timer zu kommen:

    /* Callback für Diagnosefunktion: 60s */
    master_register_callback(br_master, MASTER_CALLBACK_STACK_VOLTAGE_REACHED, (void (*)(void))cb_master_diag, NULL);
    master_set_stack_voltage_callback_threshold(br_master, MASTER_THRESHOLD_OPTION_INSIDE, 0, 65535);
    master_set_debounce_period(br_master, 60000);

    In cb_master_diag() frage ich dann lediglich die interne Temperatur ab, um die etwas im Auge zu behalten. Leider gibt es dafür ja keinen direkten Callback.

    Edit: Interessant wäre ja eigentlich der Stromverbrauch, aber ich meine ich hätte das mal ganz zu Anfang getestet und immer 0 erhalten, trotz Ethernet-Extension mit PoE, also kein USB. Auch im Brick-Viewer wird immer 0 angezeigt.

  5. Uwe, rtrbt bzw. Erik hat doch die C/C++-Bindings hier im Thread verlinkt, ganz unten auf der vorigen Seite. Die verwende ich, und da ist die Funktion drin.

    Und BTW, weitere Anregung: Daß ihr den gleitenden Mittelwert in die Firmware von Barometer 2.0 und Hygrometer 2.0 eingebaut habt ist super! Allerdings liefern diese Bricklets ja auch so schon recht stabile Werte … wo das aber echt noch fehlt, ist beim Ambient Light 3.0 — denn egal was ich einstelle, bei Sonne hüpfen die Lux-Werte dermaßen rauf und runter daß ich geneigt bin ab 1000 lx das ganze umspringen zu lassen auf Anzeige in "Kilo-Lux" (falls es das überhaupt gibt ;)) und maximal einer Nachkommastelle.

    André

  6. Anregung/Verbesserungsvorschlag:

    Kann man die Berechnung des normalisierten Luftdrucks (also QFF) nicht auch in die Firmware gießen, so daß man dann bloß noch die Höhe bei der Initialisierung übergeben braucht bzw. im EEPROM ablegt?

    Alternativ wäre natürlich ein kombinierter Callback mit Druck und Temperatur cool. Weil so wie es jetzt ist, lässt es sich eigentlich nicht elegant lösen. Entweder, ich benutze den getter für die Temperatur innerhalb des Druck-Callbacks (unschön, wenn man sonst ohne getter auskommt), oder ich definiere eine globale Variable die von einem separaten Temperatur-Callback gefüllt wird (auch unschön) …

    Ich glaube ich mache es ermal mit dem getter. Globale Variable ist mehr bäh als ein sekündlicher getter. ;) 

    André

  7. Ich schon wieder ;)

    Ich sitze hier gerade und bin dabei, meinen Gateway-Daemon auf die neuen Sensoren für Luftdruck etc. umzubauen.

    Meine Testumgebung: Macbook USB zum Master 2.1 und daran die drei Bricklets (Temp, Druck, Hygro alle V2)

    Ich hab in dem Programm ein Callback MASTER_CALLBACK_STACK_VOLTAGE_REACHED eingebaut um ein paar Statuswerte abzufragen, dieser wird aber hier in der Testumgebung gar nicht aufgerufen. Warum? Liegt es daran daß ich per USB (und nicht per Ethernet-Extension) dran gehe, oder daran daß es eigentlich gar kein Stapel ist mit nur einem Master?

    Bin etwas verwirrt.

  8. vor 51 Minuten schrieb rtrbt:

    Wenn das Temperature Bricklet anfängt die falschen Werte zu erzeugen, bringt es den I²C-Bus in einen kaputten Zustand, weshalb das Barometer Bricklet dann auch anfängt falsche Werte zu produzieren.
    Wenn das Barometer Bricklet selbst damit anfängt, liefert es nur ein paar falsche Werte, irgendwann bekommt es sich aber wieder ein.

    Ganz so kann man das nicht sagen. Sowohl Temperature- als auch Barometer-Bricklet hauen sporadisch mal nur einen einzelnen falschen Wert raus, zum Beispiel gestern Abend einfach mal zwischen drin -1°C, hier gut an der Min/Max Auswertung zu sehen:

    Temperature 8.21858 7.87 8.68 2020-05-06 22:00:00
    Temperature 9.21769 8.68 9.75 2020-05-06 21:30:00
    Temperature 10.2747 -1 10.87 2020-05-06 21:00:00
    Temperature 11.5355 10.81 12.31 2020-05-06 20:30:00
    Temperature 12.8846 12.31 13.5 2020-05-06 20:00:00

    Auch das Barometer macht das:

    Pressure 978.992 978.792 979.112 2020-05-06 00:00:00
    Pressure 978.699 978.598 978.835 2020-05-05 23:30:00
    Pressure 977.98 10 978.658 2020-05-05 23:00:00
    Pressure 978.07 977.916 978.462 2020-05-05 22:30:00
    Pressure 977.916 977.865 977.949 2020-05-05 22:00:00

    Dabei geht dann aber nicht gleich der ganze Bus "kaputt".

    vor 51 Minuten schrieb rtrbt:

    In Summe würde ich folgendes Vorschlagen: Wenn du nicht noch spontane Wunderheilung beobachtest, schreib mal eine E-Mail an sales@tinkerforge.com, dann schicken wir dir ein Barometer 2.0 und Humidity 2.0 zu. Schreib dazu, was du an Kabellänge brauchst.

    Ich habe mir heute morgen auch schon sowas ähnliches gedacht als dann (hoffentlich) endgültige Lösung.

    Und vielen Dank, aber ich bestelle die dann einfach via Shop, auf die paar Euro kommt es echt nicht mehr an 😅 der größere Hemmschuh ist meine Motivation, nochmal aufs Dach zu kraxeln und in 10 Meter Höhe an dem Kasten herum zu schrauben. Aber wenn's hilft, ist das ein kleiner Preis :)

    Ich würde dann folgendes tauschen: Barometer gegen Barometer 2.0, Temperature gegen Temperature 2.0

    Die Arbeitsweise vom Humidity mit dem Analogwert gefällt mir eigentlich sehr gut, erinnert mich an die gute alte Conrad-Telemetrie-Wetterstation die an dieser Stelle ja 24 Jahre lang zuverlässigst gearbeitet hat. ;) Oder würdest Du empfehlen da auch auf Humidity 2.0 zu gehen? 

    André

  9. Leider ist es heute morgen wieder aufgetreten, sogar zwei mal ganz kurz hintereinander. Mittlerweile bin ich natürlich auch etwas paranoid und schaue gefühlt alle 30 Sekunden drauf 😅

    Ich habe den Verlauf mal isoliert, Fall 1 von 6:38 Uhr:

    428482 2020-05-07 06:38:26 Temperature 331
    428485 2020-05-07 06:38:27 Pressure 980778
    428486 2020-05-07 06:38:27 Temperature 337
    428489 2020-05-07 06:38:28 Pressure 980788
    428493 2020-05-07 06:38:29 Pressure 980785
    428496 2020-05-07 06:38:30 Pressure 980808
    428499 2020-05-07 06:38:31 Pressure 980790
    428503 2020-05-07 06:38:32 Pressure 980773
    428506 2020-05-07 06:38:33 Temperature -3843
    428507 2020-05-07 06:38:33 Pressure 10000
    428819 2020-05-07 06:40:39 Temperature 0
    428822 2020-05-07 06:40:40 Temperature -3843
    429029 2020-05-07 06:41:59 Temperature -8387
    429032 2020-05-07 06:42:00 Temperature -3843
    430148 2020-05-07 06:47:48 Temperature -8387
    430151 2020-05-07 06:47:49 Temperature -3843
    430176 2020-05-07 06:48:01 Pressure 980942
    430194 2020-05-07 06:48:01 Temperature 418
    430198 2020-05-07 06:48:02 Pressure 980901
    430207 2020-05-07 06:48:03 Pressure 980907
    430210 2020-05-07 06:48:04 Pressure 980926

    Um 6:48 habe ich dann manuell via Brick-Viewer resettet.

    Dann ist es eine Minute später gleich wieder passiert:

    430487 2020-05-07 06:49:03 Pressure 980906
    430494 2020-05-07 06:49:04 Pressure 980910
    430500 2020-05-07 06:49:05 Pressure 980926
    430504 2020-05-07 06:49:06 Pressure 980902
    430507 2020-05-07 06:49:07 Pressure 980906
    430508 2020-05-07 06:49:07 Temperature -3843
    430512 2020-05-07 06:49:08 Pressure 10000
    430604 2020-05-07 06:49:31 Temperature -8387
    430613 2020-05-07 06:49:32 Temperature -3843
    430765 2020-05-07 06:50:09 Temperature -8387
    430769 2020-05-07 06:50:10 Temperature -3843
    430789 2020-05-07 06:50:17 Temperature -8387
    430794 2020-05-07 06:50:18 Temperature -3843
    431211 2020-05-07 06:52:28 Pressure 980906
    431212 2020-05-07 06:52:28 Temperature 475
    431216 2020-05-07 06:52:29 Pressure 980897
    431220 2020-05-07 06:52:30 Pressure 980882

    Besteht denn ein Unterschied zwischen der "Spezial-Firmware" von letzter Woche und der neuen "offiziellen" FW in Kombination mit dem langsamen Modus?

    Edit: Die Temperatur ist die vom Temperature-Bricklet, die vom Barometer beachte ich in der Erfassung gar nicht

    Edit 2: Ich bin ja echt froh daß "nur" diese beiden Bricklets davon betroffen sind. Aber gibt es dafür eigentlich eine schlüssige Erklärung? An demselben Master hängen ja noch Humidity und Ambient Light 3.0.

    André

  10. Puh okay, erstmal Asche auf mein Haupt 😅

    Wie ich gerade bemerkt habe, hat systemd gestern gar nicht die neue Version des Binarys verwendet, sondern noch die vorige Version. Ist mir leider erst jetzt aufgefallen, weil systemd die komplette Ausgabe von stdout immer erst beim Beenden ins Log schreibt (warum eigentlich erst dann?).

    Ich lasse mir jetzt beim Start direkt eine Info mit der Version ins Syslog schreiben und kann daher sagen, daß nun wirklich die richtige Version läuft 🙈

    André

  11. Kommando leider zurück: Jetzt ist obendrein die -83,87° wieder aufgetreten 😕

    *seufz* 

    Ich wollte eigentlich morgen die komplette Einbindung in die Website vornehmen und ich hatte so ein gutes Gefühl … 😩

    So ist der Aufruf doch richtig:

    /* Langsame Busgeschwindigkeit: */
    barometer_set_i2c_mode(bl_baro, BAROMETER_I2C_MODE_SLOW);

     

  12. So, neue Firmware ist geflasht. Ist das korrekt daß die Versionsnummer dieselbe geblieben ist?

    Temperatur ist auch den ganzen Tag über unauffällig geblieben — so langsam nähern wir uns einem Zustand, daß ich die Daten ruhigen Gewissens wieder in meine Homepage einblenden kann. :) 

    Und an der Stelle mal schon mal danke und Hut Ab für das durchdachte Gesamtdesign. Daß ich von hier aus per VPN die FW flashen kann und nicht mit nem Notebook auf dem Dach rumkraxeln muß ist schon cool. 😎

    André

  13. Ah, gut zu wissen!

    Ich baue das gleich heute Nachmittag noch in meinen Gateway-Daemon ein und werde berichten.

    Drei Fragen noch, für mich (und sicher auch einige andere) zum Verständnis:

    • Wirkt sich das auch negativ auf die Geschwindigkeit anderer Bricklets aus? Das schnellste was ich eingerichtet habe sind 200ms Callback für das IO16.
    • Muß ich damit rechnen, daß das Flag durch einen Connect vom Brick-Viewer zurückgesetzt wird, oder durch einen Aufruf des Temperatur-Tabs?
    • Ergänzt ihr das mit der reduzierten Geschwindigkeit auch noch beim Barometer Bricklet, wenn es für die Temperatur hilft und ich lieb darum bitte? ;) 

    André

  14. Ich bin bei meiner Suche auch schon über den Tipp gestolpert, aber bringt der mir überhaupt was wenn ich ausschließlich mit Callbacks arbeite (und nicht mit get_temperature())?

    (Ich ärgere mich gerade, daß ich nicht einfach zwei neue Bricklets der aktuellen Generation gekauft habe. Die alten lagen seit 2014 hier rum, da hatte ich das Projekt schon mal durchziehen wollen aber wie das im Leben so ist, manchmal kommt was dazwischen. Deshalb lagen die so lange im Karton herum.)

  15. Hallo Uwe,

    nochmals danke!

    Also mit ein bis zwei mal im Jahr könnte ich leben … tatsächlich ist es jetzt über Nacht wieder zwei mal aufgetreten, nachdem es davor den ganzen Tag über stabil war. Ein mal um kurz nach 23 Uhr, da hab ich es zufällig bemerkt und gleich reagiert, und dann wieder um 5:23 Uhr.

    Und das Barometer ist auch zwischendurch mal in der Form betroffen daß nur ein einzelner Ausreißer kommt und danach dann wieder normale Werte, wie ich gerade an meiner min/max Auswertung sehe — *seufz*

    André

×
×
  • Neu erstellen...