Jump to content

rtrbt

Administrators
  • Gesamte Inhalte

    1.403
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    127

Alle erstellten Inhalte von rtrbt

  1. Prinzipiell gibt es paar Limitierungen, die du beachten musst, wenn du viele LEDs ansteuerst. Siehe z.B. hier: https://www.tinkerforge.com/de/doc/Hardware/Bricklets/LED_Strip_V2.html#feste-aktualisierungsrate Spezifisch für die WS2811 bist du bei max. 800 kbit/s (laut Datenblatt hier: https://cdn-shop.adafruit.com/datasheets/WS2811.pdf) D.h. die Beispiel-Rechnung im ersten Link ist auf deine LEDs übertragbar, damit kommst du also auf rund 50 Hz bzw. 20 ms Frametime. Die Übertragung zwischen deinem PC und den LED Strip Bricklet schafft (siehe auch der erste Link) max 20000 (RGB) bzw. 15000 (RGBW) LED-Werte pro Sekunde. D.h. maximal ~ 30 Hz, wenn du Vollbilder schickst. Da kannst du viel optimieren, wenn du nur Teile des Bildes pro Frame aktualisierst.
  2. Jein. CP-Trennen per API funktioniert, aber wir haben noch nicht dokumentiert, wie. Das gibt uns im Moment noch die Freiheit, die API zu ändern, falls das notwendig ist. Falls du die aktuelle Beta-Firmware benutzen willst: Da ist die API evse/control_pilot_disconnect bzw. ..._update. true trennt CP, false verbindet wieder. Bei älteren Firmwares gibt es evse/control_pilot_configuration bzw. ..._update. Als configuration musst du eine Zahl übergeben: 0 trennt CP, 1 verbindet CP, 2 verbindet CP und aktiviert den automatischen Modus wieder (das ist der Standardwert!). Der automatische Modus tut in den alten Firmwares aber nichts, das ist in der aktuellen Beta in den "Fahrzeug-Weckruf" aufgegangen.
  3. Dafür gibt es den void *user_data Parameter der Callbacks: Was auch immer du in der ...register_callback-Funktion als user_data übergibst, bekommst du in der Callback-Funktion als user_data-Parameter. Darüber kannst du dir zum Beispiel einen Pointer ins Callback stecken, der dir sagt wo die voltage hingeschrieben werden soll. Beispielsweise (gekürzt und verändert von hier:) // last_voltage ist hier eine globale Variable, könnte aber auch z.b. ein Struktur-Member sein. static int32_t last_voltage; // Callback function for voltage callback static void voltage_handler(TF_IndustrialDualAnalogInV2 *device, uint8_t channel, int32_t voltage, void *user_data) { (void)device; // avoid unused parameter warning int32_t *write_to = (int32_t *)user_data; *write_to = voltage; } static TF_IndustrialDualAnalogInV2 idai; void example_setup(TF_HAL *hal) { //[...] // Hier den Pointer übergeben, den das Callback schreiben soll tf_industrial_dual_analog_in_v2_register_voltage_callback(&idai, voltage_handler, &last_voltage); //[...] }
  4. rtrbt

    Veröffentlichungen

    Firmware WARP2 2.0.93 Details hier:
  5. Sorry hatte es gestern nicht geschafft zu antworten, das Vorweihnachtschaos halt. In den Repos sollte jetzt alles aktuell sein und zueinander passen. Außerdem habe ich im anderen Thread gerade Beta 4 veröffentlicht.
  6. Ich habe das mit der aktuellen Version, bei der ich noch eine Reihe Bugs mit dem OCPP-Test-Tool gefunden und gefixt habe, gerade nochmal probiert und spontan nicht erzeugt bekommen. Ich habe noch ein paar andere Tests offen, dann sollte (je nach dem wie die Tests laufen ;) ) noch eine Beta- oder auch nicht-Beta Firmware mit OCPP kommen.
  7. Das solltest du eigentlich nicht brauchen: Die einzige Prüfung die du machen musst ist "ist der neue Wert ungleich dem alten", was das für Zahlen sind ist dann egal. Damit ist auch der Überlauf behandelt. Wenn den alten Wert zu speichern anstrengend ist, kannst du aber auch auf button_pressed prüfen. Das kann aber wie gesagt je nach Timing mal einen Knopfdruck übersehen. Den Timestamp an der Stelle mitzuschicken ist eher kompliziert, weil die Daten direkt vom Ladecontroller durchgereicht werden.
  8. Du suchst evse/button_state. Darin bekommst du den letzten Zeitpunkt an dem der Knopf gedrückt und losgelassen wurde, und den aktuellen Zustand (also gedrückt/nicht gedrückt). Damit du keinen Knopfdruck verpasst solltest du am besten den Befehl für sofortiges Laden rausschicken, wenn die button_press_time sich ändert. Wenn du naiv auf button_pressed guckst, kann es passieren, dass ein Knopfdruck verloren geht wenn du schnell genug drückst. Modbus-Doku gibt es im Moment im Webinterface selbst und in der Anleitung. Auf der API-Seite auf warp-charger.com fehlt sie im Moment noch.
  9. rtrbt

    Veröffentlichungen

    Firmware: WARP 2.0.9 und WARP2 2.0.11 Modbus-TCP-Unterstützung hinzugefügt Watchdog gegen Ausfall der WebSocket- und Ladecontroller-Kommunikation hinzugefügt Lange Laufzeit wiederholter WLAN-Scans behoben Auslassen (optionaler) DNS-Server in statischer IP-Konfiguration repariert Fehlermeldungen und Parse-Geschwindigkeit von Payloads der HTTP-/MQTT-API verbessert Alt-Text des WLAN-RSSI-Werts repariert Verbindung zu NTP-Servern mit kurzem Hostnamen/IP repariert Auslassen des zweiten NTP-Servers erlaubt Logausgaben des Lastmanagements mit deaktiviertem mDNS behoben Konfigurations-Migration von Prä-2.0.0-Firmwares repariert Zurücksetzen der Konfiguration und Ladevorgänge repariert Zeitzonen-Datenbank aktualisiert Löschen noch nicht gespeicherter Benutzer repariert (nur WARP1) Phasen- und Details-Ansicht des Stromzählers versteckt falls nicht verfügbar Download: WARP 2.0.9 bzw. WARP2 2.0.11
  10. Das ist prinzipiell möglich, hat aber im Moment zwei Probleme: Müssen wir dafür die Möglichkeit haben Netzwerk-Interfaces zu brücken. Das hatte ich vor einer Weile getestet, hatte aber nur so halb funktioniert: https://github.com/Tinkerforge/esp32-firmware/issues/14 Hat der Access Point im Moment das Problem, dass die Kommunikation zwischen Clients (also wenn du z.b. deinen Tesla und ein Handy im Netz der Wallbox hast und zwischen den beiden Daten hin- und herschickst) extrem langsam ist. Das könnte die gebrückten Interfaces auch betreffen. https://github.com/espressif/arduino-esp32/issues/6706
  11. rtrbt

    Warp App

    Eine "echte" App wird es erstmal nicht geben. Das hat zu wenig Mehrwert dafür, dass wir dann zwei Plattformen (iOS und Android) maintainen müssen. Eine PWA bzw. Schritte in die Richtung (wie das genannte Metatag) sollten wir in irgendeiner Weise umsetzen. Habe dafür mal ein Issue aufgemacht: https://github.com/Tinkerforge/esp32-firmware/issues/183
  12. Wenn du prinzipiell das Web Interface noch erreichst, kannst du http://10.0.0.1/recovery (10.0.0.1 ersetzen durch IP oder Hostname der Wallbox) versuchen. Da gibt es einen "Force Reboot"-Button.
  13. Leider noch nicht. Wir haben letzte Woche das OCPP-Test-Tool bekommen, damit teste ich gerade die Implementierung durch. Das dauert leider etwas, weil ich mehr mit dem Tool kämpfe (proprietäre Software halt) als dass ich Tests ausführe.
  14. rtrbt

    Veröffentlichungen

    Firmware: WARP2 2.0.10 Provisionierungsmodus repariert Download: WARP2 2.0.10
  15. Das ist natürlich fatal, kann ich hier aber nicht reproduzieren. Kannst du das nochmal ausprobieren? Das müsste wieder der Bug sein, den ich eCarUp gemeldet habe: Mein StopTransaction.req wird nicht bestätigt und dann läuft der Zustand auf der WARP und bei eCarUp auseinander. Ich muss da nochmal mit Wireshark draufgucken, das Timing sieht bei dir interessant aus. Da du das auch mit SteVe erzeugen kannst, ist das natürlich noch seltsamer. Sehe ich mir mal an.
  16. rtrbt

    Veröffentlichungen

    Firmware WARP2 2.0.92 Details hier:
  17. Habe den Fix gleich in OCPP-Beta 3 gepackt.
  18. Das stimmt, das ist aber okay. Die Wallbox wartet nur eine gewisse Zeit auf ein NFC-Tag, bevor sie nach Finishing geht. Aus Finishing kannst du aber mit einem Tag (oder RemoteStartTransaction, also z.B. per App) wieder nach Preparing gehen. Das passiert in deinem Fall auch, nur dass RemoteStartTransaction sofort nach Transaction geht weil das Kabel auch angesteckt ist. Folgendes ist aber sehr interessant: Beim Übergang nach Transaction sollte ein StartTransaction.req geschickt werden, das passiert aber nicht. Das ist auf meiner Seite kaputt. Ich sehe mir das nochmal in Ruhe an (Änderungen an dem Zustands-Automaten sind immer etwas heikel).
  19. Ah das erklärt warum ich das falsch interpretiert habe. Jedenfalls: evse/start_charging (und auch /stop_charging) haben sich anders verhalten als der Taster. Du konntest damit unabsichtlicherweise eine zukünftige Ladung starten, ohne dass ein Auto angeschlossen ist. Das ist in WARP 2.0.8 bzw. WARP2 2.0.9 gefixt. Gib bitte Bescheid, falls du das Problem dann immer noch hast)
  20. Aktualisiert bitte alle mal auf WARP 2.0.8 bzw. WARP2 2.0.9. Das Problem sollte damit weg sein. (FYI hier der Commit, der den Bug behebt: https://github.com/Tinkerforge/esp32-firmware/commit/675387f331678918176ece325fdbf83416a33ae9)
  21. Firmware: ESP32 Brick 2.0.2, ESP32 Ethernet Brick 2.0.2 Add WireGuard support Make authentication secret, listen port and address configurable Add NTP state and synced time to status page Improve firmware update error handling in web interface Update timezone database Improve translations Fix commands without payload via HTTP GET Add reset API for configurations Add reset button to configuration pages Fix firmware hanging after 2^32 ms (~ 49 days 17 hours) Fix access point as fallback not starting correctly Download: ESP32 Brick, ESP32 Ethernet Brick
  22. Firmware: ESP32 Brick 2.0.2, ESP32 Ethernet Brick 2.0.2 WireGuard-Unterstützung hinzugefügt Authentication-Secret, Listen-Port und -Adresse konfigurierbar gemacht NTP-Zustand und synchronisierte Zeit zur Statusseite hinzugefügt Fehlerbehandlung bei Firmware-Updates verbessert Zeitzonen-Datenbank aktualisiert Übersetzungen verbessert Auslösen von Kommandos ohne Payload via HTTP GET repariert Reset-API für Konfigurationen hinzugefügt Zurücksetzen-Buttons in Webinterface-Unterseiten hinzugefügt Firmware-Probleme nach ~ 49 Tagen Laufzeit behoben Access-Point als Fallback repariert Download: ESP32 Brick, ESP32 Ethernet Brick
  23. rtrbt

    Veröffentlichungen

    Firmware: WARP 2.0.8 und WARP2 2.0.9 Strompreis-Konfiguration und Ladekosten-Anzeige für Webinterface und Ladelogbuch hinzugefügt WireGuard-Unterstützung hinzugefügt Real-Time Clock Bricklet 2.0 Unterstützung hinzugefügt Fehlerbehandlung bei Firmware-Updates verbessert Freigabe-Button der Ladestromgrenzen deaktiviert falls bereits freigegeben Zeitzonen-Datenbank aktualisiert Übersetzungen verbessert Bestätigungsdialog zu Stromzähler-Reset hinzugefügt Auslösen von Kommandos ohne Payload via HTTP GET repariert Behoben, dass Stromlimits verloren gingen, wenn eine bereits aktive Ladestromgrenze aktiviert wrude (WARP2) Front-Taster und GPIO-Konfiguration persistent gemacht (durch Update auf Ladecontroller-Firmware 2.1.8) Reset-API für Konfigurationen hinzugefügt Zurücksetzen-Buttons in Webinterface-Unterseiten hinzugefügt Firmware-Probleme nach ~ 49 Tagen Laufzeit behoben Access-Point als Fallback repariert evse/start_charging und stop_charging-API-Verhalten bei nicht angeschlossenem Fahrzeug repariert Download: WARP 2.0.8 bzw. WARP2 2.0.9 Edit: Links repariert
  24. Die entsprechende Ladestromgrenze steht auf "clear_on_disconnect": true, das ist auch korrekt. In der Stromgrenze steht aber max_current 32000, so als ob jemand start_charging aufgerufen hat. Ich habe nochmal kurz die API getestet, folgendes ist mir aufgefallen: Wenn kein Auto angeschlossen ist, Auto-Start aus ist und du den Taster drückst, dann passiert nichts, so wie man das erwarten würde. Das Webinterface lässt dich dann auch nicht auf Start klicken. Die API kannst du aber aufrufen und dann wird in die Ladestromgrenze des Auto-Starts 32000 geschrieben. Das ist inkonsistent und passt auch nicht zur Dokumentation (da steht "Ein Aufruf dieser Funktion ist äquivalent zum Starten über den Taster an der Wallbox"). Fixen wir mit der nächsten Firmware. Eigentlich hat evse/stop_charging aber das selbe Problem, d.h. wenn das auch durchgekommen ist, hätte am 20.11. morgens die Stromgrenze wieder auf 0 gesetzt werden müssen. Eventuell Netzwerk-Probleme?
  25. Es sieht so aus als wäre das leider nicht so einfach. Die Modbus-Implementierung, die wir verwenden hat die Informationen zwar intern, aber wir können die von außen nicht einfach abfragen. Ich habe mal ein Issue aufgemacht, dass wir entscheiden müssen, ob man "schlimme Dinge" programmieren möchte, um das auszulesen: https://github.com/Tinkerforge/esp32-firmware/issues/176
×
×
  • Neu erstellen...