Jump to content

photron

Administrators
  • Gesamte Inhalte

    3.125
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    47

Alle erstellten Inhalte von photron

  1. Welcher Fehler tritt denn da auf? An sich ist das erlaubt.
  2. Es ist kein FI-Schalter im WARP Charger verbaut. Der WARP Charger ist mit einer DC-Fehlerstromerkennung ausgestattet. Dadurch kann der WARP Charger an einem normalen 30mA Typ A FI-Schalter betrieben werden. Das ein Typ B FI-Schalter in der Betriebsanleitung als Ersatzteil aufgeführt ist, ist ein Fehler auf unserer Seite. In Betriebsanleitung Version 1.2.5 ist dieser korrigiert und der Typ B FI-Schalter aus der Ersatzteilliste entfernt. Danke für den Hinweis. Hintergrund dazu: In der frühen Phase der Entwicklung war vorgesehen in der Wallbox einen Typ B FI-Schalter zu verbauen. Das wurde aber wieder verworfen und durch die auch aktuell verbaute DC-Fehlerstromerkennung ersetzt. Da wir aber noch einige Typ B FI-Schalter auf Lager haben verkaufen wir diese in unserem Shop ab. Ich habe jetzt den Shop-Eintrag um den Hinweis ergänzt, dass im WARP Charger kein FI-Schalter verbaut ist und auch kein Typ B FI-Schalter zum Betrieb notwendig ist, sondern ein normaler 30mA Typ A FI-Schalter ausreicht. Sorry, für die Verwirrung, die jetzt hoffentlich aufgeklärt ist.
  3. Im Prinzip richtig, aber im WARP Charger ist kein FI-Schalter (weder Typ A noch Typ B) verbaut, sondern eine DC-Fehlerstromerkennung. Durch die Kombination DC-Fehlerstromerkennung im WARP Charger und Typ A FI-Schalter im Sicherungskasten entsteht in Summe die Funktionalität eines Typ B FI-Schalters. Der WARP Charger kann also normal angeschlossen werden, ohne das es zu Problemen mit einer Reihenschaltung von FI-Schaltern kommt.
  4. Das RS485 Bricklet arbeitet auf Arrays von 1-Zeichen Strings. Du kannst die \x Escapesequenz oder die chr Funktion verwenden, um beliebig Bytes zu übergeben. Die Hex-Folge F1 00 05 29 1E kannst du mit \x Escapesequenz so schicken: $rs485->write(array("\xF1", "\x00", "\x05", "\x29", "\x1E")); Oder mit chr Funktion so: $rs485->write(array(chr(0xF1), chr(0x00), chr(0x05), chr(0x29), chr(0x1E))); Die Antwort im Callback kommt auch als Array von 1-Zeichen Strings. Diesen kannst du dann mit der ord Funktion so in Bytes umwandeln: foreach ($message as $char) { $byte = ord($char); echo dechex($byte) . "\n"; }
  5. Beides. Ein Typ 2 Kabel hat in jedem Stecker lokal einen PP Widerstand verbaut. Auf der Autoseite einen für das Auto und auf der Wallbox-Seite einen für die Wallbox. Es gibt also keine PP Leitung im Kabel selbst, es gibt nur die CP Leitung. Im Falle eines fest angeschlossenen Kabels, wie beim WARP Charger, ist der PP Widerstand für die Wallbox-Seite in der Wallbox verbaut. Der hat aber nichts mit dem PP Widerstand auf der Autoseite zu tun. Daher kann die Wallbox PP nicht trennen, denn sie hat keinen Zugriff auf die Autoseite. 1P/3P Umschaltung scheint kein einfaches Thema zu sein. OpenWB unterstützt das für die Zoe überhaupt nicht. https://openwb.de/forum/viewtopic.php?f=4&t=3063 In dem Thread sagt einer der Entwickler, sie hätten beim Testen eine Zoe zerstört (altes Model), laut Renault wäre das Verhalten aber beim neuen Model gleich geblieben: https://openwb.de/forum/viewtopic.php?p=31505#p31505 Im gleichen Thread behaupten Leute es gäbe Wallboxen die 1P/3P mit der Zoe könnten. Auf Anhieb schwer zu sagen was da jetzt die Wahrheit ist.
  6. Wenn du das im ExecStop des brickd Services machst, dann hat das denn Nachteil, dass das auch gemacht wird wenn brickd aus anderen Gründen (z.B. Update) gestoppt/neugestartet wird. Bei Requires= scheint das Problem zu sein, dass das keine Reihenfolge definiert. Teste mal mit After=brickd.service in deiner ursprünglichen Service Datei. Laut systemd Doku wird dadurch dein Service nach brickd gestartet und vor brickd beenden: https://www.freedesktop.org/software/systemd/man/systemd.unit.html
  7. Du kannst beides machen, die Hardware direkt reagieren lassen, oder dir einen Callback schicken lassen, damit deine Software reagieren kann. Schau dir mal die set_gpio_action Funktion des Bricklets an.
  8. Das hat nichts mit dem Linken zu tun. Du kannst pro IPConnection Objekt ein funktionales LEDStripV2 Object haben, da die IPConnection intern eine Tabelle hat die eine UID eindeutig auf ein Device Objekt abbildet. Wenn du ein weiteres Device Objekt für eine UID anlegst mit einer IPConnection bei der für diese UID schon ein Device hinterlegt ist, so wird das alte Device durch das neue verdrängt und nur noch das neue Device Objekt kann mit dem Brick/Bricklet kommunizieren. Du kannst aber ohne Probleme in einem Programm parallel mehrere IPConnections mit jeweils einem Device Objekt haben die auf die gleiche UID verweisen. Ähnlich funktioniert das für die Registrierung von Callbacks. Jedes Device Objekt hate eine Tabelle die eine Callback ID eindeutig auf einen Fuktionspointer zuweist. Wenn du einen Callback nochmal registrierst der auf diesem Device Objekt schon registriert wurde, dann wird der alte Funktionspointer verdrängt und nur noch der neue wird aufgerufen werden. All dies passiert nur bei dir lokal im Programm, ohne jegliche Kommunikation mit der Hardware. Was das passiert ist, dass eine Zuordnung zwischen eingehenden Antworten (Getter und Callbacks) und den Device Objekten und Callback Funktionspointern hergestellt wird. Dadurch weiß die IPConnection dann wohin mit den Antworten. Da kann dir erstmal keiner dazwischen fummeln. Was dir jetzt passieren kann ist dass zwei Programme die gleichzeitig laufen sich in die Quere kommen. Zum Beispiel kann dein Programm den Frame-Started-Callback aktivieren und ein anderes Programm diesen wieder deaktivieren. Denn die Information ob der Callback an oder aus ist ist auf dem Bricklet gespeichert, da das Bricklet wissen muss ob es den schicken muss oder nicht. Das ist also global und nicht lokal in deinem Programm. Ähnlich ist dass dann auch mit dem Setzen der LEDs, wenn das dein Programm und ein anderes Programm gleichzeitig machen kommt am Ende Quatsch bei rum. Zu Brick Viewer: Hier werden nur dann Callbacks verwendet, wenn es nicht anders geht, oder der Callback nicht konfiguriert werden muss. Beim Anwählen des LED Strip 2.0 Tabs in Brick Viewer wird geprüft ob der Frame-Started-Callback aktiv ist. Falls ja passiert nichts. Falls nein, dann aktiviert Brick Viewer den Callback und merkt sich das. Beim Abwählen des Tabs prüft Brick Viewer ob der Callback vorher aus war und aktiviert wurde. Falls ja wird der Callback wieder deaktiviert. Falls nein passiert nichts.
  9. Zu dem Zeitpunkt an dem dein Serivce ausgeführt läuft Brick Daemon schon nicht mehr. Du musst das also so bauen, dass dein Service ausgeführt wird bevor der brickd Service beendet wird. Du kannst mal versuchen im [Unit] Abschnitt ein Requires=brickd.service anzugeben, wobei mir nicht klar ist ob sich das wie gewünscht auswirkt, da für Wants=, Requires= und Requisite= nur die Auswirkung auf das Startverhalten dokumentiert ist.
  10. Wenn du soweit bist, dass du auf Bewegung hin den motion_detected Callback bekommst, dann machst du alles richtig. Der motion_detected Callback hat keine Parameter. Das Bricklet kann dir nur sagen ob gerade Bewegung erkannt wurde oder nicht. Falls gerade Bewegung erkannt wurde schickt es den motion_detected Callback raus. Mir ist unklar was du mit "Registrierte Bewegung anzeigen" meinst. Denkst du da an die Richtung oder die Stärke der Bewegung? Diese Informationen kann der Sensor auf dem Bricklet nicht erfassen. Der Sensor gibt nur aus "Bewegung: ja/nein".
  11. Brick Logger 2.1.7 Add support for DC 2.0, Industrial PTC and Silent Stepper Bricklet 2.0 Downloads: Windows, Linux, macOS, RED Brick
  12. Brick Logger 2.1.7 Support für DC 2.0, Industrial PTC und Silent Stepper Bricklet 2.0 hinzugefügt Downloads: Windows, Linux, macOS, RED Brick
  13. Brick Viewer 2.4.19 Add support for DC 2.0, Industrial PTC and Silent Stepper Bricklet 2.0 Add Data Logger support for DC 2.0, Industrial PTC and Silent Stepper Bricklet 2.0 Fix Health Monitor error handling Filter Updates/Flashing and RED Brick Console serial port selection based on USB product- and vendor-ID Downloads: Windows, Linux, macOS
  14. Brick Viewer 2.4.19 Support für DC 2.0, Industrial PTC und Silent Stepper Bricklet 2.0 hinzgefügt Data Logger Support für DC 2.0, Industrial PTC and Silent Stepper Bricklet 2.0 hinzgefügt Fehlerbehandlung im Health Monitor repariert Auswahl der seriellen Schnittstelle für Updates/Flashing und RED Brick Console nach USB Product- und Vendor-ID gefiltert Downloads: Windows, Linux, macOS
  15. I think you mistook the firmware source code of the Voltage/Current Bricklet 2.0 as example code. I assume you don't want to modify the firmware of the Bricklet, but you want to use the Bricklet as is. You can find the C/C++ examples for the Voltage/Current Bricklet 2.0 here as part of the API documentation: https://www.tinkerforge.com/en/doc/Software/Bricklets/VoltageCurrentV2_Bricklet_C.html or here on GitHub: https://github.com/Tinkerforge/voltage-current-v2-bricklet/tree/master/software/examples/c You'll need the C/C++ API bindings to compile the examples: https://download.tinkerforge.com/bindings/c/tinkerforge_c_bindings_2_1_32.zip The ZIP also contains the C/C++ examples for the Voltage/Current Bricklet 2.0 at examples/bricklet/voltage_current_v2.
  16. Bindings: C/C++ 2.1.32, C# 2.1.30, Delphi/Lazarus 2.1.31, Go 2.0.11, Java 2.1.31, JavaScript 2.1.33, LabVIEW 2.1.29, Mathematica 2.1.29, MATLAB/Octave 2.0.31, MQTT 2.0.15, Perl 2.1.30, PHP 2.1.29, Python 2.1.29, Ruby 2.1.29, Rust 2.0.18, Saleae 2.0.6, Shell 2.1.31, Visual Basic .NET 2.1.29 Add gpio-state callback to Performance DC Bricklet API [all, except MQTT and Shell] Add support for DC 2.0, Industrial PTC and Silent Stepper Bricklet 2.0 [all] Fix BigInt detection for Node.js < 10.4 [JavaScript] Download: C/C++, C#, Delphi/Lazarus, Go, Java, JavaScript, LabVIEW, Mathematica, MATLAB/Octave, MQTT, Perl, PHP, Python, Ruby, Rust, Saleae, Shell, Visual Basic .NET
  17. Bindings: C/C++ 2.1.32, C# 2.1.30, Delphi/Lazarus 2.1.31, Go 2.0.11, Java 2.1.31, JavaScript 2.1.33, LabVIEW 2.1.29, Mathematica 2.1.29, MATLAB/Octave 2.0.31, MQTT 2.0.15, Perl 2.1.30, PHP 2.1.29, Python 2.1.29, Ruby 2.1.29, Rust 2.0.18, Saleae 2.0.6, Shell 2.1.31, Visual Basic .NET 2.1.29 gpio-state Callback zur Performance DC Bricklet API hinzugefügt [alle, außer MQTT und Shell] Support für DC 2.0, Industrial PTC und Silent Stepper Bricklet 2.0 hinzugefügt [alle] BigInt-Erkennung für Node.js < 10.4 repariert [JavaScript] Download: C/C++, C#, Delphi/Lazarus, Go, Java, JavaScript, LabVIEW, Mathematica, MATLAB/Octave, MQTT, Perl, PHP, Python, Ruby, Rust, Saleae, Shell, Visual Basic .NET
  18. @ts555 So jetzt aber. Es war komplizierter als gedacht auf die neuste libusb Version zu aktualisieren. Teste bitte diese brickd.exe genau so wie die letzt, um zu sehen ob der Crash noch auftritt. Falls ja zeichne bitte wieder einen Backtrace mit GDB auf. brickd.exe
  19. Ich glaube hier liegt ein grundsätzliches Verständnisproblem vor. Das RS485 Bricklet kann als Modbus Master oder Slave arbeiten. Als Modbus Master kannst du über das RS485 Bricklet Modbus Lese- und Schreibbefehle an angeschlossene Modbus Slaves schicken. Du rufst dazu z.B. modbusMasterReadHoldingRegisters auf, um einen Lesebefehl zu schicken. Das Ergebnis des Lesebefehls wird dir dann per ModbusMasterReadHoldingRegistersResponseCallback mitgeteilt. Als Modbus Slave kannst du über das RS485 Bricklet auf Modbus Lese- und Schreibbefehle eines angeschlossenen Modbus Masters antworten. Sprich du simulierst da also einen Modbus Slave. Das RS485 Bricklet teilt dir über den ModbusSlaveReadHoldingRegistersRequestCallback mit für welche Register ein Lesebefehl eingegangen ist. Du musst jetzt darauf mit modbusSlaveAnswerReadHoldingRegistersRequest dem RS485 Bricklet sagen mit welchen Werten der Lesebefehl beantwortet werden soll. Das Bricklet speichert sich keine Registerwerte, sondern reicht sie nur durch. Du musst also bestimmen welche Werte (nicht Adressen) die angefragten Register haben und sie dem Bricklet mitteilen.
  20. Das RS485 Bricklet sendet dir den ModbusSlaveReadHoldingRegistersRequestCallback weil es selbst eine Modbus Anfrage für das Lesen von Holding Registers bekommen hat. In diesem Callback bekommst du jetzt mitgeteilt von welcher Adresse (startingAddress) aus wie viele Register (count) zu lesen sind. Du musst jetzt also bestimmen welche Werte du dem Bricklet geben willst (holdingRegisters), damit es mit diesen Daten die offenen Anfrage beantwortet.
  21. Brick Viewer 2.4.18 ist veröffentlicht.
  22. Brick Logger 2.1.6 Fehler beim Öffnen der Debug-Logdatei werden behandelt Downloads: Windows, Linux, macOS, RED Brick
  23. Brick Logger 2.1.6 Handle errors while opening debug log file Downloads: Windows, Linux, macOS, RED Brick
  24. Brick Viewer 2.4.18 Add minimal health monitor dialog Fix state handling for untabbed plugins Force correct UI state after aborting autoreconnect on error Handle errors while opening Data Logger debug log file Update download.tinkerforge.com certificate chain to fix update autodetection Autoselect download directory for Brick Viewer downloads Check if NFC Bricklet is in correct state to start cardemu discovery Downloads: Windows, Linux, macOS
  25. Brick Viewer 2.4.18 Minimalen Health-Monitor-Dialog hinzugefügt Zustandlogik von ausgeklinkten Plugins repariert Korrekter GUI-Zustand wird beim Abbruch der Autoreconnect-Logik durch einen Fehler wiederhergestellt Fehler beim Öffnen der Data Logger Debug-Logdatei werden behandelt Zertifikat für download.tinkerforge.com aktualisiert um die automatische Update-Erkennung zu reparieren Brick Viewer Updates werden ins Download-Verzeichnis heruntergeladen NFC Bricklet Zustand wird vor dem Start einer Cardemu-Discovery geprüft Downloads: Windows, Linux, macOS
×
×
  • Neu erstellen...