skip to content
Dawid Rycerz

W końcu osiągnąłem kolejny kamień milowy w automatyzacji zarządzania energia w kamperze.

Ostatnio przestałem dostawać napięcie na akumulatorze od alternatora - niby alternator sprawny i podciągając przewód prosto od wyjścia alternatora do akumulatora wszystko działa - pewnie coś z wiązka.

Termin u mechanika dopiero za 2 tygodnie - wiec co tu robić?

Od dawna chodził mi po głownie pomysł, aby jeden separator napięcia (ładowarka lądująca z alternatora cześć mieszkalna) podłączyć odwrotnie i w razie zostawienia na dłużej samochodu lądować z solarów akumulator przedni.

Chciałbym widzieć na panelu dodatkowe przełączniki od ładowarek i potem przekręcając kluczyk stacyjki automatycznie włączyć ładowanie.

W przyszłości mógłbym to rozwinąć - i np. jeśli mam powyżej 80% stanu energii w części kamperowej, i załączyło się ładowanie z silnika, to zacznij grzać wodę w boilerze.

Niestety było kilka problemów żeby dojść do takiej automatyzacji:

  • CerboGX (“mózg kampera”) nie znal stanu silnika - czy pracuje czy jest wyłączony
  • CerboGX ma tylko 2 wbudowane przekaźniki do kontrolowania innych urządzeń i już są podłączone do przetwornicy i boilera
  • Mam płytkę z dodatkowymi 4rema przekaźnikami, ale jest niekompatybilna z pluginem do cerbo.
Screenshot z aplikacji nodered z automatyzacja uruchamiania przekaźnika w zależności od stanu  silnika. Panel kontrolny Victron cerbogx z sześcioma przełącznikami. Od lewej przetwornica, bojler, orion samochód, orion kamper.

Najpierw wynalazłem w internecie schemat na którym z pomocą optoizolatora można podać sygnał w zależności od napięcia 12v w innym przewodzie.

Znalazłem odpowiedni bezpiecznik w samochodzie, który dostawał napięcie 12v po przekręceniu kluczyka stacyjki i puściłem od niego przewód od spodu samochodu aż po sam tył. Wykorzystałem otwory które już istniały idące do separatorów.

Podpiąłem izolator, podpiąłem cerbo - działa, skonfigurowałem input jako generator :D

Mam sygnał - na panelu pojawił się status silnika, co tez znaczy, ze mam do niego dostęp z poziomu NodeRed.

To było proste, teraz zacznie się prawdziwa zabawa z dodaniem przekaźników…

Pseudo schemat obrazujący jak wykrywać uruchomienie silnika w cerboGX przez napięcie 12v z optoizolatorem. Panel statusu z cerboGX pokazujacy uruchomiony silnik.

Wynalazłem repozytorium, które dodaje wsparcie dodatkowych przekaźników do cerbo. github.com/Lucifer06/RemoteGPIO

W skrócie - będziemy sterować zewnętrznym urządzeniem poprzez konwerter rs485-usb za pomocą protokołu modbus w zależności od stanu przełącznika w cerboGX (tego z panelu) słuchając stanu na systemowym dbus.

Wszystko jest w bibliotece, tylko… Nie do mojej chińskiej płytki. Do mojej płytki nawet niema dobrej dokumentacji - wszystko co tam było nie działało.

Zaczynam od reverse engineeringu - wysyłam rożne wartości na rożne “discrete input” i “input register”. Po kilku dniach mam działający zestaw komend który włącza i wyłącza każdy z czterech przekaźników.

Teraz ten plugin do cerbo. Caly byl napisany w bashu i bardzo nie kompatybilny z tym co moja płytka oferowała (trust me). Proste dodanie innej komendy nie wchodziło w grę i musiałem to przepisać pod siebie.

Znalazlem bibliotekę do Pythona od Victrona, która załatwia sporo rzeczy za mnie. Wystarczywszy otworzyć obiekt, który słucha na danych ścieżkach z dbus i wywołuje handler przy zmianie statusu. Potem juz tylko kilka godzin ślęczenia na pymodbus i ustabilizowanie zapytań i wuala.

Wszystko wgrane do Cerbo, serwis podmieniony - przełączam na telefonie stan przekaźnika i słyszę charakterystyczny klik!

Na koniec zostało podłączenie przewodów sygnałowych z dwóch przekaźników do separatorów “Orion”, uruchomienie automatyzacji w NodeRed i wszystko działa!

Przekręcam stacyjkę i po minucie (dodałem lekki delay jakbym tylko chciał szyby opuścić) załącza się ładowanie.

Co ja teraz zrobię z tym zaoszczędzonym czasem.

Pytka z przekaźnikami.

Zobacz oryginalny wpis na Fediversum →