Jump to content

rtrbt

Administrators
  • Gesamte Inhalte

    1.548
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    150

Alle erstellten Inhalte von rtrbt

  1. Hm klassisches Informatiker-Problem "Das hätte eigentlich funktionieren sollen". Kommen die -83,87°C vom Barometer oder vom Temperature Bricklet? Hast du den Modus bei beiden auf Slow gesetzt? Hing danach eins der Bricklets oder war das nur ein Ausreißer und danach kamen wieder sinnvolle Werte? Der Aufruf sieht korrekt aus, probiere danach mal sicherheitshalber folgendes: uint8_t mode; barometer_get_i2c_mode(bl_baro, &mode); printf("i2c mode %s\n", mode == BAROMETER_I2C_MODE_FAST ? "BAROMETER_I2C_MODE_FAST" : "BAROMETER_I2C_MODE_SLOW"); (Achtung, ungetesteter Code!)
  2. Das kannst du mal probieren, ja. Die IMU benutzt unter anderem ein Magnetometer, das du eventuell durch die anderen Bricks im Stapel (vor allem die Servo Bricks) störst. Alternativ kannst du testen, die IMU mit dem Brick Viewer nochmal im Stapel zu kalibrieren, damit sie die Störung kompensiert. Dann solltest du aber auf jeden Fall prüfen, ob das noch funktioniert, wenn die Servos angesteuert werden, falls die Störung lastabhängig ist. Wenn das alles nichts hilft, kannst du noch probieren, die IMU in etwas Entfernung vom Stapel zu betreiben, der RED-Brick hat ja einen USB-Port.
  3. Das klingt seltsam. Du kannst sicherheitshalber das Log-Level vom Astro- und NTP-Binding mal auch auf Trace stellen, das sollte eigentlich genauso funktionieren.
  4. Was suchst du denn genau? Notfalls kann man sich ja durch die Datenbank wühlen.
  5. Moin, Wenn du den Servobrick testweise wieder wegnimmst, liegt der Winkel dann wieder auf 0°?
  6. Firmware: Barometer Bricklet 2.0.3 Add Get/Set I2C Mode to mitigate EMI issues Download: Barometer Bricklet
  7. Firmware: Barometer Bricklet 2.0.3 Get/Set I2C Mode hinzugefügt, um EMV-Probleme zu umgehen Download: Barometer Bricklet
  8. Jupp, der Brick Viewer sollte schon fleißig Update-Meldungen erzeugen. Die Bindings sind angehangen. tinkerforge_c_bindings_2_1_28_barometer_i2c.zip
  9. Moin, Ich habe die Firmware-Anpassungen fürs Barometer Bricklet noch etwas robuster gemacht und in das nächste Firmware-Release eingebaut, die 2.0.3 sollte jetzt verfügbar sein. Das Default ist aber wieder der schnelle Modus. D.h. du musst den langsamen Modus jetzt explizit mit set_i2c_mode aktivieren, so wie es beim Temp-Bricklet auch funktioniert. Welche Sprache benutzt du? Dann erstelle ich dir dafür die Bindings neu, damit du die Funktion benutzen kannst. @duaw Ah das erklärt das Problem. Für genau deinen Fall ist der global-topic-prefix-Parameter da. Die Alternativen sind alle schwierig, 1. und 4. könnte man nur zusammen fahren (sonst müssten die MQTT-Bindings routen, das ist ein Krampf) 2. ist unschön, wenn man am Einrichten des ganzen ist, weil man dann nicht mitbekommt, dass die UID falsch ist, 3. macht ein riesiges Fass auf, weil man dann allgemeine Message-Filter bauen müsste. Da ist es einfacher für dich als Anwender alle Messages mit "_ERROR"-Key zu ignorieren. Das würde auch das "Fern-Debuggen" erschweren, wenn jemand Probleme damit hat.
  10. Moin, Interessant wäre da natürlich, wovon genau der Speicher verbraucht wird (z.B: das Python-Programm, der Brick Daemon oder vielleicht auch das Terminal, das 3 Tage an Ausgabe im RAM hält). Das kannst du rausfinden, indem du das ganze nochmal laufen lässt und dann in einem Terminal htop --sort-key=PERCENT_MEM ausführst. Mach davon mal einen Screenshot und häng ihn hier an. Teste am besten vorher, ob htop installiert ist und funktioniert, mit F10 kannst du es wieder beenden. Da kannst du auch gleich nachsehen, wie viel RAM ohne das laufende Programm schon weg ist. Das zeigt htop in der Mem-Zeile rechts an. Du musst damit nicht unbedingt drei Tage warten, wenn nach ein paar Stunden schon deutlich mehr RAM belegt ist, als beim Start des Programms, ist das schon interessant. Gruß, Erik
  11. Firmware: Industrial Dual Analog In 2.0 Bricklet 2.0.6 Add all voltages callback Download: Industrial Dual Analog In 2.0
  12. Firmware: Industrial Dual Analog In 2.0 Bricklet 2.0.6 All Voltages-Callback hinzugefügt Download: Industrial Dual Analog In 2.0
  13. Moin, Die Datenbank gibt es noch, aber keine schöne Möglichkeit darauf zuzugreifen. Am einfachsten ist es, wenn du die Wayback-Machine bemühst. Es gibt hier ein Capture von 2017: https://web.archive.org/web/20170404212840/http://www.tinkerunity.org/wiki/index.php/DE/Hauptseite
  14. Hm das sieht wirklich seltsam aus. Eventuell kratzt du genau am Timeout, auch wenn mir unklar ist, warum das 2,5 Sekunden dauern sollte. Du kannst mal versuchen, die MQTT-Bindings mit --ipcon-timeout 10000 zu starten, eventuell hilft das.
  15. Moin, Ich fange mal etwas grundlegender an: Die "neuen" openHAB-Tinkerforge-Bindings findest du hier: https://www.tinkerunity.org/topic/4901-betaversion-der-openhab-bindings/ Die sind aber noch in der Beta, also nicht 100%ig fertig. Outdoor Weather Bricklets werden aber gut unterstützt. Wenn du die installiert hast, kannst du in der Inbox manuell einen Brick Daemon hinzufügen, dann wird das Bricklet automatisch gefunden und du kannst es hinzufügen Die Wetterstation musst du dann aber wieder von Hand hinzufügen über die Inbox, das Bricklet als Bridge angeben und die ID der Station eintragen. (Das Bricklet hat einen Channel der die gefundenen IDs anzeigt). Hintergrund warum du das händisch machen musst ist, dass du dann, wenn die Station neustartet (z.b. bei Batteriewechsel) du nur die ID in der Thing-Konfiguration ändern musst und nicht alles neu anlegen. Gruß, Erik
  16. Die 1000ms sind tatsächlich etwas lang, ich setze mir mal auf die Liste, mir die Default-Werte mal anzusehen für alles, was nur Callbacks schickt, wenn der Wert sich ändert. In dem Zuge kommt dann auch das Update-Interval für die IO-16 1.0, das gibt es aber ich habe die Funktion an die falsche Stelle konfiguriert. Hm, beim alten IO-16 und dem Dual Button fehlt da das read-only-Flag, füge ich mal ein. Wie immer Danke fürs Testen!
  17. Das wäre durchaus möglich. Beim Entwickeln ist mir das zumindest manchmal passiert. Da installiere ich das Binding natürlich ungleich öfter, aber wer weiß, was genau das Problem ist. Ich habe gerade Beta 22 hochgeladen, du kannst damit nochmal testen, ich hoffe, dass die kombiniert mit deiner Neuinstallation die ganzen Probleme löst. Wenn sich Bricklets nochmal in einem offline-Zustand festhängen oder andere Bindings nicht mehr gehen, sag unbedingt nochmal bescheid, das ist ja doch eher kritisch. @matthiask Das LED-Strip-Index-Problem ist in Beta 22 gefixt, du kannst bei dir mal den String "2,255,0,0,255,255,255,0,255,0,0,0,0,0,0,255" testen, der sollte zwei LEDs auslassen, dann eine rot, eine weiß, eine grün, eine schwarz (aus) und eine blau setzen.
  18. Ah, die Fehlermeldung war wirklich hilfreich, da habe ich das Problem direkt mit gefunden: Ich habe ja vor einer Weile etwas Magie eingebaut, damit Channel dynamisch erzeugt und gelöscht werden können, z.B. für die IO-16-Pin-Konfiguration. Da gibt es das interessante Problem, dass ich, wenn ich alle Channel neu erstelle (also jedes Mal, wenn die Konfiguration sich ändert), die Konfiguration von Channels, die bereits da waren, behalten will, bei neu erstellten Channeln lade ich die Standardkonfiguration. Das Nachschlagen der vorhandenen Konfiguration funktioniert so, dass ich das Thing nach dem Channel mit der UID des (eventuell vorhandenen) Channels frage, was wenn das Thing den Channel gerade nicht kennt null zurückgibt. Damit muss der Code umgehen können, also wenn null zurückkommt, einen neuen Channel mit der Default-Konfiguration erstellen. Ich hatte im Zuge der letzten Beta einmal das null-Handling aufgehübscht, da verwendet openHAB Tools um den Code zu annotieren (z.B. "Diese Funktion gibt nie null zurück") und dazu ein Analysewerkzeug, das Warnungen erstellt, wenn man das falsch macht (also z.B. bei einer Funktion die null zurückgeben kann dann ohne Prüfung den Rückgabewert verwendet). Die Analyse ist nicht ganz perfekt, und ich habe an der Stelle nicht genug nachgedacht und den Hinweis, dass da ein Nullcheck unnötig ist einfach geglaubt, das stimmte aber offensichtlich nicht, deshalb fliegt dir das gerade um die Ohren. Ich fixe das mal und baue eine neue Beta. Das Discovery-Remove-Problem liegt daran, dass ich in Beta 20 die alten Discovery-Ergebnisse entfernt habe, bevor die neuen eingefügt werden. Das korrekte Vorgehen (was Beta 21 auch tut) ist, erst die neuen einzufügen und dann alle, die älter sind zu entfernen.
  19. Moin, Den Fehler habe ich schon mal gesehen, bin mir aber gerade unsicher, ob das etwas war, was ich durch eine openHAB-Neuinstallation losgeworden bin, oder ob da im Code was kaputt war. Da bei dir aber auch die anderen Bindings kaputt sind, vermute ich, dass du in das Problem gelaufen bist, dass ich beim Entwickeln manchmal treffe: Wenn man einzelne Bindings in openHAB zu oft oder mit ungünstigem Timing aktualisiert, scheint es manchmal zu passieren, dass irgendein interner Cache falsche Werte hat, dann kann man die Installation gefühlt wegwerfen. Ich habe da aber noch in keiner Weise eine Regelmäßigkeit ausmachen können, deshalb gibt es da keinen Bug-Report, den ich gefunden oder geschrieben hätte. Haben da dann die anderen Bindings wieder mit dir geredet? Das ist erwartet: openHAB fragt alle ThingType/ChannelType/ConfigDescriptionProvider nach, ob sie für IDs einen entsprechenden Typen oder eine Description liefern können, unabhängig davon ob die Provider zu einem spezifischen Binding gehören oder nicht. Deshalb ist die Meldung auch nur DEBUG, ich benutze die intern, um Konfigurationsfehler in der Generator-Config zu finden. Das sollte auf jeden Fall helfen, ich hoffe das hat dir nicht dein Produktivsystem zerschossen. Gruß, Erik
  20. Moin, @André K. Teste mal die angehangene Firmware für das Barometer Bricklet. Ich habe das Verhalten vom Temperature Bricklet, wenn man es auf slow konfiguriert hat, nachgebaut. Das heißt, du musst nichts konfigurieren, aber wenn das Barometer Bricklet die selben Probleme hat, sollten sie mit dieser Firmware weg sein. @duaw Ich bin mir nicht ganz sicher, wie Theos Binding mit den Bricklets arbeitet (also ob es z.B. manchmal explizit resettet). Du kannst aber testen, ob die langsamere I²C-Geschwindigkeit bei dir hilft, indem du periodisch (z.B. alle 5 Minuten) mit MQTT oder einen Python-Script die set_i2c_mode-Funktion benutzt um den langsamen Modus zu erzwingen. Die angehangene Firmware für das Barometer Bricklet kannst du auch testen, falls du damit auch Probleme hast. Dafür musst du nichts am Setup ändern. Der Hauptvorteil an den openHAB-Bindings ist, dass sie dir viel Arbeit abnehmen, weil sie z.B. Messwerte direkt in Items legen, ohne dass du etwas konfigurieren musst. Brick(let)-Konfiguration geht direkt über die PaperUI und wird automatisch angewandt, wenn du z.B. den Stapel ziehst und neu ansteckst oder die Verbindung zum Brick Daemon mal weg war. Theoretisch musst du, wenn du das neue Binding benutzt nie eine Textdatei anfassen. Mit den MQTT-Bindings hast du andererseits die volle Kontrolle über die Bricks/Bricklets, musst dich dafür aber selbst um die Robustheit kümmern. Zu deinem Timeout-Problem: Die Meldung kommt von den MQTT-Bindings. Der Timeout (der übrigens eigentlich konfigurierbar sein sollte, habe ich mir mal auf die TODO-Liste gesetzt) sollte auf den standardmäßigen 2,5 Sekunden stehen. Das ist etwas unerwartet, dass bei deinem Aufbau (da ist jetzt nichts Traffic-intensives dabei) regelmäßig Timeouts kommen (was heißt übrigens regelmäßig? Einmal pro Minute/Stunde/Tag?) aber an sich kann es schon passieren, dass mal ein Paket verloren geht. Edit: Veraltete Firmware entfernt.
  21. Hast du an dem Aufbau auch ein Temperature Bricklet oder ist das die Temperatur, die du vom Barometer Bricklet bekommst? Das könnte ja eventuell die These zu Grabe tragen, dass nur das Temperature Bricklet die Probleme verursacht. Eigenwerbung: Mit den neuen openHAB-Bindings (siehe den Beta-Thread) kannst du den I²C Modus auch setzen
  22. Der RED-Brick verwendet aus der Konfiguration der Ethernet Extension nur die MAC-Adresse. Dir kann aber folgendes passieren: Wenn du den Stack per PoE bootest, startet der Master Brick relativ schnell, verwendet die Konfiguration, nach einer Weile ist der RED-Brick gebootet, der resettet den Stack und benutzt dann seine eigene Konfiguration. Das heißt, dass du, wenn du a) auf dem Master und dem RED-Brick die selbe statische IP-Konfiguration hast und b) schnell genug bist, dich auf den Master Brick verbinden kannst, der dir dann nach ein paar Sekunden weg-resettet wird. Davon nicht verwirren lassen. Wenn du willst, dass dieser Effekt nicht auftreten kann, kannst du die Ethernet Extension auf statische IPs konfigurieren und alle IPs auf 0.0.0.0 setzen, dann siehst du die erst im Netz, wenn der RED-Brick damit läuft.
  23. Nein, das Temperatur Bricklet setzt die Geschwindigkeit nur vor seiner Abfrage kurz runter und danach wieder hoch. Nein, nur durch einen Reset des Bricklets. Unter der Prämisse, dass es nur das Temperature Bricklet ist, das den Bus lahmlegt sollte das nicht notwendig sein. Falls das Barometer das auch hinbekommt, kann man sich das natürlich nochmal ansehen.
  24. Das ist unabhängig davon ob du Callbacks oder Getter benutzt. In beiden Fällen muss der Master Brick mit dem Sensor kommunizieren.
  25. Moin André, Versuch mal das Temperature Bricklet im langsamen I²C-Modus zu betreiben. Eventuell hast du auf deinem Dach Störstrahlung. Bei den alten Temperature/Barometer Bricklets hängen die Sensoren am selben I²C-Bus, es wäre also möglich, dass eine Störung des Temperature Bricklets das Barometer Bricklet mitreißt. Das würde sich auch mit deinem Log decken.
×
×
  • Neu erstellen...