Jump to content

rtrbt

Administrators
  • Content Count

    601
  • Joined

  • Last visited

  • Days Won

    23

Everything posted by rtrbt

  1. Man soll ja nichts versprechen, aber ich bin mal optimistisch und behaupte dieses Jahr noch.
  2. Ist er, du hast aber zwei Probleme. 1. Die Signale zum RED-Brick zu bekommen, aber wenn du mit den GPIOs schon mal was gemacht hast sollte das gehen (Hast du dann Drähte angelötet oder wie kommst du da ran?) 2. Ist die Frage wie du Interrupts bekommst, da musst du vermutlich einen Kernel-Treiber schreiben o.Ä. Das Linux auf dem RED-Brick ist allgemein eher langsam, im User-Space bist du da von "Echtzeit-Fähigkeit" weit weg. Damit du nicht unnütz viel Zeit investierst: Es wird in den nächsten Monaten einen ESP32-basierten Brick geben, an dem neben den Bricklet-Ports noch ein paar
  3. Hm, da wirst du ohne größere Hacks kein Bricklet finden, das das kann. Du müsstest ja nach Nyquist-Shannon mit 2 kHz abtasten. Das höchste was du mit einem Bricklet hinbekommen würdest (und das ist aber eher ineffizient) wäre ein IO4 2.0, damit kannst du theoretisch mit 1 kHz sampeln also 500 Hz messen, aber da bin ich mir nicht sicher, ob das im Bricklet so implementiert ist, das man das tatsächlich schafft. Ich fürchte da bleibt dir nur, einen Mikrocontroller o.Ä. zu nehmen, damit das Signal auszuwerten und das dann irgendwie anders zu kommunizieren. Wenn du Lust auf Firmware-Progr
  4. Moin, Wenn du mit dekodieren meinst Duty-Cycle, Frequenz usw. zu bestimmen und die Flanken zu zählen, kannst du das Industrial Counter Bricklet verwenden. Gruß, Erik
  5. Moin, Hot-Plug von Bricklets wird von uns nicht unterstützt, du musst also immer erst den Brick abziehen, dann die Bricklets an/abstecken und dann den Brick wieder anschließen. Das sollte (inoffiziell ;) ) in diesen Fall aber eigentlich funktionieren. Hier der nächste Satz Fragen: Daraus schließe ich mal, dass noch andere Bricklets, eben mit 10-Pol-Port vorhanden sind? Funktionieren die an dem Master Brick? Falls nicht würde ich davon ausgehen, dass der Master Brick defekt ist. Achtung: Die 10-Pol-Bricklets sind nicht mal inoffiziell Hot-Plug-fähig Hat der Master Br
  6. Moin, Nach deiner Beschreibung sollte der Aufbau funktionieren. Du hast da anscheinend ein Hardware-Problem. Der nächste Satz Fragen: Passiert das auch wenn du den RED-Brick außen vor lässt und den Master direkt per USB anschließt? Sind eventuell an den Bricklet-Ports Pins verbogen? Das passiert bei den alten 10-Pol-Kabeln leider relativ einfach. Sähe z.B. dann so aus: Hast du ein anderes Kabel und oder einen anderen Brick mit Bricklet-Ports zur Hand? Falls ja teste die mal Passiert das an allen Ports des Master Bricks oder nur an bestimmmten? Wie lang sind de
  7. Du musst dir eine Callback-Funktion anlegen, die ausgeführt werden soll (im Beispiel cb_alarm) und die dann registrieren. Eigentlich kannst du als zweiten Parameter für register_callback direkt cb_alarm mitgeben, aber damit du im Callback Zugriff auf die LED hast habe ich das mit dem Lambda reinimprovisiert. (Achtung ungetesteter Code!) Das time.sleep ist nur dafür da, damit dein Programm nicht beendet während du noch auf das Callback wartest. import time def cb_alarm(led, year, month, day, hour, minute, second, centisecond, weekday, timestamp): led_green(led) def main(): ipcon =
  8. Moin, @MiRo Das Problem ist mir neu. Versuche erstmal die Bindings 2.1.26 zu verwenden, ich versuche in den nächsten Tagen mal das hier nachzustellen. @StefanOHAN Dein RTC-Verhalten kommt daher, dass ich die in openHAB immer auf UTC stelle und die Zeitzone dann in openHAB darauf verrechne. Das ist typischerweise das Standardvorgehen bei sowas. Wenn du die Uhr aber händisch im Brick Viewer schon mit Zeitzone stellst, rechnet openHAB dann nochmal die Zeitzone drauf und du hast dieses Offset. (Funfact: Das selbe Problem bekommt man wenn man Windows und Linux per dual-boot auf einem PC h
  9. Moin, Ein paar Ideen dazu: Du kannst mit subprocess.run den reboot-Befehl ausführen. Das darfst du als normaler User aber nicht, da müsstest du davor auf der RED-Brick-Konsole mit sudo su (root-passwort ist tf) EDITOR=nano visudo bzw einfach nur visudo wenn du mit vi umgehen kannst, dir die Erlaubnis geben, reboot ohne Passwort auszuführen, indem du die folgende Zeile einträgst: tf ALL=(ALL) NOPASSWD:/sbin/reboot Danach sollte folgendes klappen: import subprocess subprocess.run(["sudo", "reboot"]) Nur wenn du dann in einem Python-Script ö.Ä. a
  10. Moin, Das kann viele Gründe haben, Ich hätte folgende Fragen dazu: Funktioniert das Voltage/Current-Bricklet wenn du es direkt an den Master Brick anschließt? Was passiert, wenn du das Isolator-Bricklet ohne das Voltage/Current an den Master anschließt? Hast du eventuell den Isolator falsch herum eingebaut? Darauf gibt es eine Beschriftung, welche Seite zum Brick und welche zum Bricklet soll. Machen die LEDs auf den Bricklets irgendetwas? Gruß, Erik
  11. Moin, In Beta 7 war noch ein Bug, der dazu führte, dass Callbacks nach ~ 35 Minuten (2^31 Mikrosekunden) nicht mehr funktionierten. Der ist in Beta 8 gefixt, sonst gab es keine Änderungen
  12. Das stimmt, das heißt das Kabel funktioniert wohl. Ich habe gerade nochmal einen Blick in die Firmware geworfen. Das du immer 0 zurückbekommst kann an folgendem liegen: Der Sensor des Bricklets wird per I²C ausgelesen, und zwar vom Master Brick über das ganze Kabel. Wenn du jetzt eine störende Umgebung hast, kann es passieren, dass nie gültige Daten vom Brick gelesen werden (Die Daten sind mit einer CRC versehen mit der der Brick die Daten prüfen kann). 0 ist der Default-Wert, der dann nie geändert wird, weil nie gültige Daten ankommen. Es wundert mich aber, dass sich das bei dir so
  13. Moin, Die Step-Datei haben wir nicht, aber die Maße für den Motor findest du im Datenblatt.
  14. rtrbt

    Temperature IR 2.0

    Moin, Es gibt zwei Varianten wie du das Bricklet mit dem Pi verbinden kannst: Du kannst entweder einen Master Brick + USB-Kabel und ein 7-Pol-10-Pol Bricklet-Kabel (Länge nach Wahl) verwenden und den Master Brick per USB an den Pi anschließen. Alternativ kannst du ein HAT Brick oder HAT Zero Brick + das jeweilige Befestigungskit und ein 7-Pol-7-Pol Bricklet-Kabel verwenden. Welche Variante die geschicktere ist, hängt davon ab was du noch damit vor hast: Mit dem Master Brick kannst du einen Stapel bauen, also weitere Bricks aufstecken. Außerdem kannst du an einem Master auch die alte
  15. Moin, Wenn du dir Items für die drei Beschleunigungswerte anlegst kannst du dann diese Rule benutzen: import java.lang.Math rule "calc pitch" when Item JpE_AccelerationX changed then val x = (JpE_AccelerationX.state as Number).doubleValue val y = (JpE_AccelerationY.state as Number).doubleValue val z = (JpE_AccelerationZ.state as Number).doubleValue val pitch = Math.round(Math.atan(x / Math.sqrt(y * y + z * z)) * 180 / Math.PI) val roll = Math.round(Math.atan(y / Math.sqrt(x * x + z * z)) * 180 / Math.PI) logInfo("calc pitch", "pitch: " + pitch + "°")
  16. Moin, Beta 7 ist jetzt im Post oben. Die Bindings sind jetzt in einem Zustand den ich als "fertig" bezeichnen würde, die Beta lasse ich aber noch bis zum Release der Hardware offen. Ich freue mich wie immer über jedes Feedback, vorallem zur Dokumentation. Gruß, Erik
  17. Bau im Zweifelsfall das was näher an deinem Produktivsystem sein wird. Ich habe hier auch noch einige Testaufbauten zu testen.
  18. und Genau die beiden meine ich. Ich war wie gesagt erst verwirrt, weil in der zweiten Datei zwei der ThingHandler-Threads gerade dabei sind einen heartbeat auszuführen, hatte dann aber gesehen, dass es auch zwei Disconnect-Prober-Threads gibt (die werden jeweils von der IP-Connection zum Brick Daemon erzeugt). Daraus konnte ich dann schließen, dass du mindestens zwei Brick Daemons in openHAB hinzugefügt hast, weil zwei IP-Connections laufen und es deshalb nicht schlimm ist, dass auch zwei heartbeats gleichzeitig laufen. Wenn aus einem Brick Daemon heraus zwei ThingHandler-Thr
  19. Moin, Das sieht soweit gut aus. In Nr2 sind die ThingHandler mit den Erreichbarkeits-Checks beschäftigt. Da war ich erst verwirrt, weil zwei Threads den Heartbeat ausführen, aber du hast ja mehrere Verbindungen zu Brick Daemons, deshalb ergibt das Sinn. Danke nochmal! Erik
  20. Moin, Interessant wäre direkt nach dem Verbindungsverlust. Wie üblich danke für die Tests! Erik
  21. Das klingt doch gut. Dann baue ich das in die nächste "offizielle" Beta ein. Falls du in nächster Zeit nochmal mitbekommst, dass der Master Brick gerade wieder reconnected, wäre ich nochmal an der shell:threads Ausgabe interessiert. Das ist nicht kritisch aber eventuell sehe ich da noch ein paar interessante Effekte.
  22. Moin, Die shell:threads-Ausgabe ist sehr interessant, anscheinend passiert da folgendes: Ich habe einen Heartbeat-Mechanismus der alle 90 Sekunden prüft ob die Bricks und Bricklets noch erreichbar sind. Falls ein Timeout auftritt (z.b. weil dein WiFi-Stapel weg ist) ziehe ich den nächsten Heartbeat vor, damit er sofort prüft, was alles noch da ist. Das Vorziehen funktioniert aber so, dass ich den regelmäßigen Heartbeat abbreche und stattdessen dem Scheduler einen neuen gebe, der sofort los läuft (und dann wieder 90 Sekunden später). Jetzt kann es, wenn das Timing schlecht ist, p
  23. Moin, Nein, das ist mir absolut unklar. Die Zeitsteuerung läuft über einen Scheduler von openHAB, ich würde aber nicht erwarten, dass der das Problem ist. Teste mal folgendes: Aktiviere mal das Trace-Logging für alle involvierten Bindings, also mindestens Astro und Tinkerforge. Den Paketnamen des Astrobindings bekommst du über list -s | grep binding in der Karaf-Konsole raus. Dann kannst du das Trace-Logging mit log:set TRACE [binding-name] aktivieren. (Das kennst du ja schon für das Tinkerforge-Binding ) Ich hoffe, dass du dann nicht so sehr mit Ausgabe geflut
  24. Moin, Das stimmt, mit den neuen Bindings musst du außer den Rules selbst keine Textdateien mehr schreiben. Du kannst prinzipiell alles was du in .items, .cfg usw. schreiben würdest über die PaperUI machen. (Auf meiner TODO-Liste bevor die Bindings "fertig" sind steht aber noch rauszufinden, ob und wenn ja wie man die Variante des Konfigurierens über die Dateien unterstützen kann) Wenn du die Dimension weglässt sollte das nur den Effekt haben, dass du in der PaperUI oder einer eigenen Sitemap eben nur noch den Wert ohne Einheit bekommst. Du kannst aber alternativ den Item-Wert i
  25. Moin, Damit meinst du sowohl die Java- als auch die openHAB-Bindings aus diesem Thread? Wenn nicht, ignoriere den Rest des Posts Davon darfst du dich nicht verwirren lassen, die Dokumentation auf openHAB ist für das alte Binding. Die Dokumentation für die neuen Bindings ist hier. Die ganzen openHAB-Textdateien solltest du damit nicht brauchen, die Bindings kannst du komplett über die PaperUI verwenden. Die Rulesyntax ist leider etwas kompliziert, hier zwei Beispiele für das Industrial Dual Relay: Das ist die Variante, wenn du die Actions benutzt. Damit sprichst du
×
×
  • Create New...