From d73fe070a64284d305b2542d954683f0b4f55d12 Mon Sep 17 00:00:00 2001 From: Yinyin Liu Date: Tue, 18 Jun 2024 13:16:35 +0200 Subject: [PATCH] Update battery folder for Cerbo --- .../dbus-fzsonick-48tl-Ivo/__init__.py | 0 .../dbus-fzsonick-48tl-Ivo/config.py | 54 - .../dbus-fzsonick-48tl-Ivo/config.pyc | Bin 1246 -> 0 bytes .../dbus-fzsonick-48tl-Ivo/convert.py | 160 - .../dbus-fzsonick-48tl-Ivo/convert.pyc | Bin 5476 -> 0 bytes .../dbus-fzsonick-48tl-Ivo/data.py | 125 - .../dbus-fzsonick-48tl-Ivo/data.pyc | Bin 4923 -> 0 bytes .../dbus-fzsonick-48tl.py | 354 - .../dbus-fzsonick-48tl.pyc | Bin 19070 -> 0 bytes .../ext/velib_python/ve_utils.py | 202 - .../ext/velib_python/ve_utils.pyc | Bin 8991 -> 0 bytes .../ext/velib_python/vedbus.py | 496 - .../ext/velib_python/vedbus.pyc | Bin 21834 -> 0 bytes .../python_libs/__init__.py | 0 .../python_libs/__init__.pyc | Bin 134 -> 0 bytes .../python_libs/ie_dbus/__init__.py | 0 .../python_libs/ie_dbus/__init__.pyc | Bin 142 -> 0 bytes .../python_libs/ie_dbus/dbus_service.py | 54 - .../python_libs/ie_dbus/dbus_service.pyc | Bin 2657 -> 0 bytes .../python_libs/ie_dbus/private/__init__.py | 0 .../python_libs/ie_dbus/private/__init__.pyc | Bin 150 -> 0 bytes .../python_libs/ie_dbus/private/datatypes.py | 22 - .../python_libs/ie_dbus/private/datatypes.pyc | Bin 883 -> 0 bytes .../ie_dbus/private/dbus_connection.py | 185 - .../ie_dbus/private/dbus_connection.pyc | Bin 8378 -> 0 bytes .../ie_dbus/private/dbus_daemon.py | 273 - .../ie_dbus/private/dbus_daemon.pyc | Bin 9390 -> 0 bytes .../python_libs/ie_dbus/private/dbus_types.py | 139 - .../ie_dbus/private/dbus_types.pyc | Bin 4364 -> 0 bytes .../ie_dbus/private/message_types.py | 259 - .../ie_dbus/private/message_types.pyc | Bin 9236 -> 0 bytes .../ie_dbus/private/own_properties.py | 177 - .../ie_dbus/private/own_properties.pyc | Bin 6724 -> 0 bytes .../ie_dbus/private/remote_properties.py | 166 - .../ie_dbus/private/remote_properties.pyc | Bin 6455 -> 0 bytes .../python_libs/ie_dbus/private/settings.py | 89 - .../python_libs/ie_dbus/private/settings.pyc | Bin 3664 -> 0 bytes .../ie_dbus/private/ve_constants.py | 11 - .../ie_dbus/private/ve_constants.pyc | Bin 609 -> 0 bytes .../python_libs/ie_utils/__init__.py | 0 .../python_libs/ie_utils/__init__.pyc | Bin 143 -> 0 bytes .../python_libs/ie_utils/filters.py | 73 - .../python_libs/ie_utils/filters.pyc | Bin 2634 -> 0 bytes .../python_libs/ie_utils/main_loop.py | 30 - .../python_libs/ie_utils/main_loop.pyc | Bin 1069 -> 0 bytes .../python_libs/ie_utils/mixins.py | 115 - .../python_libs/ie_utils/mixins.pyc | Bin 4808 -> 0 bytes .../python_libs/ie_utils/utils.py | 44 - .../python_libs/ie_utils/utils.pyc | Bin 1530 -> 0 bytes .../python_libs/pysnooper/__init__.py | 30 - .../python_libs/pysnooper/pycompat.py | 95 - .../python_libs/pysnooper/tracer.py | 498 - .../python_libs/pysnooper/utils.py | 98 - .../python_libs/pysnooper/variables.py | 133 - .../dbus-fzsonick-48tl-Ivo/service/down | 0 .../dbus-fzsonick-48tl-Ivo/service/log/down | 0 .../dbus-fzsonick-48tl-Ivo/service/log/run | 3 - .../dbus-fzsonick-48tl-Ivo/service/run | 4 - .../dbus-fzsonick-48tl-Ivo/signals.py | 214 - .../dbus-fzsonick-48tl-Ivo/signals.pyc | Bin 10358 -> 0 bytes .../dbus-fzsonick-48tl-Ivo/start.sh | 7 - .../__pycache__/config.cpython-38.pyc | Bin 1053 -> 1053 bytes .../__pycache__/convert.cpython-38.pyc | Bin 3343 -> 3895 bytes .../__pycache__/data.cpython-38.pyc | Bin 3578 -> 3578 bytes .../NodeRedFiles/dbus-fzsonick-48tl/config.py | 6 +- .../dbus-fzsonick-48tl/convert.py | 19 + .../dbus-fzsonick-48tl/dbus-fzsonick-48tl.py | 102 +- .../__pycache__/ve_utils.cpython-38.pyc | Bin 6666 -> 6666 bytes .../__pycache__/vedbus.cpython-38.pyc | Bin 15886 -> 15886 bytes .../__pycache__/config.cpython-38.pyc | Bin 890 -> 0 bytes .../__pycache__/convert.cpython-38.pyc | Bin 3339 -> 0 bytes .../__pycache__/data.cpython-38.pyc | Bin 2344 -> 0 bytes NodeRed/dbus-csv-files/config.py | 51 - NodeRed/dbus-csv-files/convert.py | 119 - NodeRed/dbus-csv-files/data.py | 63 - NodeRed/dbus-csv-files/dbus-csv-files.py | 731 - NodeRed/dbus-csv-files/start.sh | 7 - .../__pycache__/config.cpython-38.pyc | Bin 894 -> 0 bytes .../__pycache__/convert.cpython-38.pyc | Bin 3343 -> 0 bytes .../__pycache__/data.cpython-38.pyc | Bin 3578 -> 0 bytes .../dbus-fzsonick-48tl.cpython-38.pyc | Bin 12185 -> 0 bytes NodeRed/dbus-fzsonick-48tl/config.py | 51 - NodeRed/dbus-fzsonick-48tl/convert.py | 119 - NodeRed/dbus-fzsonick-48tl/data.py | 97 - .../dbus-fzsonick-48tl/dbus-fzsonick-48tl.py | 980 - .../__pycache__/ve_utils.cpython-38.pyc | Bin 6666 -> 0 bytes .../__pycache__/vedbus.cpython-38.pyc | Bin 15886 -> 0 bytes .../ext/velib_python/ve_utils.py | 276 - .../ext/velib_python/vedbus.py | 614 - NodeRed/dbus-fzsonick-48tl/start.sh | 7 - csharp/App/VrmGrabber/Controller_test.cs | 311 + csharp/App/VrmGrabber/VrmGrabber.sln | 25 + .../scripts/upload-bms-firmware-python2 | 302 + .../scripts/upload-bms-firmware-python3 | 303 + typescript/VrmSync/dist/main.js | 103 +- typescript/VrmSync/package-lock.json | 145 +- typescript/VrmSync/vrmData.json | 22994 +++++++++++++--- 97 files changed, 20867 insertions(+), 10668 deletions(-) delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/__init__.py delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/config.py delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/config.pyc delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/convert.py delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/convert.pyc delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/data.py delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/data.pyc delete mode 100755 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/dbus-fzsonick-48tl.py delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/dbus-fzsonick-48tl.pyc delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/ext/velib_python/ve_utils.py delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/ext/velib_python/ve_utils.pyc delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/ext/velib_python/vedbus.py delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/ext/velib_python/vedbus.pyc delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/__init__.py delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/__init__.pyc delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/__init__.py delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/__init__.pyc delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/dbus_service.py delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/dbus_service.pyc delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/__init__.py delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/__init__.pyc delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/datatypes.py delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/datatypes.pyc delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/dbus_connection.py delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/dbus_connection.pyc delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/dbus_daemon.py delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/dbus_daemon.pyc delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/dbus_types.py delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/dbus_types.pyc delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/message_types.py delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/message_types.pyc delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/own_properties.py delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/own_properties.pyc delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/remote_properties.py delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/remote_properties.pyc delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/settings.py delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/settings.pyc delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/ve_constants.py delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/ve_constants.pyc delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_utils/__init__.py delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_utils/__init__.pyc delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_utils/filters.py delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_utils/filters.pyc delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_utils/main_loop.py delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_utils/main_loop.pyc delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_utils/mixins.py delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_utils/mixins.pyc delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_utils/utils.py delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_utils/utils.pyc delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/pysnooper/__init__.py delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/pysnooper/pycompat.py delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/pysnooper/tracer.py delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/pysnooper/utils.py delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/pysnooper/variables.py delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/service/down delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/service/log/down delete mode 100755 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/service/log/run delete mode 100755 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/service/run delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/signals.py delete mode 100644 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/signals.pyc delete mode 100755 NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/start.sh delete mode 100644 NodeRed/dbus-csv-files/__pycache__/config.cpython-38.pyc delete mode 100644 NodeRed/dbus-csv-files/__pycache__/convert.cpython-38.pyc delete mode 100644 NodeRed/dbus-csv-files/__pycache__/data.cpython-38.pyc delete mode 100644 NodeRed/dbus-csv-files/config.py delete mode 100644 NodeRed/dbus-csv-files/convert.py delete mode 100644 NodeRed/dbus-csv-files/data.py delete mode 100755 NodeRed/dbus-csv-files/dbus-csv-files.py delete mode 100755 NodeRed/dbus-csv-files/start.sh delete mode 100644 NodeRed/dbus-fzsonick-48tl/__pycache__/config.cpython-38.pyc delete mode 100644 NodeRed/dbus-fzsonick-48tl/__pycache__/convert.cpython-38.pyc delete mode 100644 NodeRed/dbus-fzsonick-48tl/__pycache__/data.cpython-38.pyc delete mode 100644 NodeRed/dbus-fzsonick-48tl/__pycache__/dbus-fzsonick-48tl.cpython-38.pyc delete mode 100644 NodeRed/dbus-fzsonick-48tl/config.py delete mode 100644 NodeRed/dbus-fzsonick-48tl/convert.py delete mode 100644 NodeRed/dbus-fzsonick-48tl/data.py delete mode 100755 NodeRed/dbus-fzsonick-48tl/dbus-fzsonick-48tl.py delete mode 100644 NodeRed/dbus-fzsonick-48tl/ext/velib_python/__pycache__/ve_utils.cpython-38.pyc delete mode 100644 NodeRed/dbus-fzsonick-48tl/ext/velib_python/__pycache__/vedbus.cpython-38.pyc delete mode 100644 NodeRed/dbus-fzsonick-48tl/ext/velib_python/ve_utils.py delete mode 100644 NodeRed/dbus-fzsonick-48tl/ext/velib_python/vedbus.py delete mode 100755 NodeRed/dbus-fzsonick-48tl/start.sh create mode 100644 csharp/App/VrmGrabber/Controller_test.cs create mode 100644 csharp/App/VrmGrabber/VrmGrabber.sln create mode 100644 firmware/opt/innovenergy/scripts/upload-bms-firmware-python2 create mode 100755 firmware/opt/innovenergy/scripts/upload-bms-firmware-python3 diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/__init__.py b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/config.py b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/config.py deleted file mode 100644 index f87236d24..000000000 --- a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/config.py +++ /dev/null @@ -1,54 +0,0 @@ -import serial -import logging -from data import read_file_one_line - -# dbus configuration - -CONNECTION = 'Modbus RTU' -PRODUCT_NAME = 'FIAMM 48TL Series Battery' -PRODUCT_ID = 0xB012 # assigned by victron -DEVICE_INSTANCE = 1 -SERVICE_NAME_PREFIX = 'com.victronenergy.battery.' - - -# driver configuration - -SOFTWARE_VERSION = '3.0.0' -UPDATE_INTERVAL = 2000 # milliseconds -LOG_LEVEL = logging.INFO -#LOG_LEVEL = logging.DEBUG - - -# battery config - -V_MAX = 54.2 -V_MIN = 42 -R_STRING_MIN = 0.125 -R_STRING_MAX = 0.250 -I_MAX_PER_STRING = 15 -AH_PER_STRING = 40 - -# modbus configuration - -BASE_ADDRESS = 999 -NO_OF_REGISTERS = 56 -MAX_SLAVE_ADDRESS = 25 - - -# RS 485 configuration - -PARITY = serial.PARITY_ODD -TIMEOUT = 0.1 # seconds -BAUD_RATE = 115200 -BYTE_SIZE = 8 -STOP_BITS = 1 -MODE = 'rtu' - -# InnovEnergy IOT configuration - -INSTALLATION_NAME = read_file_one_line('/data/innovenergy/openvpn/installation-name') -INNOVENERGY_SERVER_IP = '10.2.0.1' -INNOVENERGY_SERVER_PORT = 8134 -INNOVENERGY_PROTOCOL_VERSION = '48TL200V3' - - diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/config.pyc b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/config.pyc deleted file mode 100644 index 0381e9f5d19f819d26d96d3dfcf98907a992a42a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1246 zcmZuw&2HO95dLUcvgJzgUtGsd+9)@pfhFbVU=&3iT3oqADN-OQHQviY(b57Fnl!|< z0r%RcNS~s&qPL=lo^$RC^a1(+?JQ{}{acB%GvCb4&NsVT`J=hk{INfs;&v?2{DQvx zHxiQm1`>e3*9~x^z?YCL;i3Xwfgx#HhFk`(LRP_RkTviX$QAHa$W`zDIdPsOit0v^&1P{r zQ_H05t$doHbjy04>#|;Gd#-AbIrKei)C+}c4p`w|0JfzxIg5?$9uu}3gr?hLYMZct z`30!gh@sE=_Di*)ajzeKWBN>tnIGs4bb`^)GDDppq*bOl_Rg*yTtG^?f=!qFHVOo~Yf}kkO^@P_K zK0CDoDlJf(6r?i+jye7isarNQeLFl8o@EtnF3qCNp*>*UC@i>~m?KO0#I>}}h;(4{ z(h5RvC{FA!DCiG7ixt}yU3DB&pGJ8CJG7ncy55+%%s)L7y4A$Y9;)5{_Y6HhR1f~; zqcaS>p64tMLSImP5P648x^SxVk4MnaZ|U&-+dNC->6^pnM=I$|v-CWkwJ&d!zJ*_0 oWb!JBzAPTn=L9s2hOx0+Gj4xXJ=bgRZKGEDs`W(#A&o-+3l&%u2mk;8 diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/convert.py b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/convert.py deleted file mode 100644 index dbc3af66b..000000000 --- a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/convert.py +++ /dev/null @@ -1,160 +0,0 @@ -import struct - -import config as cfg -from data import LedState, BatteryStatus - -# trick the pycharm type-checker into thinking Callable is in scope, not used at runtime -# noinspection PyUnreachableCode -if False: - from typing import Callable, List, Iterable, Union, AnyStr, Any - - -def read_bool(base_register, bit): - # type: (int, int) -> Callable[[BatteryStatus], bool] - - # TODO: explain base register offset - register = base_register + int(bit/16) - bit = bit % 16 - - def get_value(status): - # type: (BatteryStatus) -> bool - value = status.modbus_data[register - cfg.BASE_ADDRESS] - return value & (1 << bit) > 0 - - return get_value - - -def read_float(register, scale_factor=1.0, offset=0.0): - # type: (int, float, float) -> Callable[[BatteryStatus], float] - - def get_value(status): - # type: (BatteryStatus) -> float - value = status.modbus_data[register - cfg.BASE_ADDRESS] - - if value >= 0x8000: # convert to signed int16 - value -= 0x10000 # fiamm stores their integers signed AND with sign-offset @#%^&! - - return (value + offset) * scale_factor - - return get_value - - -def read_registers(register, count): - # type: (int, int) -> Callable[[BatteryStatus], List[int]] - - start = register - cfg.BASE_ADDRESS - end = start + count - - def get_value(status): - # type: (BatteryStatus) -> List[int] - return [x for x in status.modbus_data[start:end]] - - return get_value - - -def comma_separated(values): - # type: (Iterable[str]) -> str - return ", ".join(set(values)) - - -def count_bits(base_register, nb_of_registers, nb_of_bits, first_bit=0): - # type: (int, int, int, int) -> Callable[[BatteryStatus], int] - - get_registers = read_registers(base_register, nb_of_registers) - end_bit = first_bit + nb_of_bits - - def get_value(status): - # type: (BatteryStatus) -> int - - registers = get_registers(status) - bin_registers = [bin(x)[-1:1:-1] for x in registers] # reverse the bits in each register so that bit0 is to the left - str_registers = [str(x).ljust(16, "0") for x in bin_registers] # add leading zeroes, so all registers are 16 chars long - bit_string = ''.join(str_registers) # join them, one long string of 0s and 1s - filtered_bits = bit_string[first_bit:end_bit] # take the first nb_of_bits bits starting at first_bit - - return filtered_bits.count('1') # count 1s - - return get_value - - -def read_led_state(register, led): - # type: (int, int) -> Callable[[BatteryStatus], int] - - read_lo = read_bool(register, led * 2) - read_hi = read_bool(register, led * 2 + 1) - - def get_value(status): - # type: (BatteryStatus) -> int - - lo = read_lo(status) - hi = read_hi(status) - - if hi: - if lo: - return LedState.blinking_fast - else: - return LedState.blinking_slow - else: - if lo: - return LedState.on - else: - return LedState.off - - return get_value - - -# noinspection PyShadowingNames -def unit(unit): - # type: (unicode) -> Callable[[unicode], unicode] - - def get_text(v): - # type: (unicode) -> unicode - return "{0}{1}".format(str(v), unit) - - return get_text - - -def const(constant): - # type: (any) -> Callable[[any], any] - def get(*args): - return constant - return get - - -def mean(numbers): - # type: (List[Union[float,int]]) -> float - return float(sum(numbers)) / len(numbers) - - -def first(ts, default=None): - return next((t for t in ts), default) - - -def bitfields_to_str(lists): - # type: (List[List[int]]) -> str - - def or_lists(): - # type: () -> Iterable[int] - - length = len(first(lists)) - n_lists = len(lists) - - for i in range(0, length): - e = 0 - for l in range(0, n_lists): - e = e | lists[l][i] - yield e - - hexed = [ - '{0:0>4X}'.format(x) - for x in or_lists() - ] - - return ' '.join(hexed) - - -def pack_string(string): - # type: (AnyStr) -> Any - data = string.encode('UTF-8') - return struct.pack('B', len(data)) + data - diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/convert.pyc b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/convert.pyc deleted file mode 100644 index 0baf6194738046af8dfb9d55e939abc9bc7b2d9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5476 zcmbtY>uwv@5uROAlqgZACF^1(K$2nK0d`iu!Q*YBoS$kX;0d|@_k7vGN?+sDuXF$Pl*@RB#-o7MUrV5%t(7i26buI zWiTu4SsBbpdrk%oX*XmrFYS5pQV6cfD`>bR;gp0m38&?iFYTs;Gs?d#VO@y@31=mo zlUFcdQNo5YuShtr#FB)UlvtLqsl*Cx4=?Nfs}e3Kb4|iUCEnrP-SsOtW&9ofwbp%* zb_UC5QMhXZ8`*hWYzNjx`ExRc#d@vW^Dsz~U_Xg$l@G*))hB<0t;(GO_scZSQp+bE zq|%Gbe@ zVhhV=c4Rl7#a)|cX_Q8J|M@0WZuI_8WNF+z+_-hyCY#+XeHP{R#?fLT+fcp@YpV7Uvwo!0=Sgql|Ob>lKkT^q8Wd=mtsD zK@G9l1tP0ac@Hw3`}`%p;m!LlO!SuOGfSix_H#j`4;_yt>6XbN$x~}2dr219cX3rH zxGKx_anhDKR&3z5OWFfZt} zYR`p)&zMy%SFucFfTeJaMwz_DPbrHamC8JmtEySS^V6D#_!RUg(g#%!et}C-N%1#I zB0b9W_noik|AP#rg3kiau6z*RT3QN+JX}s_K8s8@8w`R@5gi3N`bqdJ3Uls^DY#1; z=sudDX8a5U+5ikkw!ZY`t*@~1(GLD=iKxm63-}qbrXhf5P-OiT#2bK5-2gZdWuENp z{fG^OYJ55e?m{EL`fWwl2)8RNJ=|Nt-uHAbe5rfUL_*Z3DsAJ|dvaQ3-#$RC0@IVz zDLI*<%|!8OO-^cZfE_g#1zOkAb{jKl+PM_JTd+n$CUSF~9?_`mm(fA_Xj=_I=#hQ5N-Vi5~5)bMLw&71aT@jX3467M;~w0zUlBnr+a-VlxSLiPI{1df1m#as0k7c_*_#g77oaeOV()0)HyNIUBJ@>WJ& zBhEAjb`B7lGVTaEP*j$C7Qz=>r!Q`vI*0SRm*s=Nnh!y`icgWx97&7~)A#~iQ-1}p zBG~BIrVv+lPmrU5iV0&r;id94xyhR-84aI2G`ieqICITPw4l6Cnz!+2LYDimGOO{KwaJTj(9TnXSF&yZ35~a>X%;|JE*pKoH z4->R@5Cti$C?TbFwoDy0oZ*AvNQqZk`*vWt8zauAP>GF#qL#5h=HA>W*S_+eqP_nh z`g}qQ*NrW0)-K+Y2fg4Fd8dz`d&ful-9OU~s;HgA8E#pZv#Pw%`WQyNV3=G~yNeoI z_@7G6;wcK~WPTXi;sKT))S|w2tCxbQXqi(HdKPMr8;m#%t#NKb*Ft;2=mh8Qu2WpA zi$%vgBJk(<6!g7=*qd@hJynjoMBO`X(d7swapyzhC#n$xRz;3KD(~rxxU+YaQy5g@ zX-r{juxM=?`=0(*9)pXR-jK%{R64Vzqo->CJGeHV(HNSR2WdZY(-$ixaNM^~)bnX4 z!SD7$qaW)U>6$p8^I_dEIVQAlX1UXYb4bAsB9%q7uobkh75vxk@nY-at-H5=f2#W3 zC~rQ-P8|!?-)5JWUvSYukk&nkj-ybmQ;T)WWL4xcq+z`3#ZeL#9h-4>{1&`&2AZ#U zKdva8=xoMcbMqq*2qo}>m;xFIF;2j78k0DNXJsPLAXZ1e&I=m;F$= zDN4Ip7%2(u!>-l0P)9-c&@iHB&2BW;(h9!AaSp)6gcX#dHnoiA<-bu7WsBeR)^#k$ zdqPpWP-uH`-@Q!O15+m`!#b-_dlV%2$wide=SLW)44q||c!mNEk8XI|u!tItEQYm8 z$6&*^1ZI;9UxH{4G|X4?2#flng||rxZ1b4>ud$pRUa85VKLbH`@K$V?M0a_Z;(aU) gys22J*1VgQdb8QA&)26KOZ9i_v-N3E)%xnc0j$v?;Q#;t diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/data.py b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/data.py deleted file mode 100644 index b860d860c..000000000 --- a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/data.py +++ /dev/null @@ -1,125 +0,0 @@ -import config as cfg - - -# trick the pycharm type-checker into thinking Callable is in scope, not used at runtime -# noinspection PyUnreachableCode -if False: - from typing import Callable, List, Optional, AnyStr, Union, Any - - -class LedState(object): - """ - from page 6 of the '48TLxxx ModBus Protocol doc' - """ - off = 0 - on = 1 - blinking_slow = 2 - blinking_fast = 3 - - -class LedColor(object): - green = 0 - amber = 1 - blue = 2 - red = 3 - - -class ServiceSignal(object): - - def __init__(self, dbus_path, get_value_or_const, unit=''): - # type: (str, Union[Callable[[],Any],Any], Optional[AnyStr] )->None - - self.get_value_or_const = get_value_or_const - self.dbus_path = dbus_path - self.unit = unit - - @property - def value(self): - try: - return self.get_value_or_const() # callable - except: - return self.get_value_or_const # value - - -class BatterySignal(object): - - def __init__(self, dbus_path, aggregate, get_value, unit=''): - # type: (str, Callable[[List[any]],any], Callable[[BatteryStatus],any], Optional[AnyStr] )->None - """ - A Signal holds all information necessary for the handling of a - certain datum (e.g. voltage) published by the battery. - - :param dbus_path: str - object_path on DBus where the datum needs to be published - - :param aggregate: Iterable[any] -> any - function that combines the values of multiple batteries into one. - e.g. sum for currents, or mean for voltages - - :param get_value: (BatteryStatus) -> any - function to extract the datum from the modbus record, - """ - - self.dbus_path = dbus_path - self.aggregate = aggregate - self.get_value = get_value - self.unit = unit - - -class Battery(object): - - """ Data record to hold hardware and firmware specs of the battery """ - - def __init__(self, slave_address, hardware_version, firmware_version, bms_version, ampere_hours): - # type: (int, str, str, str, int) -> None - self.slave_address = slave_address - self.hardware_version = hardware_version - self.firmware_version = firmware_version - self.bms_version = bms_version - self.ampere_hours = ampere_hours - self.n_strings = int(ampere_hours/cfg.AH_PER_STRING) - self.i_max = self.n_strings * cfg.I_MAX_PER_STRING - self.v_min = cfg.V_MIN - self.v_max = cfg.V_MAX - self.r_int_min = cfg.R_STRING_MIN / self.n_strings - self.r_int_max = cfg.R_STRING_MAX / self.n_strings - - def __str__(self): - return 'slave address = {0}\nhardware version = {1}\nfirmware version = {2}\nbms version = {3}\nampere hours = {4}'.format( - self.slave_address, self.hardware_version, self.firmware_version, self.bms_version, str(self.ampere_hours)) - - -class BatteryStatus(object): - """ - record holding the current status of a battery - """ - def __init__(self, battery, modbus_data): - # type: (Battery, List[int]) -> None - - self.battery = battery - self.modbus_data = modbus_data - - def serialize(self): - # type: () -> str - - b = self.battery - - s = cfg.INNOVENERGY_PROTOCOL_VERSION + '\n' - s += cfg.INSTALLATION_NAME + '\n' - s += str(b.slave_address) + '\n' - s += b.hardware_version + '\n' - s += b.firmware_version + '\n' - s += b.bms_version + '\n' - s += str(b.ampere_hours) + '\n' - - for d in self.modbus_data: - s += str(d) + '\n' - - return s - - -def read_file_one_line(file_name): - - with open(file_name, 'r') as file: - return file.read().replace('\n', '').replace('\r', '').strip() - diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/data.pyc b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/data.pyc deleted file mode 100644 index 138d71341eb562a6ee1d52530eb7bea11ad0304f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4923 zcmbtY-E!N;6<&Z6B|ty6>{v?Dq}?WM!pzuGld6fw)4GvmCDn{fxu9x0Y%?ebEJ-N% zVX;eDOsy;XzB9e*P2ZxA(#ebT0ov~zkRUBPnOYXL%iV+hJ?A^$IbiKSEADUq*$qN5 z{;T2pa}@n=R1y9ykqFVYgtA4k%Mx28HIdGV_MAxPMSEVPb0%{a5s@>Ix|MWQL`xItawWYa zqLqnswUS;I(Ix7%*XS~>#${YA{xANTjXIiU5!G&xBta)pW)7W$SR0le4osY9L1Jj! zPBvzsYwoON9*F7|2rRgjA;r7j=gVWPfc`uLd47I#poEiIQ-_u_Dz#)MS%%6 z2P2OZOGnaF)oXRD{7iJZnO|s-ml|p-Zba9U?&j#%kN@d&%(vB(^ z1)XH5SSN*wrg!Al1unXZt=>SRD;a_D^FA8YT>+kFz>h5y zLkOULitZeNhpcB%L`WB>LQCwT=%1i^Vv8p*H5wK-P}jHtMB)q$0#37B z8u0VN5AzHT;Xq85^ap|IvxbIQY*@|Q(<lox+qiO@yRBf-Wu`z68?BVz$-5&6#Eo9MpQImv5TRX;<6 z%`5DhwQAKYcIYY6ytgobuQe$00Z=yb-hOWLi(>04R{0TaPFAnm%M0wOcLHNnG5S7S z5g1>@6@Wyr@#twtH=|Mki4Hi%Plc!%AU&C5L;;#avouS82W`8Kvm?u6$bOzgT7qn4 zoOSae4TxZ6rb4B4P>dvGOm_Vsi@-fSBEJ9&giu!yXA-@J$Z3@VpymPEV!)TT`!(HOk$9+{OUZUJ6Qwqm5 zx$LOvE;FkJJupWPynjpXL)jET{upGVujP%~65q5d1C#jUGk0R*S@9=lE{r@Y z`Q@2gni+lqGt=DdvohBuA1LFBC(%5oJq7}dU22gNf!7ZIWd@B!eg7d{mSV6#8hbwY zlaX2Z-mlP_n((4*L`mHq3a3SNyKXzH&xL&^`q$y5Pq4V_l!VWOMB$i7XB>YJM=6$Y zgq{$Q>x9HWREQ)QJA|_rnJAhjoivikbj)Uk{JM-cKD{TDY)*#qKBMX;s;T}i=mLMn zBBia6QF1;>hNHrV{udeqbs^3yVSs#oaoacp=xy$ElC$yISb)R_W9A9`aFdCcWcBlc zh4X^NSphO>n&r%{boz5XiYxAZ{kAxR!{G!NR+}C3m%odLke69kQxmk^2I;X>*#~Hu zcTnv&n}-kfntR@tU-|dF!=uC9!vp`pp4ZwxY??J5&^p>VIM_LYz;Eu{+w-<*6-m`g zsHijssf{TMngS(rt+}3gb9!|{F)?aY#6c2&tC&idv}%sMVy#&lDD>H|FI#Wg-|ug? zai%F=F6wWeVwFFkl>UY{Rj1CdA@o)}c^4hS$N>zV+Tw3pgdegfx_}cLW%|m6w}_12y$TgX>_UYaBtfV+7*SLka2n2v z?8bQGr(Xeh2KA;&xqxlxEs?hMd0ix`KJs-ng0yri`-;_|G5p&J-XObi&tn+U)xHQ4 zt@w!<4ZtfNWWr-YCVhG}su)!?ng^EYI{#qc(aW?)>4Qg@_J|5SvXA!#s_CsRXli~% h`*ryf$!$85rh6>U*R79h>+br(`r7(i>l^Fu{twr04rl-X diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/dbus-fzsonick-48tl.py b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/dbus-fzsonick-48tl.py deleted file mode 100755 index 11266c5d0..000000000 --- a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/dbus-fzsonick-48tl.py +++ /dev/null @@ -1,354 +0,0 @@ -#!/usr/bin/python2 -u -# coding=utf-8 - -import logging -import re -import socket -import sys -import gobject -import signals -import config as cfg - -from dbus.mainloop.glib import DBusGMainLoop -from pymodbus.client.sync import ModbusSerialClient as Modbus -from pymodbus.exceptions import ModbusException, ModbusIOException -from pymodbus.other_message import ReportSlaveIdRequest -from pymodbus.pdu import ExceptionResponse -from pymodbus.register_read_message import ReadInputRegistersResponse -from data import BatteryStatus, BatterySignal, Battery, ServiceSignal -from python_libs.ie_dbus.dbus_service import DBusService - -# trick the pycharm type-checker into thinking Callable is in scope, not used at runtime -# noinspection PyUnreachableCode -if False: - from typing import Callable, List, Iterable, NoReturn - - -RESET_REGISTER = 0x2087 - - -def init_modbus(tty): - # type: (str) -> Modbus - - logging.debug('initializing Modbus') - - return Modbus( - port='/dev/' + tty, - method=cfg.MODE, - baudrate=cfg.BAUD_RATE, - stopbits=cfg.STOP_BITS, - bytesize=cfg.BYTE_SIZE, - timeout=cfg.TIMEOUT, - parity=cfg.PARITY) - - -def init_udp_socket(): - # type: () -> socket - - s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) - s.setblocking(False) - - return s - - -def report_slave_id(modbus, slave_address): - # type: (Modbus, int) -> str - - slave = str(slave_address) - - logging.debug('requesting slave id from node ' + slave) - - with modbus: - - request = ReportSlaveIdRequest(unit=slave_address) - response = modbus.execute(request) - - if response is ExceptionResponse or issubclass(type(response), ModbusException): - raise Exception('failed to get slave id from ' + slave + ' : ' + str(response)) - - return response.identifier - - -def identify_battery(modbus, slave_address): - # type: (Modbus, int) -> Battery - - logging.info('identifying battery...') - - hardware_version, bms_version, ampere_hours = parse_slave_id(modbus, slave_address) - firmware_version = read_firmware_version(modbus, slave_address) - - specs = Battery( - slave_address=slave_address, - hardware_version=hardware_version, - firmware_version=firmware_version, - bms_version=bms_version, - ampere_hours=ampere_hours) - - logging.info('battery identified:\n{0}'.format(str(specs))) - - return specs - - -def identify_batteries(modbus): - # type: (Modbus) -> List[Battery] - - def _identify_batteries(): - slave_address = 0 - n_missing = -255 - - while n_missing < 3: - slave_address += 1 - try: - yield identify_battery(modbus, slave_address) - n_missing = 0 - except Exception as e: - logging.info('failed to identify battery at {0} : {1}'.format(str(slave_address), str(e))) - n_missing += 1 - - logging.info('giving up searching for further batteries') - - batteries = list(_identify_batteries()) # dont be lazy! - - n = len(batteries) - logging.info('found ' + str(n) + (' battery' if n == 1 else ' batteries')) - - return batteries - - -def parse_slave_id(modbus, slave_address): - # type: (Modbus, int) -> (str, str, int) - - slave_id = report_slave_id(modbus, slave_address) - - sid = re.sub(r'[^\x20-\x7E]', '', slave_id) # remove weird special chars - - match = re.match('(?P48TL(?P[0-9]+)) *(?P.*)', sid) - - if match is None: - raise Exception('no known battery found') - - return match.group('hw').strip(), match.group('bms').strip(), int(match.group('ah').strip()) - - -def read_firmware_version(modbus, slave_address): - # type: (Modbus, int) -> str - - logging.debug('reading firmware version') - - with modbus: - - response = read_modbus_registers(modbus, slave_address, base_address=1054, count=1) - register = response.registers[0] - - return '{0:0>4X}'.format(register) - - -def read_modbus_registers(modbus, slave_address, base_address=cfg.BASE_ADDRESS, count=cfg.NO_OF_REGISTERS): - # type: (Modbus, int, int, int) -> ReadInputRegistersResponse - - logging.debug('requesting modbus registers {0}-{1}'.format(base_address, base_address + count)) - - return modbus.read_input_registers( - address=base_address, - count=count, - unit=slave_address) - - -def read_battery_status(modbus, battery): - # type: (Modbus, Battery) -> BatteryStatus - """ - Read the modbus registers containing the battery's status info. - """ - - logging.debug('reading battery status') - - with modbus: - data = read_modbus_registers(modbus, battery.slave_address) - return BatteryStatus(battery, data.registers) - - -def publish_values_on_dbus(service, battery_signals, battery_statuses): - # type: (DBusService, Iterable[BatterySignal], Iterable[BatteryStatus]) -> () - - publish_individuals(service, battery_signals, battery_statuses) - publish_aggregates(service, battery_signals, battery_statuses) - - -def publish_aggregates(service, signals, battery_statuses): - # type: (DBusService, Iterable[BatterySignal], Iterable[BatteryStatus]) -> () - - for s in signals: - if s.aggregate is None: - continue - values = [s.get_value(battery_status) for battery_status in battery_statuses] - value = s.aggregate(values) - service.own_properties.set(s.dbus_path, value, s.unit) - - -def publish_individuals(service, signals, battery_statuses): - # type: (DBusService, Iterable[BatterySignal], Iterable[BatteryStatus]) -> () - - for signal in signals: - for battery_status in battery_statuses: - address = battery_status.battery.slave_address - dbus_path = '/_Battery/' + str(address) + signal.dbus_path - value = signal.get_value(battery_status) - service.own_properties.set(dbus_path, value, signal.unit) - - -def publish_service_signals(service, signals): - # type: (DBusService, Iterable[ServiceSignal]) -> NoReturn - - for signal in signals: - service.own_properties.set(signal.dbus_path, signal.value, signal.unit) - - -def upload_status_to_innovenergy(sock, statuses): - # type: (socket, Iterable[BatteryStatus]) -> bool - - logging.debug('upload status') - - try: - for s in statuses: - sock.sendto(s.serialize(), (cfg.INNOVENERGY_SERVER_IP, cfg.INNOVENERGY_SERVER_PORT)) - except: - logging.debug('FAILED') - return False - else: - return True - - -def print_usage(): - print ('Usage: ' + __file__ + ' ') - print ('Example: ' + __file__ + ' ttyUSB0') - - -def parse_cmdline_args(argv): - # type: (List[str]) -> str - - if len(argv) == 0: - logging.info('missing command line argument for tty device') - print_usage() - sys.exit(1) - - return argv[0] - - -def reset_batteries(modbus, batteries): - # type: (Modbus, Iterable[Battery]) -> NoReturn - - logging.info('Resetting batteries...') - - for battery in batteries: - - result = modbus.write_registers(RESET_REGISTER, [1], unit=battery.slave_address) - - # expecting a ModbusIOException (timeout) - # BMS can no longer reply because it is already reset - success = isinstance(result, ModbusIOException) - - outcome = 'successfully' if success else 'FAILED to' - logging.info('Battery {0} {1} reset'.format(str(battery.slave_address), outcome)) - - logging.info('Shutting down fz-sonick driver') - exit(0) - - -alive = True # global alive flag, watchdog_task clears it, update_task sets it - - -def create_update_task(modbus, service, batteries): - # type: (Modbus, DBusService, Iterable[Battery]) -> Callable[[],bool] - """ - Creates an update task which runs the main update function - and resets the alive flag - """ - _socket = init_udp_socket() - _signals = signals.init_battery_signals() - - def update_task(): - # type: () -> bool - - global alive - - logging.debug('starting update cycle') - - if service.own_properties.get('/ResetBatteries').value == 1: - reset_batteries(modbus, batteries) - - statuses = [read_battery_status(modbus, battery) for battery in batteries] - - publish_values_on_dbus(service, _signals, statuses) - upload_status_to_innovenergy(_socket, statuses) - - logging.debug('finished update cycle\n') - - alive = True - - return True - - return update_task - - -def create_watchdog_task(main_loop): - # type: (DBusGMainLoop) -> Callable[[],bool] - """ - Creates a Watchdog task that monitors the alive flag. - The watchdog kills the main loop if the alive flag is not periodically reset by the update task. - Who watches the watchdog? - """ - def watchdog_task(): - # type: () -> bool - - global alive - - if alive: - logging.debug('watchdog_task: update_task is alive') - alive = False - return True - else: - logging.info('watchdog_task: killing main loop because update_task is no longer alive') - main_loop.quit() - return False - - return watchdog_task - - -def main(argv): - # type: (List[str]) -> () - - logging.basicConfig(level=cfg.LOG_LEVEL) - logging.info('starting ' + __file__) - - tty = parse_cmdline_args(argv) - modbus = init_modbus(tty) - - batteries = identify_batteries(modbus) - - if len(batteries) <= 0: - sys.exit(2) - - service = DBusService(service_name=cfg.SERVICE_NAME_PREFIX + tty) - - service.own_properties.set('/ResetBatteries', value=False, writable=True) # initial value = False - - main_loop = gobject.MainLoop() - - service_signals = signals.init_service_signals(batteries) - publish_service_signals(service, service_signals) - - update_task = create_update_task(modbus, service, batteries) - update_task() # run it right away, so that all props are initialized before anyone can ask - watchdog_task = create_watchdog_task(main_loop) - - gobject.timeout_add(cfg.UPDATE_INTERVAL * 2, watchdog_task, priority = gobject.PRIORITY_LOW) # add watchdog first - gobject.timeout_add(cfg.UPDATE_INTERVAL, update_task, priority = gobject.PRIORITY_LOW) # call update once every update_interval - - logging.info('starting gobject.MainLoop') - main_loop.run() - logging.info('gobject.MainLoop was shut down') - - sys.exit(0xFF) # reaches this only on error - - -main(sys.argv[1:]) diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/dbus-fzsonick-48tl.pyc b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/dbus-fzsonick-48tl.pyc deleted file mode 100644 index 095ea01bc889137be28d79ebf402b4557169c6c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19070 zcmds9TWlQHc|NmCQrZOzT>WyvF3wkTWV(z0UNiXw+1DVcyoDzmg?)0g$^&Tu)@ z?9OV=EJeyvQba+m6bSmz21r_@Nt-lH+O#N8pg>>y*q6TcsX(6Eq6yHV=vz_u`~EXK zyVNCpUs7{;&Y5%l&woGvDF0t0#iJ*u+?q;%hVb{Rc=Y+4QXc+UDpYDU%Uf#I>eT1d zYOa&dtJQobKcH3zJNY5Cx=Zpo74BAzf?6#oi{s{1SX7NYYIWF@2UIws8hh31UQ-@a z;izitQ>*(-c}Ru(RpWqKJz&baRCrJ|#?JihTpu*==+v(%p1ykPBQ0|Kd3go zB<0=-br;kr{XtqK8k?P9D(x!;3d1XRC)4cAW-lHewHRJWRvHRIKJyGHe2n) z@#}$3{8&4_ZbeP)n>Gi~=6d8++q&$>fg8?+f!|EbyD{nCisGakx|{x@=lFNpzE0nc zW<3|SYJMvTqNeG#A1|`1owJSL)%@kQzIxpan%APJH93Hqgw>bb1gqOFCvMW#3F)C6 z)SGUY?CQQub|Zhy_vWH7ip^xKSwu&-8m2qqh%Gl+4+I8zl>DtE8OGmDKMbms)^@Vq zSt=*K>CcbB#h`jHr0(PGu(~~< z;_s!EAck=O3NNsNaWnz816tl*nGN%dsz+cN`=nSP{-fQ)T#juHsH7+jgh04q0B-byVguy`F!f*Rh^n z#|g!>*9$$pZ0WT}Qm_ud4?N^W($qth0~;Y6PCn7*FZDEd^JxuwA%Fg94c_V*;q9k2xX{z!%N=L{EzN0O?9_lR4|giR z(o;F!sl3!vInk+nC#}3c)T#MuPqUo557A=~a+cI_AJo}PIOf&mXTO?L$q}L5=QOn>NW(xRk9}sOsZIzwGI2U*Q3zWHkg?m zG}ofI;gV6?O~2-A?Z(?S>g;6Qx7XdK7Y5C`9j)1Ju~75l1U%aIz>XXCq(5Dswl||N zaqIqRyVb6SfnN7LySgo%tA=?`7mEcm?Ia~ig>3kY?bhqDUw0G#j9vGW%BCB((`*9H zY=6bpNqibTvo04{Q!Ess>V{uSWE2}~rr@yeuKTesbDEVkeIMIPBD?B$mxaNyNiWzP z@$jJ;?_+!Fl5Mh>W3An+2}F{0H?eC`qZ%}Q3Pi2!;g2YF|q-% z*sUc!5Lk<&h7=nj#_iazMX`4V{UAL3xQPRY;M=}nyVzb+CvG!IS3&S&5e61Ad%GFb zBF}&J^w^r`$0=3-0vzHDu*vrfGVqLk^UTG<3Sf(sY(f_yDt1ml+ih)5R=W)xrW@lA z6&ArhTi4vsudHG3Q4H9wt!Y0wjdRwv=j&P=RIvcyD-X_#YV8Kjz&^Ed?yZ$;TU%Q; zR2*W@jW|l8S`^xjzd3z=`t?)5r=YfO*W6~Y01R4-+Rbd362?JIhz%DDx&Ydm+4^ke z!pym?2cn1osYRm-{sj~#3P$f5>z|GN)zx3#`_?<6%b4{B7()gBisr$8{L>d-)Tp8G zfkL4U;?dOD5~Us~p=yiro8)b&F+63_cv9UCV<_ODQG%!~;b5USO~QOIYl)%wRZ?V> z#Yshqhm&Zf^gkjgHJV8YkS=Zd&9?3kc3f=-U>l`3->$l6t22ISrql@HIEuAtSCaRo zq|utHL#L{h?nd$L67UZA;GSP!n`-(|b82&~wRvu8)1LxgX>U!{n{D5%1|`z@)Y?5A z0oiU(oqH<@OJ}ENre~(&nNrXIgDC;|OVGxW7zEbz@GTs+wjs=-nGeMZ~M&_nd| z&whV3_WkB>YB1ZV;y_<{e1yd)T?~!f^4%b*t)P?v$ATC=#$UvC#baCPG+H* zZ2J1tGaD{8MZkww+@@(OtV^GHW(QKvb>G#X0t(34Fa&*h0fD8DKeN|td&}`dcUzx$ zW)sJ6M2XLR`vEECH;neKk4EuwGZ3jI6neehNJ@~+)Jc~h^)s-YM%hy(BuP(^2R~DV?JBH<4Xg1$lIVnKm8=SEm zNr%VE7yyhMURFs)+^l3)fWW6^aHYhHi6ZKR|{7^#70E2zSP0E z@c>9x(c;0=FL9$ckf>t^a>uRXxdZt^zF-Yo&*e{AC#(~>H!b`kf6_XXJ7vjl4)xvN z+yU#5{2s6-298=sIYw@xtJ4uj<~Yj=5(o*S&_QRm61aWvFHiA04!<0*l5RRr9(gyCcf@J8U+f|+D(C{rNKQK%f@vobU;6;Cia&+f3qay4Etq0 z@&x6pZrg+U;Y&d$QHvtLyxC5C9o+N9(U}AdKWZn^8x~NIY|G5@E{y7R5+&#G{A#-{ zt;`CX)2NhXTwk7F5R$t*``&!TnO!lZ^2+j!%H_qCvU&Hx%0i{QxVj(%uPk0)SblFs zhPyHAEUtWDGz=1Of)(J8(Q*3{TS?P`t;T--I*OWnMde3wLsro$WWP1iE;%Y6K{p4P zr=XibGGg3AWj)Asn!tSojNB4e&iuy*#cMoB|1BL$xYM|EUfn{eEKczy5m7skO&lQF zk16Pcp{IE=7tuGLY)uc0o}{F8NPy1QxL_`yV;Q6&PL~%PVXzb+l^f2&mBsgkw+UP_ zzl^NQ`G7-^Z>H2O!?BIvkE!f)l%WjFK=U1ff-DaRV;#Z{T&Ciah6Gh?WVZLG zTD~Vnefd^%x3VnWT9w~tB4oEDrl&*2RY1E0Be+YCfN!4zmv&?lZ&xzQ@efgrRT5F?eN!a|el$<8U!{&HwO7*_#{6;aVP<+L0eX#a9e=OlLbb3D$=+$O;( z!p!wN@z;u!$ry*@vyo^%pCZ=_wk zMIb&bFoBIhC?Q}E?6IU@K>7ry&u&z0UaJc8hJ&=?>Wb&Dx$s{>?g?J#0*2AfR~G4 zFdK;PaSHi+ZQ=Bg>u@~+%wRuk3~fL(Q5+~`J}!<26mD1{IdAWVJf&O(_)&vbAR#CP z@$bk*EP7#N=&$3PR^D@-Z(6+cMR{Y7D&GRfArs_9p0bQU;i{L!7>~`}J(X6?+k89l zY`HpU(%~Lvk0q^0)k2 z8WV_|_(uzCoi5xIZJ(!fiS^#sBTdC2HGAXFb<1reWgb&D` zDque`d+pBLI>GB!C9az?nz;90pAf2 zLDW@)h*e03-bLO9^yihUNLQp53gt-({3UV31O^ATiMpvXetLS^*+v70OLgX%yvT%p zT+xKnc0lqJf4mFD&t@Koy)XDGn8zDYW5c_#_A^K&G|$Cj@wfxP;i{ZTCd7O*+!l-7 z)np5ibs1D_`L%v`)zXR5IjPh`vi%RJlOv=pH34L!1T?>e-1A0BCY#_x1|ZBQ)z>VE zgaI2gIA;`Q(IJ*-p6wb95>&pQj{vhz*UI&CJx zX=$PM;2;4fEHGt$6*C?YQq)mnJU9dq5w|~GPSn)lffHii?mFmx$^D9LCYD*=I$(`j z#+afsLJ&h@)KZ~gU|y>0h;GliepE}vYx*Rt{+Zh)R8)SnAo756mJgY%{st1#Vn+n@ zYCY6$Ko}4Qh{J&@1Xd5`FHQ}k;DAn`;KW}e!b2kL&|E-lP;a3+L5o3N1Odc$T142A zP~ciVlL6>+HDe7pM}UP0cgu9_Ofd#( zWr{Hc`I4SMNb50EjI9fLwHoqNAWyAVH{ za|aE&x`a_yE1jqjE!u8YG7SALdKfR8FeFhbKyk{UbnSB-`7LbmfAC0L1{H?9Rm>f= zMsoY}HDbsPEO{Fh8I~Xh7l+S(d01aYLIY}KLsD&+5j9a@l**TdDwpJ1qQ@#S=VNCl zLQy>hK`kakiUM-_P79NpQxbVhpQ;>RGKQS!jR7OByGQ-_k^UZg5Rv-)NPiz&9DyvA zn^BcNmMe(%Cq$peJ07VJ{W3DyaZ22YussDS2Q|h_MZcff`Ua4jL!UAXl2c zbfR+t&C!bm2PD2TL@temXB-;C97+F-981lHQyLM745zYbAt1z0ghq!^bZiULWXZ^f zE+&xb9q!!N1k_QT?=lhM=BkW9Any??1c8iheRn2C%CplS+t5za_Y_)!{)&Wa0dv>lZpl2 zqL@<`@9audcFe1m1VfCUow|4yG3sDAW!z<-BIi_)7|AU-;cMq5R+HG}%EQEo_W23Y zNtQ+jnh0Kfnuo`8;=RX!?jnkXH>SG*%_dG*nu{xqQPyVs-Vot5T6V{P8L|}% z=P-8~Pu(*f0%IkV758djKXgcd-NXskly14UT?>6-Olx3Z5{=#arf77}E?@dS#&CYX zBt&BHn_7nGA=#>(PuYSfFQI1+FJJl`wTZL_a<6ByYIr2~Vs0P2zcsv+AKC_Uc*L1X zM+4&t;FG=jF4PMtz&VQoJp$xhOA;~so<=3eI8pytg8(YKUvhnEk<#nfLc~#0X%k>qc@9(#6fRS1WY&DL6S#x| zAP)8cwt%DHXL0!6#Q5Ni`Ughx5WT=MUQ7a!4)^oHGN@Mkbu11@Qj7UKUK z_zuEGz_M>6Ak2i3%O?`ac6w@}{0sSr1sD3w9=FVoxU@VHy=|P^{#K9%X>&gqa+lhx@*%Valq=3g{Uy2uXlfX1^^sVi#66%J zP%@1v*E1N%tg^yYUa;@95rs#blLhkD37@dkTz&(AFHU?0+Zzu4L-Z84f-JI&Yoa@H z6oXJ)t@B4rK4k}LG}(QYQ8>xe`yeou)%!ZLz0<=4xKUvO7mxuCl{a$LIXt?8*B}!UfNLb9 z1hJq>E{1`45+K1lU(w%iEk|#^P!l~notrjZB^2ZmL82r$CI&zyKD-rMe;j|{)1&gY zO)qd0GI+=g&NsW%ZA-;J;KwtFh(J_tssiGwY-4X{T--g6Qm@$9Cn>`7Ff^_)a6iot zs?`JB0Ui`rllYk)AU1eREL5x#rYiOTj}t!6N2u^2$z!cWl^j+Z%*KA;q6oiuu1JFxC!J&^&JH?8~tV1!$)9)Bb z#>T2htzL1&bxl-JfXz1}N7%GuVWyEl)3mS|P9!$Zs3dTfSPkws3Rdn&COLaGXD7vdZM!O#Yb3G?PDJ@?$2i zF*(cRT_(gebMGH9S7q|&O#YHd1BnF4rs34|;7drvdpG705RLB$RuJ$ydrdTTXo{0u zt@9HmR4t8qK+OO=9RdH+3=lMC@z2=eQzldvoGw2=sXrA1S}xQjzYS>USGmpnLBzNY zTf;g2P9e81H=3J(dlxBc$E}0HJ4bTjH>*@c6Rk|nqpR~BCOjc?x`HiaA8^HHh_cI+ zaTAls$tTBA(b_itn(2;<9u9VV35Bc7)pGWR1ULh>PVKV{OT zUFwV})^O*QiqNHzxOmma77Wk$B2c^?`j<#@@-YjDjK4x``>gagx6gui3Pd--zXL= 2 and a[0][0:1] == '0': - a[0] = a[0][1]; - - result = '' - for item in a: - result += ('.' if result != '' else '') + item - - - result = 'v' + result - - return result - - -def get_free_space(path): - result = -1 - - try: - s = statvfs(path) - result = s.f_frsize * s.f_bavail # Number of free bytes that ordinary users - except Exception, ex: - logger.info("Error while retrieving free space for path %s: %s" % (path, ex)) - - return result - - -def get_load_averages(): - c = read_file('/proc/loadavg') - return c.split(' ')[:3] - - -# Returns False if it cannot find a machine name. Otherwise returns the string -# containing the name -def get_machine_name(): - c = read_file('/proc/device-tree/model') - - if c != False: - return c.strip('\x00') - - return read_file('/etc/venus/machine') - - -# Returns False if it cannot open the file. Otherwise returns its rstripped contents -def read_file(path): - content = False - - try: - with open(path, 'r') as f: - content = f.read().rstrip() - except Exception, ex: - logger.debug("Error while reading %s: %s" % (path, ex)) - - return content - - -def wrap_dbus_value(value): - if value is None: - return VEDBUS_INVALID - if isinstance(value, float): - return dbus.Double(value, variant_level=1) - if isinstance(value, bool): - return dbus.Boolean(value, variant_level=1) - if isinstance(value, int): - return dbus.Int32(value, variant_level=1) - if isinstance(value, str): - return dbus.String(value, variant_level=1) - if isinstance(value, unicode): - return dbus.String(value, variant_level=1) - if isinstance(value, list): - if len(value) == 0: - # If the list is empty we cannot infer the type of the contents. So assume unsigned integer. - # A (signed) integer is dangerous, because an empty list of signed integers is used to encode - # an invalid value. - return dbus.Array([], signature=dbus.Signature('u'), variant_level=1) - return dbus.Array([wrap_dbus_value(x) for x in value], variant_level=1) - if isinstance(value, long): - return dbus.Int64(value, variant_level=1) - if isinstance(value, dict): - # Wrapping the keys of the dictionary causes D-Bus errors like: - # 'arguments to dbus_message_iter_open_container() were incorrect, - # assertion "(type == DBUS_TYPE_ARRAY && contained_signature && - # *contained_signature == DBUS_DICT_ENTRY_BEGIN_CHAR) || (contained_signature == NULL || - # _dbus_check_is_valid_signature (contained_signature))" failed in file ...' - return dbus.Dictionary({(k, wrap_dbus_value(v)) for k, v in value.items()}, variant_level=1) - return value - - -dbus_int_types = (dbus.Int32, dbus.UInt32, dbus.Byte, dbus.Int16, dbus.UInt16, dbus.UInt32, dbus.Int64, dbus.UInt64) - - -def unwrap_dbus_value(val): - """Converts D-Bus values back to the original type. For example if val is of type DBus.Double, - a float will be returned.""" - if isinstance(val, dbus_int_types): - return int(val) - if isinstance(val, dbus.Double): - return float(val) - if isinstance(val, dbus.Array): - v = [unwrap_dbus_value(x) for x in val] - return None if len(v) == 0 else v - if isinstance(val, (dbus.Signature, dbus.String)): - return unicode(val) - # Python has no byte type, so we convert to an integer. - if isinstance(val, dbus.Byte): - return int(val) - if isinstance(val, dbus.ByteArray): - return "".join([str(x) for x in val]) - if isinstance(val, (list, tuple)): - return [unwrap_dbus_value(x) for x in val] - if isinstance(val, (dbus.Dictionary, dict)): - # Do not unwrap the keys, see comment in wrap_dbus_value - return dict([(x, unwrap_dbus_value(y)) for x, y in val.items()]) - if isinstance(val, dbus.Boolean): - return bool(val) - return val - -class reify(object): - """ Decorator to replace a property of an object with the calculated value, - to make it concrete. """ - def __init__(self, wrapped): - self.wrapped = wrapped - update_wrapper(self, wrapped) - def __get__(self, inst, objtype=None): - if inst is None: - return self - v = self.wrapped(inst) - setattr(inst, self.wrapped.__name__, v) - return v diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/ext/velib_python/ve_utils.pyc b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/ext/velib_python/ve_utils.pyc deleted file mode 100644 index da3ba351b1d764a648930724a997a9fb0d88ba0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8991 zcmd^E&2t<_74P1aR$f`QY}uCWIElxfC?C=)imiMQQrMOqOcEuTjpIbbOlD_#S0l~N zY-W1bQp&CZ91dKdisFzH7b;c!4O}Rw;$Pql{{R zkKcR!ruxqVlc&zlhmjio?8E=><0_Z5QZfFtN|owrwWgKkeMO}e)vc;>z-XVh4Jo&r59!% zwrP4c$+HFTeeOHSIv%zcZQ3G?&?`w(uVp-2Y?~PUV~*yi#LDvLDwyBLr7Q)LmrhcA zw;cm%_p?YEVbLjV4V=xpY|f#jgp_|ptI^GDqX@f=fyw%1uir|O602)A6h7euW0J;pmvO$JGP$snV7x z@YX7wARbp9`aQrDxPhzJ>D%|vo}f#gS-CT-?vK;8?WDSgIklSoaYcRpbGAZRV{>j2 zi(M5*O1|@pq4Jk5FPEZxW7ijxX}2A?0tJwq04ZrA7Z#Vc=JxX;dj!Ft=mtILFie9a zw)DPsl-X2_r_7^GV_nl0{m6>dUAYn5T)qAwRtGt~ckS(9IyTMLb8@`-eyllW>vZxo!(d)^>xV^|06*)=M#TjD1ugXTdCqcxqow zk5$iCPUsi(%aw>QMhQ}^V!ao^fo*=N#7JS4O3l(lVR(XGXhXcXg%QCHH!G^VwTmAaaH_% zX9V11T%Ez&IPf8RT%B}tzJbw*a`2h01rA!dbCGTWzoF|)s?Dk@>KcJB!xF@Cj=zG= zpZ`PMMi4}w(7{73^qDUBr}>1#Ag3Ip801;&OPi}_ERe`mRQr>8(Q(O z`zX&K7Q&M01VaH)O@#^Lu$7uu(WiVCMCp2MQcqQu^?}NC^{hTreNG>%)bs&;zB=g; zi?&V`3S!+x13reBy6w^5oTm*j3oa*Kb`+0qXV0rKxX$LJDtx68U^Voxfe<7#mDpQ=P)D}o?JF4pl38V-b^Sma>LsSvqF@ylz9fLBX` zd81e4Q6tS^kb{o6yeA+bKrCvau?9>@1dGdFIyzqPozdP<#wfp_oPrRZjHJ6X*uSKO z3c7e)3ysIM0QoZ1UJ#8Sw2MZXRFz}`BfT8o(Mt?xi_E-*4K%uWY|@fKcX@fk*l2jT z=!VgHk{Q8j{}sNMNO2=f%c0WXwmmrk`V0?yLubs7=|Dr_1Xi}M zk3cK63XKq27lug;kQO=HuTILjMWFQoJPIn4ZntBlKKR%HEmAoE?Po)v9p_Qz{{XGH zTu~C<9!1(PCd>{Yl?N^VyIdL9nj`s<23^wyW5oZY=M%5}C3d6!W7Fz)#MS+m$>Su5 zNEU9MP#UWZj6R`&@L{eBn zu|z!}h_cfVSoNq!O?rGNJtm&m0|`Cm7)X!$6MIZbkFTW1{wMaBk{*BfA3Y98kLR>K z$O#Y#+{vZ*w~U#Vn%J1MQK^xW@@OlSCU+-2FmmP244uKE%mX*jipS|mJ?gu&?HPI9 z+mc-zdE%0fN{{=}1EsVY&s&&(W0roj!UgV#671$2&2`nMQY2xOEY+v^i}CiwbE~+e zsmmdRmb@-=;;iwhR2-NQVeMcF)FRjUHI`q)?C7gpO^io*7Q+ITS%N{B_8pK)wz04% zZ`<@azzyQaZ*e84tYd#~AaF!^xA*36xmhL_bv4JZB(SrJDih2~sgJI&T)ovqMdPC@ z@7!FGqDE3C8H#dQqc-+F{nfmYns(oXE4wo6Z9((2>^(Rv5dk9DX*BwAwWoX6; z!?`(tgoTiMguEtLyIz9=C0@2)0SUO4ua!l8KQNk8pMOHjV*KcO-H|*`uRDTN-UQZsVBX)*=lwRJJ$KDDiS#Xa2;$%Ja1O|30^f*TLi_F9e4%3Mwt8*-} z`fq~>vIrIf2?D;Y^grOkcS%-B-XY-`7*UB>@D2DDFz|1()5jzqlH39jhrhaQjo8Kn=!=aHwbZm+sDrQPs#fc$sLmSN!|l-Csd*pHtwn&gawHe+j|2bKEr;$#^t_` zRHyZ%o{{UceoCLxlNEP&Q6JOK=o6L8@>E1yn54ZOVW|8txLn0mo&z!X4u>oN6sIGp z$gZIxiNA{a65sR2l|Qsu4)<0JKA?mamIxayOfO|MBJ^;g<%g|pS|dIi<*f}9Sr{KG z6g1>0Orw5^Phhb#a~Pl!Xe)PXzjo7yOyqrwmZ>(hQz_I+XPS2q#!^cqMt&7!+~)g z1%Xc}cT&&LdI*8i`WC0lejD5UBd(GePYpHOdUfssni68<%QT~?500x}=B3XAr%!nB z2`wVV6xC1WwoJa|Lo^cNQeZ>Ep75cecU+N_%8+xu1VI<%en=j_O*$>`RO7P{=r535 zCV8FYdnBw8Ns8xlVUk?ml6>0_c|Q(<+n1Jip1ic|ukG%+e8~s?DgUz()1j use this to read data from the dbus, ie import -# VeDbusItemExport -> use this to export data to the dbus (one value) -# VeDbusService -> use that to create a service and export several values to the dbus - -# Code for VeDbusItemImport is copied from busitem.py and thereafter modified. -# All projects that used busitem.py need to migrate to this package. And some -# projects used to define there own equivalent of VeDbusItemExport. Better to -# use VeDbusItemExport, or even better the VeDbusService class that does it all for you. - -# TODOS -# 1 check for datatypes, it works now, but not sure if all is compliant with -# com.victronenergy.BusItem interface definition. See also the files in -# tests_and_examples. And see 'if type(v) == dbus.Byte:' on line 102. Perhaps -# something similar should also be done in VeDbusBusItemExport? -# 2 Shouldn't VeDbusBusItemExport inherit dbus.service.Object? -# 7 Make hard rules for services exporting data to the D-Bus, in order to make tracking -# changes possible. Does everybody first invalidate its data before leaving the bus? -# And what about before taking one object away from the bus, instead of taking the -# whole service offline? -# They should! And after taking one value away, do we need to know that someone left -# the bus? Or we just keep that value in invalidated for ever? Result is that we can't -# see the difference anymore between an invalidated value and a value that was first on -# the bus and later not anymore. See comments above VeDbusItemImport as well. -# 9 there are probably more todos in the code below. - -# Some thoughts with regards to the data types: -# -# Text from: http://dbus.freedesktop.org/doc/dbus-python/doc/tutorial.html#data-types -# --- -# Variants are represented by setting the variant_level keyword argument in the -# constructor of any D-Bus data type to a value greater than 0 (variant_level 1 -# means a variant containing some other data type, variant_level 2 means a variant -# containing a variant containing some other data type, and so on). If a non-variant -# is passed as an argument but introspection indicates that a variant is expected, -# it'll automatically be wrapped in a variant. -# --- -# -# Also the different dbus datatypes, such as dbus.Int32, and dbus.UInt32 are a subclass -# of Python int. dbus.String is a subclass of Python standard class unicode, etcetera -# -# So all together that explains why we don't need to explicitly convert back and forth -# between the dbus datatypes and the standard python datatypes. Note that all datatypes -# in python are objects. Even an int is an object. - -# The signature of a variant is 'v'. - -# Export ourselves as a D-Bus service. -class VeDbusService(object): - def __init__(self, servicename, bus=None): - # dict containing the VeDbusItemExport objects, with their path as the key. - self._dbusobjects = {} - self._dbusnodes = {} - - # dict containing the onchange callbacks, for each object. Object path is the key - self._onchangecallbacks = {} - - # Connect to session bus whenever present, else use the system bus - self._dbusconn = bus or (dbus.SessionBus() if 'DBUS_SESSION_BUS_ADDRESS' in os.environ else dbus.SystemBus()) - - # make the dbus connection available to outside, could make this a true property instead, but ach.. - self.dbusconn = self._dbusconn - - # Register ourselves on the dbus, trigger an error if already in use (do_not_queue) - self._dbusname = dbus.service.BusName(servicename, self._dbusconn, do_not_queue=True) - - # Add the root item that will return all items as a tree - self._dbusnodes['/'] = self._create_tree_export(self._dbusconn, '/', self._get_tree_dict) - - logging.info("registered ourselves on D-Bus as %s" % servicename) - - def _get_tree_dict(self, path, get_text=False): - logging.debug("_get_tree_dict called for %s" % path) - r = {} - px = path - if not px.endswith('/'): - px += '/' - for p, item in self._dbusobjects.items(): - if p.startswith(px): - v = item.GetText() if get_text else wrap_dbus_value(item.local_get_value()) - r[p[len(px):]] = v - logging.debug(r) - return r - - # To force immediate deregistering of this dbus service and all its object paths, explicitly - # call __del__(). - def __del__(self): - for node in self._dbusnodes.values(): - node.__del__() - self._dbusnodes.clear() - for item in self._dbusobjects.values(): - item.__del__() - self._dbusobjects.clear() - if self._dbusname: - self._dbusname.__del__() # Forces call to self._bus.release_name(self._name), see source code - self._dbusname = None - - # @param callbackonchange function that will be called when this value is changed. First parameter will - # be the path of the object, second the new value. This callback should return - # True to accept the change, False to reject it. - def add_path(self, path, value, description="", writeable=False, - onchangecallback=None, gettextcallback=None): - - if onchangecallback is not None: - self._onchangecallbacks[path] = onchangecallback - - item = VeDbusItemExport( - self._dbusconn, path, value, description, writeable, - self._value_changed, gettextcallback, deletecallback=self._item_deleted) - - spl = path.split('/') - for i in range(2, len(spl)): - subPath = '/'.join(spl[:i]) - if subPath not in self._dbusnodes and subPath not in self._dbusobjects: - self._dbusnodes[subPath] = self._create_tree_export(self._dbusconn, subPath, self._get_tree_dict) - self._dbusobjects[path] = item - logging.debug('added %s with start value %s. Writeable is %s' % (path, value, writeable)) - - # Add the mandatory paths, as per victron dbus api doc - def add_mandatory_paths(self, processname, processversion, connection, - deviceinstance, productid, productname, firmwareversion, hardwareversion, connected): - self.add_path('/Mgmt/ProcessName', processname) - self.add_path('/Mgmt/ProcessVersion', processversion) - self.add_path('/Mgmt/Connection', connection) - - # Create rest of the mandatory objects - self.add_path('/DeviceInstance', deviceinstance) - self.add_path('/ProductId', productid) - self.add_path('/ProductName', productname) - self.add_path('/FirmwareVersion', firmwareversion) - self.add_path('/HardwareVersion', hardwareversion) - self.add_path('/Connected', connected) - - def _create_tree_export(self, bus, objectPath, get_value_handler): - return VeDbusTreeExport(bus, objectPath, get_value_handler) - - # Callback function that is called from the VeDbusItemExport objects when a value changes. This function - # maps the change-request to the onchangecallback given to us for this specific path. - def _value_changed(self, path, newvalue): - if path not in self._onchangecallbacks: - return True - - return self._onchangecallbacks[path](path, newvalue) - - def _item_deleted(self, path): - self._dbusobjects.pop(path) - for np in self._dbusnodes.keys(): - if np != '/': - for ip in self._dbusobjects: - if ip.startswith(np + '/'): - break - else: - self._dbusnodes[np].__del__() - self._dbusnodes.pop(np) - - def __getitem__(self, path): - return self._dbusobjects[path].local_get_value() - - def __setitem__(self, path, newvalue): - self._dbusobjects[path].local_set_value(newvalue) - - def __delitem__(self, path): - self._dbusobjects[path].__del__() # Invalidates and then removes the object path - assert path not in self._dbusobjects - - def __contains__(self, path): - return path in self._dbusobjects - -""" -Importing basics: - - If when we power up, the D-Bus service does not exist, or it does exist and the path does not - yet exist, still subscribe to a signal: as soon as it comes online it will send a signal with its - initial value, which VeDbusItemImport will receive and use to update local cache. And, when set, - call the eventCallback. - - If when we power up, save it - - When using get_value, know that there is no difference between services (or object paths) that don't - exist and paths that are invalid (= empty array, see above). Both will return None. In case you do - really want to know ifa path exists or not, use the exists property. - - When a D-Bus service leaves the D-Bus, it will first invalidate all its values, and send signals - with that update, and only then leave the D-Bus. (or do we need to subscribe to the NameOwnerChanged- - signal!?!) To be discussed and make sure. Not really urgent, since all existing code that uses this - class already subscribes to the NameOwnerChanged signal, and subsequently removes instances of this - class. - -Read when using this class: -Note that when a service leaves that D-Bus without invalidating all its exported objects first, for -example because it is killed, VeDbusItemImport doesn't have a clue. So when using VeDbusItemImport, -make sure to also subscribe to the NamerOwnerChanged signal on bus-level. Or just use dbusmonitor, -because that takes care of all of that for you. -""" -class VeDbusItemImport(object): - ## Constructor - # @param bus the bus-object (SESSION or SYSTEM). - # @param serviceName the dbus-service-name (string), for example 'com.victronenergy.battery.ttyO1' - # @param path the object-path, for example '/Dc/V' - # @param eventCallback function that you want to be called on a value change - # @param createSignal only set this to False if you use this function to one time read a value. When - # leaving it to True, make sure to also subscribe to the NameOwnerChanged signal - # elsewhere. See also note some 15 lines up. - def __init__(self, bus, serviceName, path, eventCallback=None, createsignal=True): - # TODO: is it necessary to store _serviceName and _path? Isn't it - # stored in the bus_getobjectsomewhere? - self._serviceName = serviceName - self._path = path - self._match = None - # TODO: _proxy is being used in settingsdevice.py, make a getter for that - self._proxy = bus.get_object(serviceName, path, introspect=False) - self.eventCallback = eventCallback - - assert eventCallback is None or createsignal == True - if createsignal: - self._match = self._proxy.connect_to_signal( - "PropertiesChanged", weak_functor(self._properties_changed_handler)) - - # store the current value in _cachedvalue. When it doesn't exists set _cachedvalue to - # None, same as when a value is invalid - self._cachedvalue = None - try: - v = self._proxy.GetValue() - except dbus.exceptions.DBusException: - pass - else: - self._cachedvalue = unwrap_dbus_value(v) - - def __del__(self): - if self._match != None: - self._match.remove() - self._match = None - self._proxy = None - - def _refreshcachedvalue(self): - self._cachedvalue = unwrap_dbus_value(self._proxy.GetValue()) - - ## Returns the path as a string, for example '/AC/L1/V' - @property - def path(self): - return self._path - - ## Returns the dbus service name as a string, for example com.victronenergy.vebus.ttyO1 - @property - def serviceName(self): - return self._serviceName - - ## Returns the value of the dbus-item. - # the type will be a dbus variant, for example dbus.Int32(0, variant_level=1) - # this is not a property to keep the name consistant with the com.victronenergy.busitem interface - # returns None when the property is invalid - def get_value(self): - return self._cachedvalue - - ## Writes a new value to the dbus-item - def set_value(self, newvalue): - r = self._proxy.SetValue(wrap_dbus_value(newvalue)) - - # instead of just saving the value, go to the dbus and get it. So we have the right type etc. - if r == 0: - self._refreshcachedvalue() - - return r - - ## Returns the text representation of the value. - # For example when the value is an enum/int GetText might return the string - # belonging to that enum value. Another example, for a voltage, GetValue - # would return a float, 12.0Volt, and GetText could return 12 VDC. - # - # Note that this depends on how the dbus-producer has implemented this. - def get_text(self): - return self._proxy.GetText() - - ## Returns true of object path exists, and false if it doesn't - @property - def exists(self): - # TODO: do some real check instead of this crazy thing. - r = False - try: - r = self._proxy.GetValue() - r = True - except dbus.exceptions.DBusException: - pass - - return r - - ## callback for the trigger-event. - # @param eventCallback the event-callback-function. - @property - def eventCallback(self): - return self._eventCallback - - @eventCallback.setter - def eventCallback(self, eventCallback): - self._eventCallback = eventCallback - - ## Is called when the value of the imported bus-item changes. - # Stores the new value in our local cache, and calls the eventCallback, if set. - def _properties_changed_handler(self, changes): - if "Value" in changes: - changes['Value'] = unwrap_dbus_value(changes['Value']) - self._cachedvalue = changes['Value'] - if self._eventCallback: - # The reason behind this try/except is to prevent errors silently ending up the an error - # handler in the dbus code. - try: - self._eventCallback(self._serviceName, self._path, changes) - except: - traceback.print_exc() - os._exit(1) # sys.exit() is not used, since that also throws an exception - - -class VeDbusTreeExport(dbus.service.Object): - def __init__(self, bus, objectPath, get_value_handler): - dbus.service.Object.__init__(self, bus, objectPath) - self._get_value_handler = get_value_handler - logging.debug("VeDbusTreeExport %s has been created" % objectPath) - - def __del__(self): - # self._get_path() will raise an exception when retrieved after the call to .remove_from_connection, - # so we need a copy. - path = self._get_path() - if path is None: - return - self.remove_from_connection() - logging.debug("VeDbusTreeExport %s has been removed" % path) - - def _get_path(self): - if len(self._locations) == 0: - return None - return self._locations[0][1] - - @dbus.service.method('com.victronenergy.BusItem', out_signature='v') - def GetValue(self): - value = self._get_value_handler(self._get_path()) - return dbus.Dictionary(value, signature=dbus.Signature('sv'), variant_level=1) - - @dbus.service.method('com.victronenergy.BusItem', out_signature='v') - def GetText(self): - return self._get_value_handler(self._get_path(), True) - - def local_get_value(self): - return self._get_value_handler(self.path) - - -class VeDbusItemExport(dbus.service.Object): - ## Constructor of VeDbusItemExport - # - # Use this object to export (publish), values on the dbus - # Creates the dbus-object under the given dbus-service-name. - # @param bus The dbus object. - # @param objectPath The dbus-object-path. - # @param value Value to initialize ourselves with, defaults to None which means Invalid - # @param description String containing a description. Can be called over the dbus with GetDescription() - # @param writeable what would this do!? :). - # @param callback Function that will be called when someone else changes the value of this VeBusItem - # over the dbus. First parameter passed to callback will be our path, second the new - # value. This callback should return True to accept the change, False to reject it. - def __init__(self, bus, objectPath, value=None, description=None, writeable=False, - onchangecallback=None, gettextcallback=None, deletecallback=None): - dbus.service.Object.__init__(self, bus, objectPath) - self._onchangecallback = onchangecallback - self._gettextcallback = gettextcallback - self._value = value - self._description = description - self._writeable = writeable - self._deletecallback = deletecallback - - # To force immediate deregistering of this dbus object, explicitly call __del__(). - def __del__(self): - # self._get_path() will raise an exception when retrieved after the - # call to .remove_from_connection, so we need a copy. - path = self._get_path() - if path == None: - return - if self._deletecallback is not None: - self._deletecallback(path) - self.local_set_value(None) - self.remove_from_connection() - logging.debug("VeDbusItemExport %s has been removed" % path) - - def _get_path(self): - if len(self._locations) == 0: - return None - return self._locations[0][1] - - ## Sets the value. And in case the value is different from what it was, a signal - # will be emitted to the dbus. This function is to be used in the python code that - # is using this class to export values to the dbus. - # set value to None to indicate that it is Invalid - def local_set_value(self, newvalue): - if self._value == newvalue: - return - - self._value = newvalue - - changes = {} - changes['Value'] = wrap_dbus_value(newvalue) - changes['Text'] = self.GetText() - self.PropertiesChanged(changes) - - def local_get_value(self): - return self._value - - # ==== ALL FUNCTIONS BELOW THIS LINE WILL BE CALLED BY OTHER PROCESSES OVER THE DBUS ==== - - ## Dbus exported method SetValue - # Function is called over the D-Bus by other process. It will first check (via callback) if new - # value is accepted. And it is, stores it and emits a changed-signal. - # @param value The new value. - # @return completion-code When successful a 0 is return, and when not a -1 is returned. - @dbus.service.method('com.victronenergy.BusItem', in_signature='v', out_signature='i') - def SetValue(self, newvalue): - if not self._writeable: - return 1 # NOT OK - - newvalue = unwrap_dbus_value(newvalue) - - if newvalue == self._value: - return 0 # OK - - # call the callback given to us, and check if new value is OK. - if (self._onchangecallback is None or - (self._onchangecallback is not None and self._onchangecallback(self.__dbus_object_path__, newvalue))): - - self.local_set_value(newvalue) - return 0 # OK - - return 2 # NOT OK - - ## Dbus exported method GetDescription - # - # Returns the a description. - # @param language A language code (e.g. ISO 639-1 en-US). - # @param length Lenght of the language string. - # @return description - @dbus.service.method('com.victronenergy.BusItem', in_signature='si', out_signature='s') - def GetDescription(self, language, length): - return self._description if self._description is not None else 'No description given' - - ## Dbus exported method GetValue - # Returns the value. - # @return the value when valid, and otherwise an empty array - @dbus.service.method('com.victronenergy.BusItem', out_signature='v') - def GetValue(self): - return wrap_dbus_value(self._value) - - ## Dbus exported method GetText - # Returns the value as string of the dbus-object-path. - # @return text A text-value. '---' when local value is invalid - @dbus.service.method('com.victronenergy.BusItem', out_signature='s') - def GetText(self): - if self._value is None: - return '---' - - # Default conversion from dbus.Byte will get you a character (so 'T' instead of '84'), so we - # have to convert to int first. Note that if a dbus.Byte turns up here, it must have come from - # the application itself, as all data from the D-Bus should have been unwrapped by now. - if self._gettextcallback is None and type(self._value) == dbus.Byte: - return str(int(self._value)) - - if self._gettextcallback is None and self.__dbus_object_path__ == '/ProductId': - return "0x%X" % self._value - - if self._gettextcallback is None: - return str(self._value) - - return self._gettextcallback(self.__dbus_object_path__, self._value) - - ## The signal that indicates that the value has changed. - # Other processes connected to this BusItem object will have subscribed to the - # event when they want to track our state. - @dbus.service.signal('com.victronenergy.BusItem', signature='a{sv}') - def PropertiesChanged(self, changes): - pass - -## This class behaves like a regular reference to a class method (eg. self.foo), but keeps a weak reference -## to the object which method is to be called. -## Use this object to break circular references. -class weak_functor: - def __init__(self, f): - self._r = weakref.ref(f.__self__) - self._f = weakref.ref(f.__func__) - - def __call__(self, *args, **kargs): - r = self._r() - f = self._f() - if r == None or f == None: - return - f(r, *args, **kargs) diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/ext/velib_python/vedbus.pyc b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/ext/velib_python/vedbus.pyc deleted file mode 100644 index 499c6c4c87fe83fbfb535c6894a991836f477227..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21834 zcmd^HUu+~tTCbiNk3C-h+ug($vzy#Fe^?*EJDU(lLVVn1?Y-O{mq}F4?e6)q^o^(6 zcH85g*{&Y1ovh(FuX1<%IS@J|1VSK?5J*Vyz#BaAb`MAh@y;7O+!I1bzzh6--`CwU z-d#9>#EZwCs;R23uCD&-`~Ou<`Cq0dFTJ?jYMbn@jPK7QxxYac;NzK&F&kc9E}4x| zUM`!Ba$c^OjY?h~GaF-4E}2f%?2ns`akD>RHYSW0lucMOTNtil9vX9E%vU!iO)!?X zR*TkiCKxxNXLhH|?zG%7QCyobLGARl$>Q3q32^JQ38spsIljgE(hS}x`cM2dmr5w6 zv&ilzt)3rj_MLyw>h#0(Jlgv4qpj0uy%nyZ+j^KBMD4Hu*BGu`M{=Ja3l&g!wlNPq z0w)AaJShVpB~ECgY6t_gqZ>W|13))U5b)}R2?PWiHNHMu03CVp4ZKxNTBb}Oue*WU z&q)j5A#b}eYplL!o9oEL39cf!KSLH7^S~ItD0q2G$vh~T-VIJREt}nn*{hml#iV0q zx5`C|Yf>I(nIlXv-<90gOOs~zoO$47?ReL8%AAxucAl2Tnfy{&3bW=!3qXakSxM*2 z?s-B3L(HFeKoo-&(X(2h4Dd@bmO#wGO*3iCw zgvspZH5tC$jpKA8yGJS<%qfn^!06s=?T0e(2MJz}Bk9!Ge37+w61LLNPm?h8!^2)T zNmHV_za6I97)0$Xo;+HY-#jczY(fG|@mLKuh1_R*8>2@laJ#MAxWQM%KOQQ^o} zQR5=`eiTQk@2{Zj=8&0E&8wAbUviVw znH-o0)tnq>4c3#@2~s5b9HWX49y?}$BYNYfSMJ?3_}tbh;wmW%U+c2)O?Mg7KaD1J zqBjU;tDAs4ED3Ol)L`fNrmP0xW`A4Y6~=+PAEi5%;E-z(5L|KJrL82DtAcp%gy{!> zzC}mnyPYl`B#&0UOH}KG@e-kHN$`S|y;iy-j}lbI07Bh~P+sp)Dm_JJJXop+f~S(5 zS!A_O6G%voi(vEu_=K|^)}kl15gZV*|K-|)8HfDU>C?;bPB$MPKDu#O942S3L(U-W|Y zCC;w7L}q81rNkgX1ZAhbAA}v>7o2K$!d4&3PbqW7-5PIXcOA70LZOGO!1%#9qxLms#d=2?DHOi9lAY3+n>I zAu|C3Lkn_fE$AnUdou2k+dwlzqcFDP33KSkk%F=Txjq0>0=krdE+3j>C^99p3zmcn zHB-lx<4N-X9}G5W_Qp*T=hbt06_=*+xoFSnTwRcRSMJ3IpW9@4=qrlH3WVM+ls{1+ zIQ@#*DnF)6P%r|w!nBa%!s8;6iCae23Ieddmt38ktuAb=E|`h7tM%InSX^tf6V@Y9 zA1Ea(Z?hA~pv2^Q;!QB58zPG>AE^Ra#_?5+2vRDQJ~<|l9TN%!-CeH}rBX_$ZP@2| zH`R*WZWIf#C@nmNCS?R<0`@YpC9bwmgna=e8AQ1&FF=uLCs8kjMj}eY{rpvA){km8 zq8x+kLOQ3p#v|k#ZlRGIRWH&-fq7rbXm zv*5uOz305okO!0Un94{(f!{-c2#eJassoKsLuOsL>QEiT2aY;(9ke?(d>twS zH1$D$(Fca=N|uA`Ajq2Z2Rm375#Mw)ej4v?@28FTlWrT@D^*WNOgq(jD@>@@ii)Hc zR-wm2ab_cps>WJKBk5)g@`*7HVZb4SemlJxII8SMq3a1@AM zoYiDVzT;Ll-F!^8?PRmf+o-E&&%tC-IqO<91vJTHzZD0qw3{3Wp}23NSw&T84&rI9 zEICVFo2)HQLL)>52r$SOl|e8QbA5qY!w`@C00xip*d>mjobN~2hiIa<92t`s_0%Ah z|H6t3I$<&b>tRW{zmDW6-i%i`1qz0A1(Q*^7d7KtpOfogyHC{33eEatw5~5rCyg zQ=g{4=)V3R5nzPe5PvEFNr`?6kidT;v|zFtk?gBTOcAVp1(!4XNBEO{7hOgN#sGuD z_)qZKIgAOfJPES?7#dE&_=Fr}NGP};CB=VJLI61ymvNICBIFOELcQ(aJERVHgKoc( zMQj*z3iLk(U>tcVJv5K=2%3KbC|3&sORN^ijvxeS8TdX_=ClP>-1q++^$c&DOLM4* z0p|PE!r>mGn&NRARR)EL;52_-c65b;8dfuVgU1{R95=%M(o5%gkJ1A+*f!DFPsFoeD|7$&hm zbl$+Q=&6A~^qiKeM8zN#HfBtyJ|K+-N=p_Yn`2;%B-f_srE9EE&;Aw_ni{|*6kvCw zAiRzRafZt$rZ!#?I@5%4cf|oeVfIQa!;S>ogrS~%OIR!% z_IM}6#^AAniiQZ8_{sD^@W5dZmZ#0p#k~Iv6*>e2ZpWW86?kQKB~Z3EX_CJ(p6A7L z<__XhwEcx+<6aDs`S*oDq8LFD*MqGqcF_Atw?{S|x>X5h1xqyAGz6B#erS^m35oS4 zWF-z-n00A;M+T)er3RMW;Ozve4-@(DNZeW>LPP0l7AO-#!G49^s261hv7dH*7j4I_ zjy(H**xK{A`f(dpV@ew4XxT(_kC~rYZaUd^tGyEj>ff5c4ex~MErxI{9RM=P@UR_< zzst#_)(}g(kvCbgS#>~D$FO2H^3EX`h)H9K=JG@hv+11eXLvi(8Mo*ym*Ve`+;e={ zGU8!gt#k?LIfNW)-la;-D?<&wNW+I9Wg=5qMRGrhjCd}HO{-=pt7c(=4BcTe7N{>w zBUdsixZi%A*)lRgvLxK^9)xxib@l#m^+sVKD8qh$a@qQa?9xklMo=|HuCUQlm$ZH9)Cw)RurrIT=!$w8KYZl#yy_<9#*q7LbbjF3gL_Z1_ zN|no?LgyI-x~88%>0-)?oPUC=O9V`vKodqeD)Rb8yz$dR7|fR^78hp6XHkKq#{P?= zg;VkxEeNtASCt=ID`XcQRsJ_b<@d}TpnEQUD3C-67o|u=`31I7o3%uA3k7W0(Ksq- zOrs<`#1=rez=fDW)s(ByS7*J+(;6!m=YNpy8ofVd)QlD~w*j9k1u|=hgUHMza1#!o z2B@g=IdT%P)*%~mW^u3);G$wUzWfBB(W()k{X7b~4}iOEKgyz>Xj!1jE?Wv$^lJec zCwvmrJ0aCRGDpv5WwwaNf-VZkzq0Xe-@8vP0RvvQ?t0jxfo+2DI$%@}7w_ErC^NWn zHvxH)*v=8xYl%`=>|-$rWce($HcKT}ghQIN+95Z=W`T0}7_jrSZF#494nTM5V9jNl zi0*qCh25lf3vhUaOHW2@V5mI>bFEe`d(VRVOnS{FIzsFnW?yAS^H$v?w6`VXCJKn? zC7C1SNZk=sCT*A5J!TX$Hep7x5)&Dc8=IbG4g)fi(%JQ6ehn}GeI(hBQ?1P|z;{`h z9h;q~Rcf;+&CFIVRPC40gJ6>ykC*#SOH-NipiMt+ zznkm<)}3Yq-eA9l{aIGOjBJ2#XBXE#6RrKn_X>FP1IU+?}Q_Gwu!4KK@qH-DhYe+x0ZG zn4I`Xg`kDO-ry24g2e56Q(gspS(Y(hN?AtYbKy<{9b=i`*-sXVHI$|Wu!)6Cm_{5? zFaQDBcd zc+Yh%HD!b;Jw2c*(u1rSxzZzR2DlGxGGosnFjI>fEqbZrjqebMYdiFrOF38sw3J`*xJKaDXD0PfuIoN<=rF3?+ z8tTTMBjmUT1EIaKTCFy=IJQ`^ub`ogB!BcaT}N{NhAh*XFPh+@g!`p{G8CML)hEaO z!F?Y>v(Cf)RGe!JisK9ibZRKnIQ0rm87E!Aq4k(6#4h9hk90$SbYld)gk!WAlijc% zV7MDP;KVBQ^qIT^b_hJufg^aqY~Eou?|?JIm=E&v(&0kh;XL*Cr||M^$_*y+IibmQ z6#jet9oq$<1i(y}Gb=ab1lW@epSfV+Q{}{Q+=aaJ%eF(dA!&AY`5j^Zs|CN4BM-Gw71V&kJZP33K>U`4B2&?Y z%EcHjS%P!4(0UPX{9AbUETH{Ej9&`pD1OBDwckLi{VcL#GjTx>L|KKi!v;Xu0tN2t z`EEshQp%4L^~L=pf`oe(eYsVu5IeoB%6p)YfP!$FHbPesg7P>9RJnDbj;7eg5vE|| z9Ibj6e;HMcA_(z(i&e6-l*$thc;kl`vMq$N%@F%{iCIGiGpTA62&#wo`~#u}0mGl1 zsFbE~jzgdtScaAffXO6Z}3BglRHyoM-__<4ry(KzKxP41mAT^pR3{>y@NpJ0nmqdN$Y zYarB-vpO-vacva&-40&+ub%+4f@A$LIt;LOLPR*wl}(V&>MDPi8zHn4L^MvpgCCKH zp}i_UfP&6q_~Gj5JMmj7xF%6g-f+NQCeVTAPj~zc4plrNyQcSMt=uzI!DO3`b6;Lw ze)KpqFJ3!*>5iI5!tBWB?6;B0$^G=Gm+eYs*Xu{A{<4ls6FE$e;HmvJTo^5ZSjQWG zp9mr$Qu4d8E8azHD?W$vbjkiAt~G=+lt%V@%t*qb?h5zM_PvYdiwh$mnd$lZ zI-yI4b#=PtU6`y*!7p~MHhE>?%J|~=;=F|qY~URuc8Yh5GCA{(Jr+}j|A>;IKc14jbM>a$iK22?023RDeLhqYN*e zs>?X#b1gsp13B}Wup}M}LT|A2CD>A8>8xljQc9DeoEh0n`+~gC^ZI!zHwTh-?5GDV<&0o6P1P zbEJinzM^l=-9&OkNq)^PJHe!kot(?|nbny6HhWGWI|%)L8g-mHHHe(T<+C$gWEJ*n u%;@q`U-Oq(B1aUKH!2_(V6Es8)1M)IiX}yi)c^Tc=f69DaC!0aC;tUfJ`9Ke diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/__init__.py b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/__init__.pyc b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/__init__.pyc deleted file mode 100644 index db1868bdec08d429055a0a013e74c44b596be1c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 134 zcmZSn%*$mzH!U%l0SXv_v;z1(hWk`FZg1(hWk`FZg NoReturn - - service_name = service_name if service_name.startswith(SERVICE_PREFIX) else SERVICE_PREFIX + service_name - - self._daemon = DBusDaemon(connection_type_or_address) - self.remote_properties = RemoteProperties(self._daemon) - self.own_properties = OwnProperties(self._daemon) - self.own_properties.set('/DeviceInstance', device_instance) # must be set before request_name, sigh - - self.settings = Settings(self._daemon, self.remote_properties) - self.name = service_name - - if service_name is not None: - self._bus_name = self._daemon.request_name(service_name) - _log.info('service name is ' + service_name) - - _log.info('id is ' + self.bus_id) - - @property - def available_services(self): - # type: () -> List[unicode] - return [s.name for s in self._daemon.services] - - @property - def bus_id(self): - # type: () -> unicode - return self._daemon.bus_id diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/dbus_service.pyc b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/dbus_service.pyc deleted file mode 100644 index 5770ab8118c8f96f8df6ee3520ad2406248261cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2657 zcmb_eTTdHD6h5=-3kHn2LoRKtC~2)q#j5&JsZ}q4BOwtd8aGk1Qaf6_gEMq5&dwNO ziM|y6Mt?;g`!o6{`raSVo^#e1NGkCVY-T*??3tN!`M$IG|I}x{{rxcP!{k%K-|ukP zzj2E2Pe2Ti2nYlSl0Aq$NPGx;w8|_kpIEn%s{*X$tnb^kgP$l2FW@E z>yT_fumK`P|7vg!5Ntv;3&9Njy6wE(r0-#)VVX-7V6@>By;-hCkwct*O4#wb~@^r>^$E4vDh&~dhMJ^ z2ews0!Ig1(o|-IWN4`(TJ(oK&>t<5BQJy+7+c(zrDM}g?+71r;F;1rdM|g~&q}vDJ zJSskl8z}!KfRc+>wmdZL+K04D=f|e6RT?H*9h%tbyqS!wYg!lPu6bhItLA0)SZPTq ztGJmn`XY=+x|8QwUIexB|EIQ44LsSeaMi|Kw@sR6$2!&dVBF4i9F9M456A9Rma5ns z*tXFsIvCkDO={xk78)$$ex=jHEJw$WwHoI7(7d7aTgncIhA{MN7zlH?+Qka?ib(tP zgg#`tjl+J4lSaG=h)R?m#26;+9O+Ra$RS(K5orkG3XA@QSOwW@QNj40KAlHnT93a_ zI2D)m$k#|rt5gqMZ2XFq@!-^_v$1Z<2P`fXaH=T-!r+>w%3>9cX2{1=56(Ogi1osV z<}#^pp=Rk4TFlV`oB#tmqP+&eWQOF5ibhA{ud9=xq@Y*`YJNF1h;F{X0I2-T= zgYaSw(qj`9>?DV+jt}{ytIWY%A+tCc%1pB1?xL=rrK#>aB(!qlp;lS0!YIOqV{efU z6uZKEjZ^9#xwwuK_#b%1vyYS)@@Busfq@xxMM1nWYGwNQF0Tl zS=W2n`=RqhZ9nhH2c)B&6ZntiBNPg+aZxl;_WFH0sU)u5!NDZ0c*`q|a<_FK6--Oy z!T?`Q5@m1%tSilV3!C%Enb>Y6<_$t#Qt~C|n4sl8dDooU_|`Bt$Dz|(+|wtt=RWZ1 z4I8fWzUT*^-LU7~Ho_f-a`#p!*L=fQ3i6hEnzO}w?%@qPE}9OvAxSS{N%`W}`QtFg z$9(a4Na>{iOe8^6(yK{QSCZ5@9f`e8uebNK%RnGMxkOy-%jtc~&fxmGz~DDbS87#@ V;=WkC_1(hWk`FZgjjV0DhSwqW}N^ diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/datatypes.py b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/datatypes.py deleted file mode 100644 index 282956033..000000000 --- a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/datatypes.py +++ /dev/null @@ -1,22 +0,0 @@ -from logging import getLogger - -from python_libs.ie_utils.mixins import Record - -_log = getLogger(__name__) - -# noinspection PyUnreachableCode -if False: - from typing import AnyStr - - -class ServiceInfo(Record): - - # noinspection PyShadowingBuiltins - def __init__(self, name, id, pid, proc_name, cmd): - # type: (AnyStr, AnyStr, int, str, str) -> ServiceInfo - - self.proc_name = proc_name - self.name = name - self.id = id - self.cmd = cmd - self.pid = pid diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/datatypes.pyc b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/datatypes.pyc deleted file mode 100644 index a379d9652dca46c2a789b0474d07823c4d834280..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 883 zcmcIi&2H2%5FW?bbhi}IiX$(O(?-1`C?JrKP!HY{xmam38!S0aWP4Xc+FN-Io{|TE z8K-J_07x=lK0EXK#q!tl^S3|uO$!f~r1uS3&;%Vl0xZBFpcWu_oq^3@kWfnyC;)S~ zr;jVZ0{q7mA;F%(u!edK!cjyHC}A(4Tfq;2dw{R?2D$=v^xf0?ott;j$7l3uhyG|<{OtDQ;{=@QJz2OSK;XuyZ>n5ppmr%u%W2s% zvJYh8n&6bf34rE4i9`sqLYCk$Ki;_O-*XQI|Gh=+3mkQ=ewC3pGY#La6R*+J`J><*Te zikDAKCH7A`Q(XCiEU;dMye+v>WDP7G2IG1~6yhs_zoy;Nw1;SH*be5qaY6B~S9~s# swwhuiYx}9O0b|m9o;Vp-Nj3k+FiFAJi)L@Qqa^cXc9~tsLcElJ05ib55C8xG diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/dbus_connection.py b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/dbus_connection.py deleted file mode 100644 index 54372460a..000000000 --- a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/dbus_connection.py +++ /dev/null @@ -1,185 +0,0 @@ -from logging import getLogger - -from _dbus_bindings import Connection, MethodCallMessage, SignalMessage, BUS_DAEMON_NAME, \ - BUS_DAEMON_PATH, BUS_DAEMON_IFACE, NAME_FLAG_DO_NOT_QUEUE, Message, HANDLER_RESULT_HANDLED - -from python_libs.ie_dbus.private.dbus_types import dbus_string, dbus_uint32 -from python_libs.ie_dbus.private.message_types import DBusException -from python_libs.ie_utils.mixins import Disposable - -_log = getLogger(__name__) - -# noinspection PyUnreachableCode -if False: - from typing import List, Optional, Iterable, Callable, Union, NoReturn, AnyStr, Any - from python_libs.ie_dbus.private.dbus_types import DbusType - - -class DbusConnection(Disposable): - """ - A collection of stateless functions operating on a Connection object - """ - - def __init__(self, connection_type_or_address): - # type: (Union[int, AnyStr]) -> NoReturn - - self._address = connection_type_or_address - # noinspection PyProtectedMember - self._connection = Connection._new_for_bus(connection_type_or_address) # it's not disposable - self.chain_disposable(self._connection.close, 'connection ' + self._connection.get_unique_name()) - - @property - def bus_id(self): - return self._connection.get_unique_name() - - def fork(self): - return DbusConnection(self._address) - - def get_ids_and_service_names(self): - # type: () -> Iterable[unicode] - - # noinspection PyTypeChecker - return map(unicode, self.call_daemon_method('ListNames')[0]) - - def get_service_names(self): - # type: () -> Iterable[AnyStr] - - return ( - unicode(name) - for name - in self.get_ids_and_service_names() - if not name.startswith(':') - ) - - def get_service_ids(self): - # type: () -> Iterable[AnyStr] - - return ( - name - for name in self.get_ids_and_service_names() if name.startswith(':')) - - # noinspection PyBroadException - def get_pid_of_service(self, service_name): - # type: (AnyStr) -> Optional[int] - try: - reply = self.call_daemon_method('GetConnectionUnixProcessID', dbus_string(service_name)) - return int(reply[0]) - except: - return None - - def get_id_of_service(self, service_name): - # type: (AnyStr) -> AnyStr - reply = self.call_daemon_method('GetNameOwner', dbus_string(service_name)) - return unicode(reply[0]) - - def call_method(self, service_name, object_path, interface, member, *args): - # type: (AnyStr, AnyStr, Optional[str], str, List[Any]) -> List[Any] - - msg = MethodCallMessage(service_name, object_path, interface, member) - - for arg in args: - msg.append(arg) - - reply = self._connection.send_message_with_reply_and_block(msg) # with py3 we could use asyncio here - DBusException.raise_if_error_reply(reply) - - return reply.get_args_list() # TODO: utf8_strings=True ? - - def send_message(self, msg): - # type: (Message) -> NoReturn - - self._connection.send_message(msg) - - def call_daemon_method(self, method_name, *args): - # type: (AnyStr, Iterable[DbusType])-> List[any] - - return self.call_method(BUS_DAEMON_NAME, BUS_DAEMON_PATH, BUS_DAEMON_IFACE, method_name, *args) - - def request_name(self, service_name): - # type: (AnyStr) -> Disposable - - _log.debug('requesting bus name ' + service_name) - - self.call_daemon_method('RequestName', dbus_string(service_name), dbus_uint32(NAME_FLAG_DO_NOT_QUEUE)) - - def dispose(): - self.call_daemon_method('ReleaseName', dbus_string(service_name)) - - return self.create_dependent_disposable(dispose, 'bus name ' + service_name) - - def broadcast_signal(self, object_path, interface, member, *args): - # type: (AnyStr, AnyStr, AnyStr, List[Any]) -> NoReturn - - msg = SignalMessage(object_path, interface, member) - for arg in args: - msg.append(arg) - - self._connection.send_message(msg) - - def add_message_callback(self, callback, filter_rule, fork=True): - # type: (Callable[[Message], NoReturn], AnyStr, Optional[bool]) -> Disposable - if fork: - return self._add_message_callback_fork(callback, filter_rule) - else: - return self._add_message_callback_no_fork(callback, filter_rule) - - def _add_message_callback_no_fork(self, callback, filter_rule): # TODO: forking for incoming method calls - # type: (Callable[[Message], NoReturn], AnyStr) -> Disposable - - def dispatch(_, msg): - # type: (Connection, Message) -> int - - #_log.info(' ####### got message type=' + str(msg.get_type()) + ' ' + msg.get_path() + '/' + msg.get_member()) - callback(msg) - #_log.debug('DONE') - return HANDLER_RESULT_HANDLED - - msg_filter = self._add_message_filter(dispatch) - match = self._add_match(filter_rule) - - def dispose(): - match.dispose() - msg_filter.dispose() - - return self.create_dependent_disposable(dispose) - - def _add_message_callback_fork(self, callback, filter_rule): - # type: (Callable[[Message], NoReturn], AnyStr) -> Disposable - - forked = self.fork() - _log.debug('forked connection ' + forked.bus_id) - - def dispatch(_, msg): - # type: (Connection, Message) -> int - - # _log.debug('got message type=' + str(msg.get_type()) + ' ' + msg.get_path() + '/' + msg.get_member()) - callback(msg) - return HANDLER_RESULT_HANDLED - - forked._add_message_filter(dispatch) - forked._add_match(filter_rule) - - return self.create_dependent_disposable(forked) - - def _add_message_filter(self, callback): - # type: (Callable[[Connection, Message], int]) -> Disposable - - _log.debug('added filter on ' + self.bus_id) - self._connection.add_message_filter(callback) - - def dispose(): - self._connection.remove_message_filter(callback) - - return self.create_dependent_disposable(dispose, 'message filter on ' + self.bus_id) - - def _add_match(self, filter_rule): - # type: (AnyStr) -> Disposable - - self.call_daemon_method('AddMatch', dbus_string(filter_rule)) - - _log.debug('added match_rule: ' + filter_rule) - - def dispose(): - self.call_daemon_method('RemoveMatch', dbus_string(filter_rule)) - - return self.create_dependent_disposable(dispose, 'Match ' + filter_rule) diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/dbus_connection.pyc b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/dbus_connection.pyc deleted file mode 100644 index 5f69a5a152481eef7f518231c9061d23f11bf20d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8378 zcmcgxTW{RP6+R?atKGF^$+9iql6aH0$tF#$T+jk_)5Nkawp)9hjO-+38xX4{CDUGV z*Cb_IfL)+)P`f~$^3<2U^{Fp?E6^X*U(g?re&3nBNpTRg*sbiDof!^?XU_S~cg~RB zzvpWo{bi@smj0iI-%BX@H>g7VccdedIO03vupV;#VZ8ieHtaCVowlBjO*i_j}TrlVo1}c}b3nf7Fhaq_ZH&qWFupKO>!Ek}Qe8 zBu?Z=bX=Z7gcA~-l+!%JUH*#=IYu;v5Z095o}&xy%Mb744OA@1)tpBxV=%# z;?m%$oOX4!xqf}a1ZHFF_VrtV?XEXmTq?M^aC7vszDWP zjYsXM$1U1nZhJk>d)>UX-H93%u2({JJVJ5-EzW-#q`O0DsR zX4gc;UX~VRbXL>-ts*OkMKtXrIcXi@-rDa)#nFCer1~L%xwp$G`9D!bLfitjzDp#- zynt;~B8q8hKx#%pPshs=mb5V|;fyva5|*`5m2g%YHG+kU9O;9_pCeE>GB4o~Z5)+w zP8$mn&TC^)qGJ*sl`rwQB?%XF@VJDF+BhNMF>Rcba7i1>VzwH`xrM8!YSqCLOZz;Vw54Eb=0sC_=m_-&k*J0ZT49($ zSfeg9hv6WN9tJzzEPyo?b;0OHMSS~CD^7!Oh_8ZBX?MDLq)q~l3ii_Y{$3QMtt7H& z=C1Onvs0Yq+@T;r0k{NsR$qz+u8LOqCR!`qUa=CVY4<^tM%nKEN)~lm`|qyw_Tj^6 z(22M6l{gCMCM&%xegMU;3yqH3p0QMdRH zZG#yU-%Z_yq4efuR61y0VGCvQB2z-_Du~1LXypWkxIH5VmVsr>|rZqplC-9+Q*PAns(c7qG?HmhBiND z7iG$pxQHhxLd(wo&kjtT#_a&#`5EOPB47naV;^zPfi;x;=cxAI>hmz*P1aDngDal6 zQXmw9LC76|{%2`L9EaKO*5|DHTtdRR5*2I1V1sPt(Z^Z0jc9jm-I5C*Xy~=3hDvD$ z*_FCRvztb`k^;0~WE{tl2E8omb@r!XHDx#ItQUttcV__M4=Dvj71wi4J4=rD0_AZ( zmSVn7bA3&5Z_pG;_vS+c+7a=NbYuC0MpAv4ciDOm)pWK$aNPsD-^AlAXx!6In^^~0 zhQC*M<#(tU41pEk1MXLnrzLq(mPhC0@r5Y-91SsSj>fyp!&{a}4>`ysOSm^|7e4Qx_Jm zG>p2rI$u7b)kI!i4iv9>E zgj~-=NObGWMCuA|V=s`6+L*0>)S4c-Na|czQz_`%N`k0h5kpKh`>S-KRvvK`3zOGz zNm<@1l`}_PrDKyka*!nK2`M6*T2(um6%BW54`JL|(CO}KKnbJmz1=a=B`6HnD$b#5 zXAw>~K^T#8qO=%0gN=Y>nRx@#U$oIl?vb9ISz{?=x6#ilsKh(wo_CkLHupy9`FjN= zUq=OG4JjJPc`~E?T(bNOz|1H=D;GQW&y4f4f^D1{xUSKd#C*b@&gieIS!-P;Jmwdy zK43+!QnD}~p=C9MhD=f~d@Hn_bz5P(l_UAoH%oYtHP8)65LBqTq5KqojaQilB5GyJ zeKxU50<^ctF3OCEYwU*yPo;XM<_UTjcX%w?Znf|67=N$edG*DY)2`02^h6%jqw?Tx z^`o7*gV+*ed!5L&_(tow0vEF!KzP9H zhD>rxrWugG9U_Fvct7zZ(1J@>wq*Qa;{N*2?t#b4D54pjYPcaI% z?6<}sq;ekQ3+1AO%j+pJ$#(;bgGq12@VQ^1*ey6UM-5O=_5+Z$k5_5zIE6D;F-=2? z^>r%SG+BMZYP2UB)#z2j))uM>I=mqWf6p~*sKi^SEI149QfY`*KAuGbtA!`50jMH? z**76TD-uwRvwbuV(TOX-sG`&1G$f{qWrquaE*0l}+~#~ILZ6R9yp$Zg_OAcWa5f)f zy(yzvZS`krr;lRCvNy@bY_ekHFt4(@#p*Vz@3Oomz*YmgumZNB5U2eoX?13|Uvo{y zLGk9C6Yj$7{2;@ny}2Q^J0A_s7$#IOy3MIzf3@#(eX%o^L|OAAiNXxEIMOP%c_Z^E zF5S!-X+WE>w)GFbU2bDc|AyQ}a=a-XcWq6nNAR0!JF}JsAlzI_E zg=%(^`lP%54P}rk5zGC9)Y$eKj0T5s!K_eE%;Pb{if)lYD~xf(h#7SA!#z!MJH+Z= zQTiFt34||XM10=2pka+;59`)Gu(5-q1i*op92gof!{HPghyXbt=|+leU;6h`Yz^eA zVR(Z)skC5mqNJ|T{Ne~H1d~P!&91TLFuPV*QW(Vxg&$A^-X!%E4$UoLaFLi%hg)7f`2pBd6b#z zT(vqkTRl--svc=JNd2l0oRW6&4b7l0`i)V)`~=%^8e-Uf!qPW0_Dn!nn;BNh8Puq$ zuwuGaP%C5KkuLPVBVFi!N4lWjk@$Hkw@Bhqta$T#ZW_G!vG*}B=)vvKbM}h3lV3>U zM{$~)c}z0DWwpualy|e$!M8LDjdi%;qrA+wsD_Mh_;SopjfP%p$nS>SZI)S4$I~;R eg7yOo(+?R}m0T9xOWv}x2#%Zc%FadSxc46sOfVS$ diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/dbus_daemon.py b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/dbus_daemon.py deleted file mode 100644 index 825028454..000000000 --- a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/dbus_daemon.py +++ /dev/null @@ -1,273 +0,0 @@ -from logging import getLogger - -from _dbus_bindings import Message, ErrorMessage, BUS_DAEMON_NAME, BUS_DAEMON_PATH, BUS_DAEMON_IFACE -from python_libs.ie_dbus.private.datatypes import ServiceInfo -from python_libs.ie_dbus.private.dbus_connection import DbusConnection -from python_libs.ie_dbus.private.message_types import MatchedMessage, MessageFilter, ResolvedMessage -from python_libs.ie_utils.mixins import Disposable, RequiresMainLoop - -_log = getLogger(__name__) - -NONE = '' - -# noinspection PyUnreachableCode -if False: - from typing import Callable, List, Optional, Iterable, Union, AnyStr, NoReturn, Any, Dict - from python_libs.ie_dbus.private.dbus_types import DbusType - - -class DBusDaemon(Disposable, RequiresMainLoop): - - _services = None # type: Dict[str, ServiceInfo] - - def __init__(self, connection_type_or_address): - # type: (Union[int, AnyStr]) -> NoReturn - - self._dbus = DbusConnection(connection_type_or_address) - # self._dbus.add_message_callback(lambda _: None, 'type=method_call', fork=False) # sink method calls, TODO - - self._name_changed = self.subscribe_to_signal_message( - self._on_name_owner_changed, - sender_id=BUS_DAEMON_NAME, - object_path=BUS_DAEMON_PATH, - interface=BUS_DAEMON_IFACE, - member='NameOwnerChanged') - - self._services = self._init_services() - - @property - def bus_id(self): - # type: () -> AnyStr - return self._dbus.bus_id - - @property - def services(self): - # type: () -> Iterable[ServiceInfo] - return self._services.itervalues() - - def subscribe_to_signal_message( - self, - callback, - sender_id='*', - sender_name='*', - object_path='*', - interface='*', - member='*', - signature='*'): - # type: (Callable[[MatchedMessage], None], Optional[AnyStr], Optional[AnyStr], Optional[AnyStr], Optional[AnyStr], Optional[AnyStr], Optional[AnyStr]) -> Disposable - - message_filter = MessageFilter( - message_type='signal', - sender_id=sender_id, - sender_name=sender_name, - object_path=object_path, - interface=interface, - member=member, - signature=signature) - - def dispatch(msg): - # type: (Message) -> NoReturn - - resolved_msg = self._resolve_message(msg) - matched = message_filter.match_message(resolved_msg) - - if matched is not None: - callback(matched) - - return self._dbus.add_message_callback(dispatch, message_filter.filter_rule) - - def subscribe_to_method_call_message( - self, - callback, - sender_id='*', - sender_name='*', - object_path='*', - interface='*', - member='*', - signature='*', - destination_id='*', - destination_name='*'): - # type: (Callable[[MatchedMessage], Any], Optional[AnyStr], Optional[AnyStr], Optional[AnyStr], Optional[AnyStr], Optional[AnyStr], Optional[AnyStr], Optional[AnyStr], Optional[bool]) -> Disposable - - message_filter = MessageFilter( - message_type='method_call', - sender_id=sender_id, - sender_name=sender_name, - object_path=object_path, - interface=interface, - member=member, - signature=signature, - destination_id=destination_id, - destination_name=destination_name) # TODO: eavesdrop logic - - def dispatch(msg): - # type: (Message) -> NoReturn - - if msg.get_type() != 1: - return - - resolved_msg = self._resolve_message(msg) - matched = message_filter.match_message(resolved_msg) - - if matched is None: - reply = ErrorMessage(msg, 'com.victronenergy.method_call_refused', 'refused') - else: - try: - result = callback(matched) - except Exception as e: - # _log.debug('method_call threw an exception ' + str(e)) - # traceback.print_exc() - reply = matched.create_error_reply(e) - else: - reply = matched.create_method_reply(result) - - self._dbus.send_message(reply) - - return self._dbus.add_message_callback(dispatch, message_filter.filter_rule, fork=False) - - def request_name(self, service_name): - # type: (AnyStr) -> Disposable - - return self._dbus.request_name(service_name) - - def call_method(self, service_name, object_path, interface, member, *args): - # type: (AnyStr, AnyStr, AnyStr, AnyStr, Iterable[DbusType]) -> List[Any] - - return self._dbus.call_method(service_name, object_path, interface, member, *args) - - def broadcast_signal(self, object_path, interface, member, *args): - # type: (AnyStr, AnyStr, AnyStr, List[DbusType]) -> NoReturn - - self._dbus.broadcast_signal(object_path, interface, member, *args) - - def get_service_names_of_id(self, service_id): - # type: (str) -> List[AnyStr] - - if service_id is None: - return [] - - return [ - s.name - for s in self.services - if s.id == service_id - ] - - def get_id_for_service_name(self, service_name): - # type: (AnyStr) -> Optional[AnyStr] - - return next((s.id for s in self.services if s.name == service_name), None) - - def exists_service_with_name(self, service_name): - # type: (AnyStr) -> bool - - return self.get_id_for_service_name(service_name) is not None - - def _resolve_message(self, msg): - # type: (Message) -> ResolvedMessage - - sender_id, sender_names = self._resolve_name(msg.get_sender()) - destination_id, destination_names = self._resolve_name(msg.get_destination()) - - return ResolvedMessage(msg, sender_id, sender_names, destination_id, destination_names) - - # noinspection PyShadowingBuiltins - def _resolve_name(self, name): - # type: (str) -> (str, List[str]) - - if name is None: - id = NONE - names = [] - elif name.startswith(':'): - id = name - names = self.get_service_names_of_id(name) - else: - id = self.get_id_for_service_name(name) - names = [name] - - return id, names - - def _on_name_owner_changed(self, msg): - # type: (MatchedMessage) -> NoReturn - - (name, old_id, new_id) = msg.arguments - - old_id = old_id.strip() - new_id = new_id.strip() - name = name.strip() - - if name.startswith(':'): - name = None - - added = old_id == '' and new_id != '' - changed = old_id != '' and new_id != '' - removed = old_id != '' and new_id == '' - - # 'changed' is dispatched as 'removed' followed by 'added' - - if removed or changed: - self._services.pop(old_id, None) - - if added or changed: - service = self._create_service(name, new_id) - self._services[new_id] = service - - # noinspection PyShadowingBuiltins - def _init_services(self): - # type: () -> Dict[str, ServiceInfo] - - services = dict() - - names_and_ids = self._dbus.get_ids_and_service_names() - - ids = set([i for i in names_and_ids if i.startswith(':')]) - names = [n for n in names_and_ids if not n.startswith(':')] - - for service_name in names: - service = self._create_service(service_name) - services[service.id] = service - ids.discard(service.id) - - self._services = services # UGLY, because _create_service below references it. - - for id in ids: - services[id] = self._create_service(id=id) - - return services - - def _search_service_name_by_pid(self, pid): - # type: (int) -> Optional[AnyStr] - return next((s.name for s in self.services if s.pid == pid and s.name != NONE), NONE) - - # noinspection PyShadowingBuiltins - def _create_service(self, name=None, id=None): - # type: (Optional[AnyStr], Optional[AnyStr]) -> ServiceInfo - - id = id or self._dbus.get_id_of_service(name) - pid = self._dbus.get_pid_of_service(id) - proc = self._get_process_name_of_pid(pid) - cmd = self._get_commandline_of_pid(pid) - name = name or self._search_service_name_by_pid(pid) - - return ServiceInfo(name, id, pid, proc, cmd) - - # noinspection PyBroadException - @staticmethod - def _get_process_name_of_pid(service_pid): - # type: (int) -> str - - try: - with open('/proc/{0}/comm'.format(service_pid)) as proc: - return proc.read().replace('\0', ' ').rstrip() - except Exception as _: - return '' - - # noinspection PyBroadException - @staticmethod - def _get_commandline_of_pid(service_pid): - # type: (int) -> str - - try: - with open('/proc/{0}/cmdline'.format(service_pid)) as proc: - return proc.read().replace('\0', ' ').rstrip() - except Exception as _: - return '' diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/dbus_daemon.pyc b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/dbus_daemon.pyc deleted file mode 100644 index 20f55842cdd2f83ad648cac3204244d2536b3c26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9390 zcmcgyNpBp-6@J|_Tt*~Cids#{vMhO-*bZqsivvfHEs>HfM;zHj$+9Pw8^i7<)#7x| zsJkhVF`11@YzGE>$T3I|1jsQt2MBV@f5Rk~Bvpu1LLN`(eyQ)5cv9+<_SvvB zrzAcg^#c-5OMP0L(2?+=MrOzOuZen9FENIWC;8HtZe z{kX&@q<%u;2c`a?#3!YGQsRfC{*c6{q<+foR*~kz5}%g(X>k&8xKF|Z5>CsCE5VrD z7ugYcvwlW`aapQPKsM2T@UIH_NM1p;8s=A8tE*vJ9pcaks>LwN8WKkQru0&a`qgUIctI^cX zWo)cdD6;Db9^_ohC?)Pv}swx+I2hK5eYDJ&u>}o!_Y@RGTxmw zB=<*Y^TDugv5(fuy~ZRM)yB946>Ut=()eh9VP>#?m>5T}{eN?-uHv~gVUt4w^0F101XfWxNM;=%NAfX zBwN7EuxtTF01aR?DqADK&B*(Xyesl9YFAb;vm!qh*&dbmTxy9xL>rBg?6{Bxby(BD zQrNj#o9fQmzd1%C2)6=!w14ve`i5p|2pfw{!UZliR27hZYUChF_DxjWUljqrueDxTM0_0}2>ky3nMGW5%WK2%%I%7_o7SZ^qfG zvRS+vcpRV$&==toba|@4N4!~X_-l&Vj#O4Oxb=FD&3u_-Uq@9%5fy=b<7<3y z2GxN0G$*mv(_D`{$e491ox0*4uK2V>@o9JF!L16AP}z%wF-5|@ zJ|v*6NI;xKRN8SJn~>Ga6Wp4_#37t$po0E%DXOsqVU|Y#0rC&VD0JwSAJlFV6OmIDpx0^`Q8uwTM0|dlZ%5 zif55O<|*)|5ooqgYQXBsdKLx>wW6&~M|~l3TJ<+(7VDTfRx}br&!JA`;)Wk;qL)u& z$WKE=FE3;YjD_3H&72}EhKpTw+~S4#GQCy@Fq%o2XE17>W%U(QngQ6gs1~?~^=7UP z**cFscu=4W3KT@%DoRFxN@?0DyB7F|-I6oqOqLG1ldfi}E3I@*&jUSgV4lM}<{PM# zg-eZQ7FKDq|1nbP>3Pnt|kMLxm>6LjI3w|G^lcEs%v^AEOIDP_E zKMMdM@CFbfynj&Mov|o8R5P7F44eMR+BMy^xy)*}msbO7q^pBZ9L+1(?MEmb&KR%A z9gA{CYCo2<4@$!G|3@`NbuOo^M&LJ~E1QE@%UAw(vu3`9**12eF|c5D1#A6;>(NT2 zq&8PVi|nb*okatt1_svPf2RoIB@}Y%$imH&VpAGsTaK)`lFl%tLC*EID|cqPTys6^ z@W?~X-4Hf7%1~j$F}c5)4-k%-J|tss_th({SCw3No3a;fA@ zI9()CGA!9CR0!DbA{T*d9ERIMA_yIjl_s2IvgVTmw)h^saP~MVOuqRblS2sYHZn#? z7or0Y&~@Z>=MK`@JtkAbYi1FZ0$L?F`?PtL1KdL4pn@8Z%g&gLon1wo+i0ifeu0kK z$gs_wtm?vz+;C6TY|qj3Xz7tQAga2WivkakVwVDc)}gVmV@jQ6p5u(3R1s=TDT(9ba0B-{S(kx(QGQFE@-Mj$$u79)xKHJRaP4vdOWDzk=`EKi zL|W5(gi}TLQCW}y;Wh}2_q*Gjp)UKxVa}sP_q;(sC>AYBco(79UF`NHdWJyh^U0cU zkh>z*=pBZF%P<7z2T=9Bt_*(;&YC&auTk`pO-jd|>M_>0m)BNSiYz$8-eIOQ&&yBdeNDT1n$3bV+ehQ&0B1b?;34 z6hO7BwTsr{<&8AYXanXoJTx>#dn7u;ZWsHS|EN3%?i0=H*y*<@8S_s%KVFGUqMk;o zRPIB|74Hht-xUhFZ5L6`%)>U)jqHy) z<1ab`Yk@4DjCg~9vlTTBqRY6Wg~`$vlkb}OHfnf&sAq&N3IqwqdK@NsrrOE!G-{ih z7`O56G^g?1Hg2zY-{BQWd=Y#4POyre8s`)At!BWZ6`M(Tk4@$pI20F0jLwZ4=}2*X zi%V!ddUV#s@L-d>hp^xuP&A1{4v%9ye$+UQIru4$J4Y}!?P$!SXCT39Dt|@;Qrm%| z?JX(HMqL#24&eZF5dXr>lxz+r7y`k_XWg}JpIA5(Q5 z)hX^x{6-oW8k4=!J;Ud80_wMI{=y}(w7Qx|m+SNr!wWW>GDmD_B7w$WE#zS=_$QR& zlvlx-Zq})~6L2FF&LOvg){J!|^und0e0ny8Oy|?GDIP4Ln43?1Vm5^Zc+sG4`(u(T zQep8K1=i8Ng%O*~7_|CQtdtK>29*cwPO<*Zg(;UJ#WG81+w`hOk*d8*hfS~89aMUC z9BaWW8!2uW`>oSk-t^j0@HcKn8pZV~xLwIfh5^91eOQqKumB+4xQH%(fgPyR21sg=1sDCp zOjbM{Pg_1dIcQ4437DtJrar{QPYiT5qXeHP^qC>IhWz)XKlI%SEkm6s_}f@k&C8F2 z!N+VL+x!D1PTEpD?H)ie(-pdlS{>x#F6Us?q!qy7=%+2RiDJp_Jlw z4M7?K5uxt};@@j;+(-^}Z`H2hR?Wq+7AN*MG&s`J*RuVn@#UrE&%N{X_8f(l@od7> zO5~I^_w{5g!8fIIDmE2StBv4ENg|=g6}67x`m1x1)^2vbbEP)6p2Jjoht11@j+H`R zW&?fQ%Nx9??_%wLb3X<)DVGrO9)qZTvi5}wnkL>S=vXb&%G!Jf&pt-f<{gY1XkE-U ztM9V<9;>cA&G*@*5X}!z4PJ)#uxbSY+atqTm4UJNHpfurd72e_Ufc?B$?ti+RLVTs znF>2=<5aS#-^Hw-Jc(!KB~~x9dW98_OueMqTxWNd74u!goW?xNO7ZNYWsfd7?zVk< z=VYjQL)v>1(bj;RuHkLOL6q!8RKxDDTbZ03nj9@TouBcUPRss3{&;0bf5x@0R3FNda-p{&}ao zZ1GWbHfTUR_*9#z1I(ZNtm*tV+WX3DKSzJ*GhXU^jgm#Ev%$7~cYXDvd`QI#1toN}wUPoHv5Fc)`+@m>2x=V0l- DY0S=x diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/dbus_types.py b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/dbus_types.py deleted file mode 100644 index 522473aa5..000000000 --- a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/dbus_types.py +++ /dev/null @@ -1,139 +0,0 @@ -from logging import getLogger - -import dbus - - -_log = getLogger(__name__) - -# noinspection PyUnreachableCode -if False: - from typing import Any, Union, Dict - DbusString = Union[dbus.String, dbus.UTF8String, dbus.ObjectPath, dbus.Signature] - DbusInt = Union[dbus.Int16, dbus.Int32, dbus.Int64] - DbusDouble = dbus.Double - DbusBool = dbus.Boolean - - DbusStringVariant = DbusString # TODO: variant_level constraint ? - DbusIntVariant = DbusInt - DbusDoubleVariant = DbusDouble - DbusBoolVariant = DbusBool - - DbusValue = Union[DbusString, DbusInt, DbusDouble, DbusBool, DBUS_NONE] - DbusVariant = Union[DbusStringVariant, DbusIntVariant, DbusDoubleVariant, DbusBoolVariant, DBUS_NONE] - - DbusTextDict = dbus.Dictionary - DbusVariantDict = dbus.Dictionary - - DbusType = Union[DbusValue, DbusVariant, DbusVariantDict, DbusTextDict] - -DBUS_NONE = dbus.Array([], signature=dbus.Signature('i'), variant_level=1) # DEFINED by victron - -MAX_INT16 = 2 ** 15 - 1 -MAX_INT32 = 2 ** 31 - 1 - - -def dbus_uint32(value): - # type: (int) -> dbus.UInt32 - if value < 0: - raise Exception('cannot convert negative value to UInt32') - - return dbus.UInt32(value) - - -def dbus_int(value): - # type: (Union[int, long]) -> Union[dbus.Int16, dbus.Int32, dbus.Int64] - abs_value = abs(value) - if abs_value < MAX_INT16: - return dbus.Int16(value) - elif abs_value < MAX_INT32: - return dbus.Int32(value) - else: - return dbus.Int64(value) - - -def dbus_string(value): - # type: (Union[str, unicode]) -> DbusString - if isinstance(value, unicode): - return dbus.UTF8String(value) - else: - return dbus.String(value) - - -def dbus_double(value): - # type: (float) -> DbusDouble - return dbus.Double(value) - - -def dbus_bool(value): - # type: (bool) -> DbusBool - return dbus.Boolean(value) - - -# VARIANTS - -def dbus_int_variant(value): - # type: (Union[int, long]) -> DbusIntVariant - abs_value = abs(value) - if abs_value < MAX_INT16: - return dbus.Int16(value, variant_level=1) - elif abs_value < MAX_INT32: - return dbus.Int32(value, variant_level=1) - else: - return dbus.Int64(value, variant_level=1) - - -def dbus_string_variant(value): - # type: (Union[str, unicode]) -> DbusStringVariant - if isinstance(value, unicode): - return dbus.UTF8String(value, variant_level=1) - else: - return dbus.String(value, variant_level=1) - - -def dbus_double_variant(value): - # type: (float) -> DbusDoubleVariant - return dbus.Double(value, variant_level=1) - - -def dbus_bool_variant(value): - # type: (bool) -> DbusBoolVariant - return dbus.Boolean(value, variant_level=1) - - -def dbus_variant(value): - # type: (Any) -> DbusVariant - - if value is None: - return DBUS_NONE - if isinstance(value, float): - return dbus_double_variant(value) - if isinstance(value, bool): - return dbus_bool_variant(value) - if isinstance(value, (int, long)): - return dbus_int_variant(value) - if isinstance(value, (str, unicode)): - return dbus_string_variant(value) - # TODO: container types - - raise TypeError('unsupported python type: ' + str(type(value)) + ' ' + str(value)) - - -def dbus_value(value): - # type: (Any) -> DbusVariant - - if value is None: - return DBUS_NONE - if isinstance(value, float): - return dbus_double(value) - if isinstance(value, bool): - return dbus_bool(value) - if isinstance(value, (int, long)): - return dbus_int(value) - if isinstance(value, (str, unicode)): - return dbus_string_variant(value) - # TODO: container types - - raise TypeError('unsupported python type: ' + str(type(value)) + ' ' + str(value)) - - - diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/dbus_types.pyc b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/dbus_types.pyc deleted file mode 100644 index 000289bbc18b34f9768319078dedf7e0a47775d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4364 zcmds4?Qhd&5I;Ljo3v?D`a&r!Bb2xBngLU_O%q#LK>}@Ia#}Q5nj$BD8eCjEvY$jm zVgil*8~eJC`{(utboV>kNh(#FkO&`E@a3Mn^ZB{g=bqf(^RwUnap1Hm{hQ|B@A!%T zG>BaOZ;(%PWRPu;fwf7#Nw!JKAeE!{%$OpTr>HF49Qo69G(+|b9Tmtf&{2`>A{nYc z%A~_tfpY>&0_W*qiq`D~N+rrdT@-kR4sy&}lEpIFD}t<&eU{V$*=wYh$UaAEh3s`w zXURS;EpnFxxlQh}Aa}@J5#%nptAf-Jjz;x7$ICnBzbeO!bdf3&u6e2nowaV{^&PEhSTyyZtKz#XHpg0o((|yZ z%e;*7buvpv*%Z&fD?`sb=LLHsvHe$r-Wc!(ymXZ`r&2C+3m8+vcqoi~#(>mxw%|f+ zNU-bG8E8g$omMQd{Bh^!=F|G#y=|)i79!4`ySF{gd~iRbkFf18s@SeIi?`rlR@j`3 z_pmYX9y{+A<8g@rTvsyY@gxpJ2w|9{)*VI?2eRMZn-p!H^c&nWb&7jnzJ^I&>;cEBO$ zPFg_lPd$m5L>l?G8}?eh`V`xC z9Ro!#6uQI6>1BFrlx}<^a@&1x7>!Y}J{uM5h&?RX5lIRcNnN)PE@`V$!WK%vLXagT ztp#9cwbmlQ83v>Bw3e{s=cD#Cd?>3*E_~_!&zLq=oy%OE%cDpS{q_}$ov6;O)7&+z z(f{xVYSvl-SOq|GTW0~*7)&rvmRY?xASubr2m4GOmgZ^JNj%-U#xUo1R)e>vg z8T%B5Bt@DT@(Tgh_fs`LsZDvC26cdmxQoVmMg7JgsRe_>KoUjef zIVSM|i8JE{&epVjrVJk7nDL0X>7QiGkS@>x*EzEt9Ec~`v&1t%%6><>G-UHo$VWJ{ z7g7=rJ8Rr8)|i&4SW5Rnhh&%4x&t@H$4ZQ?6u88D(Quo>l(kCnu8?9P&R8x^;Tp#f2UxMh-JI==Aw?sbj z5`TQF1bY1T_^m{2Vlkv+>hiw0=^wc;dj str - - if message_type == 1: - return 'method_call' - if message_type == 2: - return 'method_return' - if message_type == 3: - return 'error' - if message_type == 4: - return 'signal' - - return 'invalid' - - -class DBusMessage(Record): - - def __init__(self, msg, sender_id, destination_id): - # type: (Message, str, str) -> NoReturn - - self.sender_id = sender_id - self.destination_id = destination_id - self._msg = msg - - @property - def expects_reply(self): - # type: () -> bool - return not self._msg.get_no_reply() - - @property - def message_type(self): - # type: () -> int - return int(self._msg.get_type()) - - @property - def reply_serial(self): - # type: () -> int - return int(self._msg.get_reply_serial()) - - @property - def object_path(self): - # type: () -> str - return str(self._msg.get_path()) - - @property - def interface(self): - # type: () -> str - return str(self._msg.get_interface()) - - @property - def arguments(self): - # type: () -> List[Any] - return self._msg.get_args_list(utf8_strings=True) - - @property - def signature(self): - # type: () -> str - return str(self._msg.get_signature()) - - @property - def serial(self): - # type: () -> int - return int(self._msg.get_serial()) - - @property - def member(self): - # type: () -> str - return str(self._msg.get_member()) - - def create_method_reply(self, *args): - # type: (List[any]) -> MethodReturnMessage - - if self.message_type != MessageType.method_call: - raise Exception('cannot create a reply for a message that is not a method call') - - reply = MethodReturnMessage(self._msg) - - for arg in args: - reply.append(arg) - - return reply - - def create_error_reply(self, exception): - # type: (Exception) -> ErrorMessage - - if self.message_type != MessageType.method_call: - raise Exception('cannot create an error reply for a message that is not a method call') - - return ErrorMessage(self._msg, 'com.victronenergy.' + exception.__class__.__name__, exception.message) # TODO prefix - - -class ResolvedMessage(DBusMessage): - - def __init__(self, msg, sender_id, sender_names, destination_id, destination_names): - # type: (Message, str, List[str], str, List[str]) -> NoReturn - - super(ResolvedMessage, self).__init__(msg, sender_id, destination_id) - - self.sender_names = sender_names - self.destination_names = destination_names - - -class MatchedMessage(DBusMessage): - - def __init__(self, resolved_msg, sender_name, destination_name): - # type: (ResolvedMessage, str, str) -> NoReturn - - super(MatchedMessage, self).__init__(resolved_msg._msg, resolved_msg.sender_id, resolved_msg.destination_id) - - self.sender_name = sender_name - self.destination_name = destination_name - - -class MessageFilter(Record): - - def __init__( - self, - message_type='*', - sender_id='*', - sender_name='*', - object_path='*', - interface='*', - member='*', - signature='*', - destination_id='*', - destination_name='*', - eavesdrop=False): - - # type: (Optional[AnyStr],Optional[AnyStr],Optional[AnyStr],Optional[AnyStr],Optional[AnyStr],Optional[AnyStr],Optional[AnyStr],Optional[AnyStr],Optional[AnyStr],Optional[bool]) -> NoReturn - - self.signature = signature - self.message_type = message_type - - self.member = member - self.interface = interface - self.object_path = object_path - - self.sender_id = sender_id - self.sender_name = sender_name - self.destination_id = destination_id - self.destination_name = destination_name - - self.eavesdrop = eavesdrop - - @staticmethod - def create_filter_rule( - message_type='*', - sender_id='*', - sender_name='*', - object_path='*', - interface='*', - member='*', - destination_id='*', - eavesdrop=False): - # type: (Optional[AnyStr],Optional[AnyStr],Optional[AnyStr],Optional[AnyStr],Optional[AnyStr],Optional[AnyStr],Optional[AnyStr],bool) -> AnyStr - - rules = [] - - def rule(key, value): - if '*' not in value and '?' not in value: - rules.append("%s='%s'" % (key, value)) - - rule('type', message_type) - rule('sender', sender_id if sender_name == '*' and sender_id != '*' else sender_name) - rule('destination', destination_id) - rule('eavesdrop', 'true' if eavesdrop else 'false') - rule('path', object_path) # TODO: endswith *, object namespace - rule('interface', interface) - rule('member', member) - - return ','.join(rules) - - @property - def filter_rule(self): - # type: () -> AnyStr - - return self.create_filter_rule( - message_type=self.message_type, - sender_id=self.sender_id, - sender_name=self.sender_name, - object_path=self.object_path, - interface=self.interface, - member=self.member, - destination_id=self.destination_id, - eavesdrop=self.eavesdrop) - - @staticmethod - def _get_matching_name(names, name_filter): - # type: (Iterable[AnyStr], AnyStr) -> Optional[AnyStr] - - matching_names = ( - name - for name - in names - if glob(name, name_filter) - ) - - return next(matching_names, None) - - def match_message(self, msg): - # type: (ResolvedMessage) -> Optional[MatchedMessage] - - match = \ - glob(msg.object_path, self.object_path) and \ - glob(msg.interface or '', self.interface) and \ - glob(msg.member, self.member) and \ - glob(msg.signature, self.signature) and \ - glob(msg.sender_id, self.sender_id) and \ - glob(msg.destination_id or '', self.destination_id) - - if not match: - return None - - sender_name = self._get_matching_name(msg.sender_names, self.sender_name) - if sender_name is None and self.sender_name != '*': # sender might not have a well known name - return None - - destination_name = self._get_matching_name(msg.destination_names, self.destination_name) - if destination_name is None and self.destination_name != '*': - return None - - return MatchedMessage(msg, sender_name, destination_name) - - -class DBusException(Exception): - - def __init__(self, message): - super(Exception, self).__init__(message) - - @classmethod - def raise_if_error_reply(cls, reply): - # type: (Message) -> Message - - if isinstance(reply, ErrorMessage): - raise DBusException(reply.get_error_name()) - else: - return reply diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/message_types.pyc b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/message_types.pyc deleted file mode 100644 index fae86efb1d2a10ad9d644f02a6affce8b9f5bfef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9236 zcmcgy&2t<_6@N3kTJ6e`SC&5$JFrw7vIQy02_Xb<9LIJXQ)P>)Q7VCjFsx=;^2oEZ zo9U6usDK;+dM51$pR6?}(U1$$zJ#&q=x@gQL&{-m(mi zN$;2pR;0HggX7XWE?$PY8)8n#mM8JNJQ8^*^5fn~iJM|tN^Om)rzBnwb4sa4#?;di zFILp0G4+hZN2?LqW9oAfFN=9zM>sa7o|Sk-HoC{bpyc29>4Hg8%p=>%2K^$s?FcOp zwoP$!xV>%iE?HVEB6~N_hxsjIZ6A&Ns48>3Tc)@@j002b=2=O1gEi0?m}r>CT^5Tv zvYUx5iY5v_92Lnh>!(`zL1FU#W@-xddneo5C~~E*58bc@R|0x*1pk(EyuUXx5vuy* zBfo-Vzm3eO%pvlgPc4AFA^TokV#t0@;yPt*<|Up}?w~_cf(>0_!od=45fUM>~23z;x3Bfgh4S5oCL!HtaD9l z*R8A#N5xu_Wy8BBGx_%3T5i(*-m7b)JqR}o(`3`GB_@nFckS9JPww^$vo<}PT}4l> zY1Gdx^cTafaPaz~SNEop-=&JFaKkX`4@?*qhVgESYH$qIfV&QkGHWwiMy8r* zi++(rjvoQFZ?X?9&1^FP8O8-z78-uTD}Q|z)3qzRwp7H&mGF=FVyuLZR1X0nP(_r9 zBXwcbuc~uetyNVhCtB-ObzZAey2{o@)!NclhbkBu*n!q&)e68u)u9Vo7YQz0&yvIn zE&wlRJ~tTEkui-G{Hv(k_o?F{3NZOR4-QhBx{1_k*OvE3Bzm{=4O=cDI;R00#gaocz z1rS=3C;jwr-RZtg&xLQZz+>2?vE$Mq78)Ki_=@Tf>~Y1Ctf@2Bv%pHG6`9)KP%D_6&A0p6b?9?xKV5olxj5 zP|co&$@83W^8_q?dCZ-XLbd*Z8EnGIK1|3}x6sY=;eqv2k!c|Bk(xKoq- zYdj}lEI2%VSzHv7zx^1zpSXXy-F`{=klfOFu>PJ>sk~Km=m&S{(dy};PMP|K1+D+xdy&y= zM8MrR?V!Z^qY*q2bu<)3)oN+O>Y?h~3ces6#(7P+aXSsijys%$pMtE;q|{ctw%_)b zykmYum15!!uCm8F$iBEN;6*|T;Qh|LoMx#h4{Kn34Wq2919gD)Sx0XT|DOcZmyd>n z)w@Yl>=!V~#Z_ge4Z7mhLD`SW0T@xR?wh(}>a0Fhw4qRJs zJ79A}t6~~!DR&1i6L0}teF*DUJ>-3%P6hPJ3j>g0jy*!$z9$z3-V@an?Jjs4&;xOd zriWEtB6v5n1(!5^k5H;!)m3SNbNp1V4wqTt{UM+MP1rp{46K`7O`63j4KX zGWColO*ZA6pT^bj^^SFmp_?x!Qi`%l3OwHj;c=1fK!kvmy5_)s%GTWq74Ioqgi%{uzyhJz8Km%&0X!-i>__mB0~# zU;&~M4TiHGxtImQ5cp~wm1v3!pCLe6#?Al*BHxI(Dkd&p)#_&`+@DtvK*5C%kVAW* zI?yDC5708Gm;yzqUZ8^r3VJrRfI(VXKy^V2t!d4pU*+(ZNbm5M8sZ>YK|(c0LE;)3 z)Q2$ryT--<_bylMP({C=d@zA{qMn;#JV#IQ)^&|VUZ+%8hSR6zOk1n2kVAtA zuirry^OC2GW1|-WO;rN~1Lv>o1>xWnC@V)OVpb5s-Vyn<3`bC}*CT2P6SqLO$-aRM z%f^cCV4~M_*;N^zVgRmP6=}6 z)Z2098TJ1W`Jt-0(r1 za^TE@KC=%XOYsG_7Q{?R0j4P!!C!{@k^&``=7w@<-8pvun@x_VA7CY4_zUhq;l*(m zwHY#&8Z*VwKXY(0Tk47##EtS-O^#?$CHo>O(|7@%T!UTViU)6iFrf}!d7D#lR2EBD z-=0T?Pd<8H9w4%!mieiEk;70u`M~=a(wO)MWP_^ab~@a2#>nATFDQ}zozq_KNZ$wC zwv=fzQ$$PHyts{P%)L>5>944$RW`hu@0LUxMWc)NtmDGtg4}dm)ddZHf|7b*`gn%0 zkv?WP+;En|9y42TL1BiBdhDC;FPwvZxy&v43w4z(*U05xMY1bkx04C1gvyTlyf4E~ zDxxo=^OYGPC^p@sFbhlCN35)BAF;BqeZ+>0eo>9A=Lhr&%4C19%HZq{>an9I`VQV# zeT^fiuH0!#{<$u9fu_xa>GK1h;Z(tH7WFeMN*x-0=6jA_e&+M#cLQ%|n2PR%UQVjp zF&TF;gK#e?>~{pOU{iJu+JE^~C@s?Hh&!ArA`Ua_YbG`KHa{&vf+~vOWSII`QEG!XP&tI%7AG)n-cPIvldW=c4ek94bO(y{ zws+EZw#d#?5gnc`8j~ttl5e9vS)-O_Cl+$)A4u+u@msa^?m1NH$2h#vh**mMbAfXt z&;ycCq>t_4W|GBxm2eEF7HY7w;A7*|EbpJKr5;>z` au4Ql8KZmqfYk05LPMtY*^VAXi4*vrcYJQ{u diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/own_properties.py b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/own_properties.py deleted file mode 100644 index 76404b25c..000000000 --- a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/own_properties.py +++ /dev/null @@ -1,177 +0,0 @@ - -from logging import getLogger - -import dbus - -from python_libs.ie_dbus.private.dbus_types import dbus_variant, dbus_string -from python_libs.ie_dbus.private.dbus_daemon import DBusDaemon -from python_libs.ie_dbus.private.message_types import MatchedMessage -from python_libs.ie_dbus.private.ve_constants import GET_TEXT, INTERFACE_BUS_ITEM, PROPERTIES_CHANGED, GET_VALUE, SET_VALUE -from python_libs.ie_utils.mixins import Disposable, Record - -_log = getLogger(__name__) - - -# noinspection PyUnreachableCode -if False: - from typing import Optional, AnyStr, NoReturn, Dict, Any - from python_libs.ie_dbus.private.dbus_types import DbusVariant, DbusString, DbusVariantDict, DbusType - - -class OwnProperty(Record): - - def __init__(self, value, unit='', writable=False): - - str_value = round(value, 2) if isinstance(value, float) else value - - self.text = unicode(str_value) + unit - self.value = value - self.unit = unit - self.writable = writable - - @property - def dbus_dict(self): - # type: () -> dbus.Dictionary - d = { - dbus.String('Text'): dbus_variant(self.text), - dbus.String('Value'): dbus_variant(self.value) - } - return dbus.Dictionary(d, signature='sv') - - @property - def dbus_value(self): - # type: () -> DbusVariant - return dbus_variant(self.value) - - @property - def dbus_text(self): - # type: () -> DbusString - return dbus_string(self.text) - - def update_value(self, value): - # type: (any) -> OwnProperty - return OwnProperty(value, self.unit, self.writable) - - def __iter__(self): - yield self.value - yield self.text - - -class OwnProperties(Disposable): - - _own_properties = None # type: Dict[AnyStr, OwnProperty] - - # noinspection PyProtectedMember - def __init__(self, daemon): - # type: (DBusDaemon) -> NoReturn - - self._daemon = daemon - self._own_properties = dict() - self._method_call_subs = self._daemon.subscribe_to_method_call_message(self._on_method_called) # no filter whatsoever - - def get(self, object_path): - # type: (AnyStr) -> OwnProperty - return self._own_properties[object_path] - - def set(self, object_path, value, unit='', writable=False): - # type: (AnyStr, any, Optional[AnyStr], Optional[bool]) -> bool - - prop = OwnProperty(value, unit, writable) - - if object_path in self._own_properties: - if self._own_properties[object_path] == prop: - return False - - self._own_properties[object_path] = prop - # object_path, interface, member, *args): - self._daemon.broadcast_signal( - object_path, - INTERFACE_BUS_ITEM, - PROPERTIES_CHANGED, - prop.dbus_dict) - - return True - - def _on_method_called(self, message): - # type: (MatchedMessage) -> Any - - # _log.info(str(message.sender_name) + '(' + str(message.sender_id) + ') asked ' + message.member + ' ' + message.object_path) - - if message.member == GET_VALUE: - return self._on_get_value_called(message) - elif message.member == GET_TEXT: - return self._on_get_text_called(message) - elif message.member == SET_VALUE: - return self._on_set_value_called(message) - - def _on_set_value_called(self, message): - # type: (MatchedMessage) -> bool - - path = message.object_path - - if path not in self._own_properties: - raise Exception('property ' + path + ' does not exist') - - prop = self._own_properties[path] - if not prop.writable: - raise Exception('property ' + path + ' is read-only') - - value = message.arguments[0] - - if prop.value == value: - return False - - prop = prop.update_value(value) - self._own_properties[path] = prop - - # object_path, interface, member, *args): - self._daemon.broadcast_signal( - path, - INTERFACE_BUS_ITEM, - PROPERTIES_CHANGED, - prop.dbus_dict) - - return True - - def _on_get_value_called(self, message): - # type: (MatchedMessage) -> DbusType - - path = message.object_path - - if path in self._own_properties: - return self._own_properties[path].dbus_value - - if path.endswith('/'): # "Tree Export" - values = { - dbus.String(k.lstrip('/')): dbus_variant(p.value) - for (k, p) - in self._own_properties.iteritems() - if k.startswith(path) - } - - return dbus.Dictionary(values, signature='sv', variant_level=1) # variant for tree export !! - - raise Exception('property ' + path + ' does not exist') - - def _on_get_text_called(self, message): - # type: (MatchedMessage) -> DbusType - - path = message.object_path - - if path in self._own_properties: - return self._own_properties[message.object_path].dbus_text - - if path.endswith('/'): # "Tree Export" - values = { - dbus.String(k.lstrip('/')): dbus.String(p.text) - for (k, p) - in self._own_properties.iteritems() - if k.startswith(path) - } - return dbus.Dictionary(values, signature='ss', variant_level=1) # variant for tree export !! - - raise Exception('property ' + path + ' does not exist') - - def __contains__(self, object_path): - # type: (AnyStr) -> bool - return object_path in self._own_properties diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/own_properties.pyc b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/own_properties.pyc deleted file mode 100644 index e62bf1b7db068bcbdb0701d99c2bfc71c56f6810..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6724 zcmcgwTXPi06+Sb2kyc0u5Jt!dkX^nki7h#m6mb;<3`iJaBS^1IIa^Lmt#%tRFqh3t zOQ0(85}d?&Oea?3--IagNOkMxWqfS=_ z|0?+X1YdbE5b5E6Ac;sCNIQ^#^-z*f+M)JUB&kSRm3CFqnzUkD>5Q~zBt0(eXL*&=jD(;&Ug?K0Zw6mchW?%1%QbVZzP`I%E_T)nwnu6AsiXTFV# z-|M*UW81rD%d)d&n>94KNsv$1HlmHSFE`vNRPL^CteM+4ZmmT(zi35wH`eZH^8<7L z!J65)yViDsC?$f*x+eE!9n)>^}w=T`ZM%YI&VHWTaWSl!reUi3y=-|xFP z&pL^A-pF=au27cNb7S3hk+~`+t;SvF2qg??vO$l%3OPI+h(UKk9n&ENH_J(*Zk^AA zvTb9xZ*~6tXW4@y@7u!d9>D8O3@jglSRqV-QVVF^y*q@h-oz^u(ZP`T^@x>;L&d3(_PWE7l;ewWhli3aUrYN9@VVE@{6iK z7<*N6uouewo=8+>2MaYeu~3&i3_<~12*5@7tjDBHO2ScMaT#Z&>ttQ)$i|~2?>H?L z`F7TGWOO@=yLr#58k~LZyLURtwr@hWQ++)vVn-!=&GKNSO&*y=6wG;&3m}RS02S!P z0!_4tlJYJ}D|z3o#95Z_*vuANyDQy1b48vcwpi)!y2p7ICGlpt65EItu+lH$osP3B z`LitQdp*XsT*gqIFN$KY7De+YmprS4?}T$f1Akpw7X?8sRqUUk0MStLB2OS{$Ul@P z6%~6Rmj@jx@j*w(L6=|nfe<=Wgy9?!v{VM`Dzc5C$R4W5Xwqf8m307ZiMstXWBJCK#Tby$p<7Kl2E}TC1~kzU7_lq7$~WddN|v_Uv0M5 zs5+YIC<4NBQW^S>z`2R9{0d|c1CegQy@>`f1V98sgtZzYp{>*NF*YL5Xy{|O^Kq{+ zjC)hko6sr8q&KOBX+}Z{v^zvLe{XTyAAt;_nL4+ZijPRc8c+haOqlra2UUTK5nAX= zHEu;c&3(K#W%|IBAUYT;yf@q4EW1U#X(N|MsYRUWMcq!4psZPvJE;@1@jl!0t>eQ> ztTVDNb>5zZk%A9dx5U^Dd?gPpl}0cfyedrQhZL8JbYW;zG(K|~WQ=2u%r~Fdu8aB| z_xPyT);tbr?Hz14@Ck;#tV`qJN%*Tcc#Hx)92D=b236RYq z@ASHz(nT7=6QhBfNs=13kM{-g8f|A}Hdja%N%noP4x?8%QURB^H(=Y6l9kG-a5k6= zCc>Gp5mfYVDtr|xUt%c41E?UQpePqrfSP|I*=Y^>D%$t4_NhF_`n(D@v=1WIOsX|z zo|^hnJgH4LZDA%+bPNCyvO9pnhYPho+cQLhn;Yw8P#ktrRr^zM+yhg`V9hNDrhHTq zHy@KneClPTHXFC>>u&-fkUfe+ zS$F|E0E#Pg&0~WrE2yf*_K5lxngBdv%5t}4pU0&u8C#a(a;dPL-iLXX?8ayiz2AD1 zpmphGVC{L=>J4yoKj;)&+o{c5=?zD1P@^Rc(fo|$py8QoT%5dVK55oa@>T{nX0EfH zCU|7pU&Z22@s)3bzz@UN=EE6WG(b_V;+uhYK45r^u{;HT%in@{O#DIQo1wz#-`*Q2 zAB_vh?ppZWzm*iJ{2q5UTs%Vg-Eb1aBCff>4&Vhx_XJi5RO!_OK^fQ3mqFM%fN0MB!+G z9`z6aA(lrA{{JbIUjv6em%fX2)m>^Pg{x@c%4adOrU8mtGw+eS527J8!R;~bYi_I8 zr{#~7+owwVe$hKz6rbn#(5{twi@eH9P&ZHe*Z#;2svx*hhUOg<%)20(R}CI#qQvgl zB<5LOZ!~%mR@^GmBdIehn#~j zPy7a7$pGoGe>|KGr^C7Gf)6o62r1Gz^xKhsY3Sw@POpN!e?(w6gkbj-tTT8HuzvHq zunwRT?iGbQSoih-2mIgRUc=Jn=Op{k)~k*A3~gSI+}+$GS!bIX!yT6J9WAQ=$_);n zTFtC1&3*LzpHTh)Q_TaCUy$grd6aKMt}*D)bB>OE$e6u_9sZ1O46`RaW-9~C4zDB} zslg1Gh1)}B1gAXA6;&$?WTRw5&DS%J_CwZ`zWqiKU&T6jwu_>_aSO64;d+xH*Q}6y z1ft<@J7xfF;}|$z zJIUYE3_X;)^qL8SR5J1#(NY}c^j&-GSSpS0tjKB9`s%C?J> zaygBkL)~VI!+A$jEvtef2uU@np%ENWVAC9;XgJOi(=$WoY)+C;?1s_YFzfbL9qQyr mwXR|8s(&T9Mzxe@K~5k_oC!|guNj;Pr>k}RzFRr-{=We{y_g>W diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/remote_properties.py b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/remote_properties.py deleted file mode 100644 index 10a26f2cb..000000000 --- a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/remote_properties.py +++ /dev/null @@ -1,166 +0,0 @@ -from logging import getLogger - -from python_libs.ie_dbus.private.dbus_types import dbus_variant -from python_libs.ie_utils.mixins import Disposable, Record -from python_libs.ie_dbus.private.dbus_daemon import DBusDaemon -from python_libs.ie_dbus.private.message_types import MatchedMessage -from python_libs.ie_dbus.private.ve_constants import GET_TEXT, INTERFACE_BUS_ITEM, PROPERTIES_CHANGED, GET_VALUE, SERVICE_PREFIX, SET_VALUE - -_log = getLogger(__name__) - -_UNKNOWN_TEXT = '' - -# noinspection PyUnreachableCode -if False: - from typing import List, AnyStr, NoReturn, Dict, Any - - -class RemoteProperty(Record): - - def __init__(self, value, text): - - self.text = text - self.value = value - - @staticmethod - def from_dbus_dict(dbus_dict): - value = dbus_dict['Value'] - text = dbus_dict['Text'] - return RemoteProperty(value, text) - - -class RemoteProperties(Disposable): - - _remote_properties = None # type: Dict[AnyStr, RemoteProperty] - - def __init__(self, daemon): - # type: (DBusDaemon) -> NoReturn - - self._daemon = daemon - self._remote_properties = dict() - - # noinspection PyBroadException - def available_properties(self, service_name): - # type: (unicode) -> List[unicode] - - if not self._daemon.exists_service_with_name(service_name): - return [] - - try: - paths = self._call_remote(service_name=service_name, object_path='/', member=GET_TEXT)[0].keys() - except Exception as _: - return [] - else: - return ['/' + str(path) for path in paths] - - def exists(self, combined_path): - # type: (AnyStr) -> bool - - service_name, object_path, combined_path = self._parse_combined_path(combined_path) - return object_path in self.available_properties(service_name) - - def get(self, combined_path): - # type: (AnyStr) -> RemoteProperty - - service_name, object_path, combined_path = self._parse_combined_path(combined_path) - - if combined_path in self._remote_properties: - cached = self._remote_properties[combined_path] - - # a cached prop might have an unknown text, because its value has been written before, - # but it has never read or updated via property-changed - - if cached.text != _UNKNOWN_TEXT: - return cached - - text = self._get_text(service_name, object_path) - self._remote_properties[combined_path] = RemoteProperty(cached.value, text) - - return self._remote_properties[combined_path] - - prop = self._get_property(service_name, object_path) - self._remote_properties[combined_path] = prop - self._subscribe_to_property_changed(service_name, object_path) - - return prop - - def set(self, combined_path, value): - # type: (AnyStr, any) -> bool - - service_name, object_path, combined_path = self._parse_combined_path(combined_path) - - if combined_path in self._remote_properties: - if self._remote_properties[combined_path].value == value: - return False # property already has the requested value => nothing to do - else: - self._subscribe_to_property_changed(service_name, object_path) - - result = self._call_remote(service_name, object_path, SET_VALUE, dbus_variant(value))[0] - - if result != 0: - raise Exception(service_name + ' refused to set value of ' + object_path + ' to ' + str(value)) - - self._remote_properties[combined_path] = RemoteProperty(value, _UNKNOWN_TEXT) - - return True - - def _subscribe_to_property_changed(self, service_name, object_path): - # type: (unicode, unicode) -> NoReturn - - def callback(msg): - # type: (MatchedMessage) -> NoReturn - prop = RemoteProperty.from_dbus_dict(msg.arguments[0]) - key = msg.sender_name+msg.object_path - self._remote_properties[key] = prop - - signal = self._daemon.subscribe_to_signal_message( - callback=callback, - sender_name=service_name, - object_path=object_path, - interface=INTERFACE_BUS_ITEM, # TODO: <- this could be removed to make it more robust, in theory - member=PROPERTIES_CHANGED) # TODO: OTOH, don't fix if it is not broken - - self.chain_disposable(signal, 'signal subscription on ' + self._daemon.bus_id + ' ' + service_name + object_path) - - def _get_value(self, service_name, object_path): - # type: (unicode, unicode) -> any - - return self._call_remote(service_name, object_path, GET_VALUE)[0] - - def _get_text(self, service_name, object_path): - # type: (unicode, unicode) -> unicode - - result = self._call_remote(service_name, object_path, GET_TEXT)[0] - return unicode(result) - - def _get_property(self, service_name, object_path): - # type: (unicode, unicode) -> RemoteProperty - - value = self._get_value(service_name, object_path) - text = self._get_text(service_name, object_path) - - return RemoteProperty(value, text) - - def _call_remote(self, service_name, object_path, member, *args): - # type: (unicode, unicode, unicode, List[Any]) -> List[Any] - - return self._daemon.call_method(service_name, object_path, INTERFACE_BUS_ITEM, member, *args) - - def _parse_combined_path(self, combined_path): - # type: (str) -> (unicode,unicode,unicode) - - service_name, object_path = combined_path.lstrip('/').split('/', 1) - - if service_name == '': - raise Exception('Failed to parse service name. \ncombined_path must be of the form "service_name/path/to/property"') - if object_path == '': - raise Exception('Failed to parse object path. \ncombined_path must be of the form "service_name/path/to/property"') - - service_name = service_name if service_name.startswith(SERVICE_PREFIX) else SERVICE_PREFIX + service_name - - if not self._daemon.exists_service_with_name(service_name): - raise Exception('there is no service with the name "' + service_name + '" on the bus') - - object_path = '/' + object_path - - return unicode(service_name), unicode(object_path), unicode(service_name + object_path) diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/remote_properties.pyc b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/remote_properties.pyc deleted file mode 100644 index f75fc363178f942f36d682873f1260f506752050..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6455 zcmcIoOLH7o6+YebkY*%Vvf^kwb^;SQAp=QCghv5|%3xb#TZKJw^~evV0-e$HmDJXB z&!qcGSXCB_n1U==uwhBDWXoS*#fE>wf+c+4xifk=AuCCqzP_)%_nvdU^PO|M@b9_m z&;GLA>&y7Bfd7AvC;tzM2tQ8-B8ewmPdv7L8TgVEq+4+9f((k1l%!jdq%7UC>n+M) zN|I^mPP=wV1{F!F(yh97Sq3wb%u07wk~!(lNpeZLmn4~&?z|)m(p`|`vUD$tXFM^B z@(KrdL!v3^UJ>)AWdGE&P0L_OlA3gDl3bPURY~g7txIxEy4NJRF5Tq zFQ!10(J(M_QG$*tv(Hue@YOqb@+A~6eR(MoqT*>qm+7b~+s+0&wly!Tr4R?b!M3rBM|L$%)8T z>Z_wHKImD4DU>!GIdNl?uV6M!7lv^f+c3O>dd?$>U-9}x(?l#4=^b=H9*AE*Qi0%J z^&?-b6VR7eKH$h#+A7Zz%A=xeLPQlixQtOJB5|sqj9`_Emy^KR&W4GqB;=lT^yGxE z_*Jj!IUG54q`kz1p?XLdCc|idfM)O}rds+^ZhJQFCkCpH0xol69Ic(Jg;ZrkfLf;P zS4wsPtuxStE&J%xKblR!`xz=@@Xn9`BM0H)7{8!E*bhJk3q}R4Oi5JK%Ctl!tyCl` zYo$s$s@CNFqPcN7}3LPqG>;%xEM^>X}_&n6aAqX5hg(8fU zauhipz8YbB2@xkdYWF5BD`m>D%msfju5xF!ZQ?Lll5OM z$q@`#pvW)rjwiKW`|{bR(osbc&20x!lO4o;6B5aG2HnH0=caGNQP1u|{~!=mT4Itd zlf`IDlY#`_Kw+<Xy?L+X zt8FO}A*r_IL}y!P*iQ;H7OX=eEa(s_U_ejy%EyQ%M09VcJivdJNfFCL>5e=LNK$qC#7K57Cj%#&&YwFZnn2g`V({$$a$*_mP z39B&71gk6>EJ&o5st!*l5sKOnSyRYhtc$<1W{IA|VPI!KuBZ{__g-ZG&b9uI~6 z-Cnw5BIihiT<~2M$7WQI>-U&FxpUC?T==5wOZ(yQH}PLipO(T^f8Lub%>(O;UfrKT zIp;0-n!OMVd=&5hK!xf>sYFJ+<5yI?pEmgVi52QFHSD_QOSVaychUtNgtg%zAS+)y zt_gE%8|nbvJEwW2QK=3z00dx3;^lA5D=`&xS;Ol!uwD&@axc{2X`g$N!kSfff#c3# z2PD{0=V~jt&FX8J~nqnTVKt8^s@xEg@a?gvY`Ulsuk#$+@r z0VAA@A((V(@?r_*n}!(?uVAbip%5|h(>vRJDv~?%p^ow&p|DuRAx-0E9R_z<=X1xm zKm;flD{?#F#+Nl+lBDa5?$oblq50Lxd)dx@Vp5xHP|QslnM~uF60LHCOHX;0B;N`2 zC~P3QxfGU)RD+#shM|c#!|GPAzXw=PQqv`G!3%Do9ng*SlqyJ^T9e@_Y=ZYVxyB;i zNqd9Fn4B~KH->3LV{F4IL&N)Z&OOaw?!_>1SGqtGfoV+AL=&tQr%0I3ToiekjHB1W zx>F&~s!ZorRZX2J?p$@I4!K8Zm=Q~1zC7!d$Nwr0*t8sJ_6{CZ(lM)%G{9{DGh&sy z#f@P@1UWY+JQWTnxyywHWZtwE77&~P z$=Cx{z)!E6U>hf^i!YO)uae%!0s%L2mrgGJni((r)*1W&n|^`E-7}G7F8Y0n%)`(K z_c-I7gMkXA4os%j419bArNe%uFOnKG8iDrmi?ZeW*yK-mCQv0} zCo-xf|Ah`%49Nss4WMKg(MST5egdmH!|J7o$-|n)6TRHH2=4+8ho0&X(!@#d2MQ1l zAR>CQ0YQ;Yv5AUC2MrBOEj2aI|Elk6vxeYwl0@J<*ri6-nWQAFs1Law4r7yTB3*yT73*yT73*w4?ud|0ElWX#8sgl>`@7s8guO#t{IL!l6 zK|tQJB#GB%aLq63k`s-df;0-(l1d;yfSBsNOCt##^ zkkr(k23K2$(2pkd!B5zwf%9-gg%SRN-WT|3F;JW^4RQAXn&Bettm)#K`!sozB%~jl X7yJc}3FCsd;?Mf!LfQMEuypBvK@xIS diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/settings.py b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/settings.py deleted file mode 100644 index 09a8ae859..000000000 --- a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/settings.py +++ /dev/null @@ -1,89 +0,0 @@ -from logging import getLogger - -from python_libs.ie_dbus.private.dbus_types import dbus_string, dbus_int_variant, dbus_string_variant, dbus_double_variant, dbus_variant -from python_libs.ie_utils.mixins import Record -from python_libs.ie_dbus.private.dbus_daemon import DBusDaemon -from python_libs.ie_dbus.private.remote_properties import RemoteProperties -from python_libs.ie_dbus.private.ve_constants import SETTINGS_SERVICE, SETTINGS_INTERFACE, SETTINGS_PREFIX - -_log = getLogger(__name__) - -# noinspection PyUnreachableCode -if False: - from typing import Union, NoReturn, Optional, AnyStr - - -def prepend_settings_prefix(path): - # type: (AnyStr) -> any - - path = '/' + path.lstrip('/') - path = path if path.startswith(SETTINGS_PREFIX) else SETTINGS_PREFIX + path - return path - - -class Settings(Record): - - # noinspection PyProtectedMember - def __init__(self, daemon, remote_properties): - # type: (DBusDaemon, RemoteProperties) -> NoReturn - - self._daemon = daemon - self._remote_properties = remote_properties - - # noinspection PyShadowingBuiltins - - def add_setting(self, path, default_value, min=None, max=None, silent=False): - # type: (AnyStr, Union[unicode, int, float], Union[int, float, None], Union[int, float, None], Optional[bool]) -> NoReturn - - path = prepend_settings_prefix(path) - - if isinstance(default_value, int): - item_type = 'i' - elif isinstance(default_value, float): - item_type = 'f' - elif isinstance(default_value, (str, unicode)): - item_type = 's' - else: - raise Exception('Unsupported Settings Type') - - reply = self._daemon.call_method( - SETTINGS_SERVICE, # service_name - '/', # object_path - SETTINGS_INTERFACE, # interface - 'AddSilentSetting' if silent else 'AddSetting', # member, - dbus_string(''), # "group", not used - dbus_string(path), - dbus_variant(default_value), - dbus_string(item_type), - dbus_int_variant(min or 0), - dbus_int_variant(max or 0)) - - if reply[0] != 0: - raise Exception('failed to add setting ' + path) - - def exists(self, path): - # type: (unicode) -> bool - - path = prepend_settings_prefix(path) - return path in self.available_settings - - def get(self, path): - # type: (unicode) -> Union[unicode, int, float] - - path = prepend_settings_prefix(path) - return self._remote_properties.get(SETTINGS_SERVICE + path).value - - def set(self, path, value): - # type: (unicode, Union[unicode, int, float]) -> NoReturn - - path = prepend_settings_prefix(path) - self._remote_properties.set(SETTINGS_SERVICE + path, value) - - @property - def available_settings(self): - # type: () -> [unicode] - return self._remote_properties.available_properties(SETTINGS_SERVICE) - - def __contains__(self, path): - # type: (unicode) -> bool - return self.exists(path) diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/settings.pyc b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/settings.pyc deleted file mode 100644 index 8429dd6251cb4e566577ee0975a690c33d44b33b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3664 zcmcImTTdHD6h7G4*$M?Kl-;D@CS|J>tdf_rpG`U;3f`u;MY=^pkK#F4j){H@Zc#i>{Z5-hO#b0d z$K#Q0akr!GlVWE_mz^3+^W4QR#wIkjO!6JOG@U284fmoliE?YNO^t5Rd3#)pU!?lf zj@QbjlMUS4>ugneP?WKo&++{6!?AfB>8!||4X;-`wfbpUjC5%eZ8|_q9P4jvZ*TR! z?T7sh^?d8mhP}#9PK{f=?G3g0fX$0%%}>?F=GG6LDmFpL&+??mZIeg6LTNiL-Q>HG zWqXubxcMMI=-YCDq@lrqN8HR^?wBu!M7uIz&{mE}<{sG!KrB0$<_%1FFnQeXRQRVo zi`}{|AiO6fYYPMzU=USlFq=7ZZWdmB+rXIo$GSvpgZ7* z$|6m5*&Q9&mqi|?$qUm>bO;!_qcYixtnM0ZErV>~CF7-&~aX7VyY#1i{0KvdL z@~?UCdXlUDpI^i{SihUXIf~pLf z;BH*Q7!@!_ab4{5r1~9zG(hsvkU#`)Zg6)fAcQ=SEQj*)z9g+DskRMX6~;m>p-ET@ ztvJNjd4)KPPKSc~Wc?MkonOwz3&sHPg<+B>HVkj^*uWX`TiyWK$5T|21pPM;ti;V} zI%2YM0xCke3YG68(MNU4A5QH)9kcx&@(%l*slAFC7&1}$X#gKF}7-WT_No8Ky;K#lmGR1RUqdpop~y@5cT>i^eDrScG>FrD>RHF4$N>n-zpW zK_e8DN`dlH1nMTHkYUawr$rB=aSDA-$IgX}eSj-jv@b+960y8Du{sMar$l_@icb$j zNu;|lIRQwVv8j~2$5V5MJM!C=MX%+dEqkp>yVCM}`NHD9i{5f&$r~WrX%o%^;Io`} zMZfFOt2)yHX>zshfWcW1?J;~2j-m;2M#Ny2zDtN4rKb!0CTHUeFZDSuy?D^n7rgBgZnLmJC$!UJ1_I&^dXC1O z?Nk2|zH=P_%}6&pTU;zs$tc}Rh~N|Wz|Fv6^3PWfgu?mnM0)DHIQ1z%yma#Lv4Hap zmy?JEGYr4yx%0Qule?*0Ey6I5G988@tznoI@t6xZR5%eWsM0HPCtjOTYP9OINg)6s zr$8zDOtOEVBsF(=!7S}Ex+t+z%e*&WH8>XPeye%)omL&+#agd(n{6WgDPObswgr&L ze#qUKtJ(VGYPLSPnyt%q87gg@{sUDdJd~nq^T$SD1e{|nYkG1mY9 diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/ve_constants.py b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/ve_constants.py deleted file mode 100644 index b9e55df8e..000000000 --- a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/ve_constants.py +++ /dev/null @@ -1,11 +0,0 @@ - -SERVICE_PREFIX = 'com.victronenergy.' -VE_SERVICE_FILTER = SERVICE_PREFIX + '*' -INTERFACE_BUS_ITEM = SERVICE_PREFIX + 'BusItem' -PROPERTIES_CHANGED = 'PropertiesChanged' -GET_VALUE = 'GetValue' -SET_VALUE = 'SetValue' -GET_TEXT = 'GetText' -SETTINGS_SERVICE = 'com.victronenergy.settings' -SETTINGS_INTERFACE = 'com.victronenergy.Settings' -SETTINGS_PREFIX = '/Settings' diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/ve_constants.pyc b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_dbus/private/ve_constants.pyc deleted file mode 100644 index 9ef77bf14f0d663509129d02d2f9845bd664052d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 609 zcmZ`%+fKqj5FPFp9X6MXiTlhS!KYqMLGx&b;^nIe&^e9LG0iX!v;9BG?$`i_iEPyD0EP^P4EP*J2 zEQ2V6tbnM1tb(Y5tbwS3tV7T^$vR$9m?f*`HlAUcXr)y;-!(Bu@-0>yY`}V?pTl zT7xco#>}eAcsOqLN6fO|huNbN<7~q5!uoUW4Z6X>(l({~z4&8_=f}1CVH+gDZ!j)V zCt0HtYn^QOm*Avo8SUr7WnkE%yGv2Qf Txml`*?5DBUTh7&Km51(hWk`FZg NoReturn - - self.value = initial_value - self.length = length - - def update(self, value, length=None): - # type: (float, int) -> float - - if length is not None: - self.length = length - - self.value = (self.value * self.length + value) / (self.length + 1) - - _log.debug('real value: ' + str(value) + ', filtered value: ' + str(self.value)) - - return self.value - - -class DebounceFilter(object): - - def __init__(self, initial_state=None, max_inertia=10): - # type: (Optional[bool], Optional[int]) -> NoReturn - - self._max_inertia = max_inertia - self._inertia = max_inertia - self._state = initial_state - - def reset(self, state=None, max_inertia=None): - # type: (Optional[bool], Optional[int]) -> bool - - self._max_inertia = max_inertia or self._max_inertia - self._inertia = self._max_inertia - self._state = state or self._state - - _log.debug('debounce filter reset: state={0}, inertia={1}'.format(self._state, self._inertia)) - - return self._state - - def flip(self): - # type: () -> bool - self._state = not self._state - self._inertia = self._max_inertia - return self._state - - def update(self, new_state, max_inertia=None): - # type: (bool, int) -> bool - - if max_inertia is not None and max_inertia != self._max_inertia: - return self.reset(new_state, max_inertia) - - if new_state != self._state: - if self._inertia > 0: - self._inertia = self._inertia - 1 - else: - self.flip() - else: - self._inertia = min(self._inertia + 1, self._max_inertia) - - _log.debug('debounce filter update: state={0}, inertia={1}'.format(self._state, self._inertia)) - - return self._state diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_utils/filters.pyc b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_utils/filters.pyc deleted file mode 100644 index 1378e921c9974a0d4b6f20e596ce962acab1a56a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2634 zcmb_eTW=dh6h1p^J8|lekdihP6*cf;L8+;DKwQdQeF7s*BqSoF)g~Uh>#TRp?l=&& zeQNj_`~rR+KLEb(j4vsoPl@Fn&zw1X=3Kt-jN`wzx4!&yl%B}q6XW+QJoPDtA-<91 zBGX8YB8i-ls;^Qbc`Vb095rOxl%u9Zg@}v9wd4hKH)I%#+mulx!-ialyb$^Ms4c_h zQrcQcw`8~>hrLalm;HlJFT%{XF^rx6z8sHT)iV@PV^CV>=T)JLA7?%*i!}E)vGYTD zmKEc#&s>#`-Qz6xu6ik`Z=h4Zi@^zF384**To^er^b#Il!1adM!(J15*;^d&$O)6e zhi-g}r@n>ZnUQBA2_}(F)aIdjKL`%f%2}Gvoo`{5yJGC0^k~O7Fw`y|S*rML3|W!+ zEX@o53CfBnCmQP{k~a|SZ3+-AX8X*5 z5g*G03B;tyYybhbkAMu*iNflz$72T>>s-^X%B6W%1OK#J??G_C8=`Q-rMSlo zYT5>6;WTZQR#cSaG%4(YWODQFn)SBJL?0WL21XWLI zZ^4ge;Wq%l zY{T~z-np-h^e_6oYNYQku#ak<#!_La{gCiSag7`XB1~f4&U70zgLXrzUzSTF2h2f3 ze*Hs5O NoReturn - - main_loop = gobject.MainLoop() - - def update(*args, **kwargs): - try: - update_action() - return True - - except Exception as e: - _log.error(e.message) - traceback.print_exc() - main_loop.quit() - return False - - gobject.timeout_add(update_period, update) - main_loop.run() \ No newline at end of file diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_utils/main_loop.pyc b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_utils/main_loop.pyc deleted file mode 100644 index 419e953b19685be65878548f508891a1b51de255..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1069 zcmb_b&2G~`5T3D}pQfoAdO@7H`h>3>%8!HqA(b2)Bv3A9V{eTU+iP~$&`9MJ1mz)k zN*(}aCMfCy)bUPcc4oi%zS$)Fb254M`%>lb{|V^(IW6~*OhGR~4bUJg5s>2m>HwC3 zH#!ESPr2X!EyxH0%!z1h8y7ayb(%bmxp*GFXD*oa|o%hAt$<>lxrRXZKC9@$s6bbd(D=Bv0&MDHifkd3NZ z>S{WFLQ&rp%Ii$!%qXS}a8Jl2luoL)HD7eAZMjWy;%iM^Ynyai|H%+UwQ@T)o{gk`A QDVZ5gaT*QrK`;&f0S?UODgXcg diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_utils/mixins.py b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_utils/mixins.py deleted file mode 100644 index 5e8bf3986..000000000 --- a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_utils/mixins.py +++ /dev/null @@ -1,115 +0,0 @@ -from logging import getLogger -from _dbus_glib_bindings import DBusGMainLoop - -# noinspection PyUnreachableCode -if False: - from typing import Callable, NoReturn, List, AnyStr, Optional, Union - -_log = getLogger(__name__) - - -def nop(*_args): - pass - - -def memoize(fn): - - attr_name = '_memoized_' + fn.__name__ - - def _memoized(self): - if not hasattr(self, attr_name): - setattr(self, attr_name, fn(self)) - return getattr(self, attr_name) - - return _memoized - - -# noinspection PyAttributeOutsideInit -class Disposable(object): - - _dispose_actions = None # type: List[Callable[[],NoReturn]] - - def __enter__(self): - return self - - def __exit__(self, typ, value, tb): - self.dispose() - - def dispose(self): - # type: () -> NoReturn - - while self._dispose_actions: - dispose = self._dispose_actions.pop() - dispose() - - for k, v in self.__dict__.iteritems(): - if isinstance(v, Disposable) and v._dispose_actions: - _log.debug('disposing ' + type(self).__name__ + '.' + k) - v.dispose() - - def chain_disposable(self, dispose, message=None): - # type: (Union[Callable[[],None],Disposable], Optional[AnyStr]) -> NoReturn - - if self._dispose_actions is None: - self._dispose_actions = [] - - if isinstance(dispose, Disposable): - dispose = dispose.dispose - - if message is None: - self._dispose_actions.append(dispose) - return - - def dispose_with_log_msg(): - _log.debug('disposing ' + message) - dispose() - - # _log.debug('new disposable ' + message) - self._dispose_actions.append(dispose_with_log_msg) - - @classmethod - def create(cls, dispose_action, message=None): - # type: (Union[Callable[[],None],Disposable], Optional[AnyStr]) -> Disposable - - disposable = Disposable() - disposable.chain_disposable(dispose_action, message) - return disposable - - def create_dependent_disposable(self, dispose_action, message=None): - # type: (Union[Callable[[],None],Disposable], Optional[AnyStr]) -> Disposable - - disposable = Disposable.create(dispose_action, message) - self.chain_disposable(disposable) - return disposable - - -class Record(object): - - @memoize - def __str__(self): - return self.__class__.__name__ + ' ' + unicode(vars(self)) - - def __repr__(self): - return self.__str__() - - @memoize - def __hash__(self): - return self.__str__().__hash__() - - def __eq__(self, other): - # TODO: improve, iterable vars are not correctly handled - return str(other) == str(self) - - # make readonly - def __setattr__(self, key, value): - # type: (str, any) -> NoReturn - - if not key.startswith('_') and hasattr(self, key): # disallow redefining - raise ValueError(key + ' is read-only' + str(dir())) - - super(Record, self).__setattr__(key, value) - - -class RequiresMainLoop(object): - - main_loop = DBusGMainLoop(set_as_default=True) # initialized only once for all subclasses that need it diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_utils/mixins.pyc b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_utils/mixins.pyc deleted file mode 100644 index 8ff772726ce313afce96f0a5033155e0560bd6a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4808 zcmb_gTXP&o6+Sbw7p*Rl>;x;|K$N(EEs9u#Dh#AjnAj$HF`}vkHf)9J8qKs;BhSvP zre}>sIWNdX!XrO`U&7Dg2f+88-d)M&aW&pPK7E<)bN%{^lK*V2-~ZQfn#uf0@c*yT z{J%kR{30nuCXtLHiP(>&jAfF@D3Qo@qB*=klfI1lGFg++noI^V8pvc_ zM(Z-!kkN)jm57VPZOR4q+>*Q_uS7;~N#0dvTk@W`9XXC9?{nlrp#rbwf*01x4Ij5q}*?#`JaKbA}>Y0fwy9TA}u!1E{*^LPhTKf;Q2Pb zT(>Xwou1dSGBIOc8{CU&WLcH&9)SVXF?c+ z_XS4tOR=~@11wj=xglRu5jAt#^Qk8B^R%3WcxsQXNA?gh?nTjBdk1GOM5jQMf$5}n z{3n%sd^)F5+PKB^ulvap}66?d+c5_f)NyK&k^zCN%^gYKHL1w4p0@fyR02X?h-l{xbc_o6v$S&!8dxjUMTbqKz3 z<|gLMEs#scX;)==ru6x>I81l_0S@wvB}q1s{u}Xo(Yw)yQATS}O8(F0VamCqV6A6s z(%hD@j#!{EREmj>ut)F)_|uL6cQFNooWJs9;p(meX}E3=zg|Lfq|lsPu7aoNFuZ=K zAasyH3VkS(0@r(BfX#>=xEx2RhjIMHA}g3cZ~8SL+6S01AA$sPa$&G^KqT+evC}EP z!fi!=FQVozMSDWG+le3F$G9SjL^mS6mW`@HqaW0jGkah(T7pbO#dJD#RsKd?7`o8> z5abOtbYd0J8S&W(Du;R46N7(>G0zZ{WINi7**2q{r~|ZqEoL5a-FHFY8@K}b%B<5{ z7iowfVHPfsR4q?KnID0uewtZX>08F;!hRv^R4+}dFix?8>R7rG`qIW(iB&Yjqm z&H(EDziM|d6~Yd6M9_#jA`o%^hp4@xV1m`bmv_l6wNzL(KjxTv@gs28qsndU6jZUf zW7ObIx#GqHOb7jvo6%Nupb)3f6N(`_sqQbPO3ypWX#Icd(eGFb|q1*~#sCHv&c*bKd?!|)y|28+@Nuuq(7OKW&b(3e9)`#Kr0L^~}63PRI z!cS`hUiYXILV3^;j%$U$aa0Sa5JI&OYW6;h0p42~F9J5E=R-9AJrKHk0X@4wKm;v@ zuoZs0bHq}>-U~4uZg;g8EXyp?i+WZSS)Dt*0-mRh*9zCAh6YJ;B!+ zdLd<2NEA&4Yu%Z(8Ma%vnNqSXBbUa8sEAyo0R-M`?$1AGr~ry7bOBIYQ*J* zD#WYxZ;{^iU6xr?6Qx<7Yv-VjBwKt`QD^J<1-e)GJ)mm-QC*eiL;77o1_e>mdftgf z3oM4;6IP|aX_~q*pKu)o&x=Ma){ zW<}%t;!8inI(=vx%HelGuA-sCH6;-~mVj{@po~e_)TSPH#&J3;TgARBis~{3((fC5 zJP^(%EDuWlWdWTlx~`(;BkXjBrV-qW4~8ra6e&?VjZv2y^rfZMZGJTKc8ot2*rTG# zG3Sj6Nznd0Euju?aTL~kjY(@XR;YvF8pCNrgbZqaK#q#3Q}yNg=+tFxxV{;EhVosX ix(Z#NhWqwclwHfKooFZNMIXnT$)GdXy7kGe+y4U#=Euwc diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_utils/utils.py b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_utils/utils.py deleted file mode 100644 index 87177f9ef..000000000 --- a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_utils/utils.py +++ /dev/null @@ -1,44 +0,0 @@ -from logging import getLogger -import re - -# noinspection PyUnreachableCode -if False: - from typing import Dict - -_log = getLogger(__name__) - - -def make2way(dic): - # type: (Dict) -> Dict - for k, v in dic.items(): - dic[v] = k - - return dic - - -def invert_dict(src_dic): - # type: (Dict) -> Dict - dic = dict() - - for k, v in src_dic.items(): - dic[v] = k - - return dic - - -def enum_file_name_of(path): - # type: (str) -> Dict[int,str] - - """ - This is kinda hacky, but it works :) - The enum file must contain a single enum however! - """ - - path = path[0:-1] if path.endswith('.pyc') else path - pattern = re.compile(r"^\s*(\w+)\s*=\s*(\d+)", re.M) - with open(path, "r") as f: - return { - int(m[1]): m[0] - for m - in pattern.findall(f.read()) - } diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_utils/utils.pyc b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/ie_utils/utils.pyc deleted file mode 100644 index f5768cf652a6b5cf2fb4649e9c7731eafe03e00b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1530 zcmb_c-%k@k5T3nj3s(Vu5Qrp_9EQYJ3^hg{G>9e;pOnPb1cTst^tSENyS;L|r8a>l zeD}d;|4RP={bozRKcJV}xtZD7+5Kj|J^#;q_08{2+@`C?!}l$Q`38~T6_gTXf(`@; zwmnKcI`ByPRJ?EzKBXnf%5+dBp^2m*S)og;n4zRZKZp)yDJeT8prqoIDko~yX0VC+ zi>D@_*#M#|?fbmjmBrq~SAuU>wQZXtd<=H%V3-Yv@9T6_ z+7@}5%AzqC+g`4tR2`d!lF`tr)HIyj#MCTSXK`OX8^z;W&`kw`ycMzFIYbR*Q=@$38oo9pXIxNHc1Y*x!Ye#&k z6Ejk_=T1;aM??-sE!}B8IJV{ksohkETal*DS;#n<+)gg%AVw0V4iqa3?N)cDg~i@Q zX6|CdU5<2|$tdrv!s$@b>_f36?s*lj#x!^5Nb!$C_nWY(d7Hg_o!-T%k(Qfi#{-^r zzcnUZG|3t{Y!OyBIjR}3xDRmy#c5Oc>1<_rGEC(*AHgg@+!1qrMJ#%AelQzU{{cRC BNB{r; diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/pysnooper/__init__.py b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/pysnooper/__init__.py deleted file mode 100644 index a9315e02d..000000000 --- a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/pysnooper/__init__.py +++ /dev/null @@ -1,30 +0,0 @@ -# Copyright 2019 Ram Rachum and collaborators. -# This program is distributed under the MIT license. -''' -PySnooper - Never use print for debugging again - -Usage: - - import pysnooper - - @pysnooper.snoop() - def your_function(x): - ... - -A log will be written to stderr showing the lines executed and variables -changed in the decorated function. - -For more information, see https://github.com/cool-RR/PySnooper -''' - -from .tracer import Tracer as snoop -from .variables import Attrs, Exploding, Indices, Keys -import collections - -__VersionInfo = collections.namedtuple('VersionInfo', - ('major', 'minor', 'micro')) - -__version__ = '0.4.0' -__version_info__ = __VersionInfo(*(map(int, __version__.split('.')))) - -del collections, __VersionInfo # Avoid polluting the namespace diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/pysnooper/pycompat.py b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/pysnooper/pycompat.py deleted file mode 100644 index 247dbde57..000000000 --- a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/pysnooper/pycompat.py +++ /dev/null @@ -1,95 +0,0 @@ -# Copyright 2019 Ram Rachum and collaborators. -# This program is distributed under the MIT license. -'''Python 2/3 compatibility''' - -import abc -import os -import inspect -import sys -import datetime as datetime_module - -PY3 = (sys.version_info[0] == 3) -PY2 = not PY3 - -if hasattr(abc, 'ABC'): - ABC = abc.ABC -else: - class ABC(object): - """Helper class that provides a standard way to create an ABC using - inheritance. - """ - __metaclass__ = abc.ABCMeta - __slots__ = () - - -if hasattr(os, 'PathLike'): - PathLike = os.PathLike -else: - class PathLike(ABC): - """Abstract base class for implementing the file system path protocol.""" - - @abc.abstractmethod - def __fspath__(self): - """Return the file system path representation of the object.""" - raise NotImplementedError - - @classmethod - def __subclasshook__(cls, subclass): - return ( - hasattr(subclass, '__fspath__') or - # Make a concession for older `pathlib` versions:g - (hasattr(subclass, 'open') and - 'path' in subclass.__name__.lower()) - ) - - -try: - iscoroutinefunction = inspect.iscoroutinefunction -except AttributeError: - iscoroutinefunction = lambda whatever: False # Lolz - -try: - isasyncgenfunction = inspect.isasyncgenfunction -except AttributeError: - isasyncgenfunction = lambda whatever: False # Lolz - - -if PY3: - string_types = (str,) - text_type = str -else: - string_types = (basestring,) - text_type = unicode - -try: - from collections import abc as collections_abc -except ImportError: # Python 2.7 - import collections as collections_abc - -if sys.version_info[:2] >= (3, 6): - time_isoformat = datetime_module.time.isoformat -else: - def time_isoformat(time, timespec='microseconds'): - assert isinstance(time, datetime_module.time) - if timespec != 'microseconds': - raise NotImplementedError - result = '{:02d}:{:02d}:{:02d}.{:06d}'.format( - time.hour, time.minute, time.second, time.microsecond - ) - assert len(result) == 15 - return result - - -def timedelta_format(timedelta): - time = (datetime_module.datetime.min + timedelta).time() - return time_isoformat(time, timespec='microseconds') - -def timedelta_parse(s): - hours, minutes, seconds, microseconds = map( - int, - s.replace('.', ':').split(':') - ) - return datetime_module.timedelta(hours=hours, minutes=minutes, - seconds=seconds, - microseconds=microseconds) - diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/pysnooper/tracer.py b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/pysnooper/tracer.py deleted file mode 100644 index 1316f18d2..000000000 --- a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/pysnooper/tracer.py +++ /dev/null @@ -1,498 +0,0 @@ -# Copyright 2019 Ram Rachum and collaborators. -# This program is distributed under the MIT license. - -import functools -import inspect -import opcode -import os -import sys -import re -import collections -import datetime as datetime_module -import itertools -import threading -import traceback - -from .variables import CommonVariable, Exploding, BaseVariable -from . import utils, pycompat -if pycompat.PY2: - from io import open - - -ipython_filename_pattern = re.compile('^$') - - -def get_local_reprs(frame, watch=(), custom_repr=(), max_length=None, normalize=False): - code = frame.f_code - vars_order = (code.co_varnames + code.co_cellvars + code.co_freevars + - tuple(frame.f_locals.keys())) - - result_items = [(key, utils.get_shortish_repr(value, custom_repr, - max_length, normalize)) - for key, value in frame.f_locals.items()] - result_items.sort(key=lambda key_value: vars_order.index(key_value[0])) - result = collections.OrderedDict(result_items) - - for variable in watch: - result.update(sorted(variable.items(frame, normalize))) - return result - - -class UnavailableSource(object): - def __getitem__(self, i): - return u'SOURCE IS UNAVAILABLE' - - -source_and_path_cache = {} - - -def get_path_and_source_from_frame(frame): - globs = frame.f_globals or {} - module_name = globs.get('__name__') - file_name = frame.f_code.co_filename - cache_key = (module_name, file_name) - try: - return source_and_path_cache[cache_key] - except KeyError: - pass - loader = globs.get('__loader__') - - source = None - if hasattr(loader, 'get_source'): - try: - source = loader.get_source(module_name) - except ImportError: - pass - if source is not None: - source = source.splitlines() - if source is None: - ipython_filename_match = ipython_filename_pattern.match(file_name) - if ipython_filename_match: - entry_number = int(ipython_filename_match.group(1)) - try: - import IPython - ipython_shell = IPython.get_ipython() - ((_, _, source_chunk),) = ipython_shell.history_manager. \ - get_range(0, entry_number, entry_number + 1) - source = source_chunk.splitlines() - except Exception: - pass - else: - try: - with open(file_name, 'rb') as fp: - source = fp.read().splitlines() - except utils.file_reading_errors: - pass - if not source: - # We used to check `if source is None` but I found a rare bug where it - # was empty, but not `None`, so now we check `if not source`. - source = UnavailableSource() - - # If we just read the source from a file, or if the loader did not - # apply tokenize.detect_encoding to decode the source into a - # string, then we should do that ourselves. - if isinstance(source[0], bytes): - encoding = 'utf-8' - for line in source[:2]: - # File coding may be specified. Match pattern from PEP-263 - # (https://www.python.org/dev/peps/pep-0263/) - match = re.search(br'coding[:=]\s*([-\w.]+)', line) - if match: - encoding = match.group(1).decode('ascii') - break - source = [pycompat.text_type(sline, encoding, 'replace') for sline in - source] - - result = (file_name, source) - source_and_path_cache[cache_key] = result - return result - - -def get_write_function(output, overwrite): - is_path = isinstance(output, (pycompat.PathLike, str)) - if overwrite and not is_path: - raise Exception('`overwrite=True` can only be used when writing ' - 'content to file.') - if output is None: - def write(s): - stderr = sys.stderr - try: - stderr.write(s) - except UnicodeEncodeError: - # God damn Python 2 - stderr.write(utils.shitcode(s)) - elif is_path: - return FileWriter(output, overwrite).write - elif callable(output): - write = output - else: - assert isinstance(output, utils.WritableStream) - - def write(s): - output.write(s) - return write - - -class FileWriter(object): - def __init__(self, path, overwrite): - self.path = pycompat.text_type(path) - self.overwrite = overwrite - - def write(self, s): - with open(self.path, 'w' if self.overwrite else 'a', - encoding='utf-8') as output_file: - output_file.write(s) - self.overwrite = False - - -thread_global = threading.local() -DISABLED = bool(os.getenv('PYSNOOPER_DISABLED', '')) - -class Tracer: - ''' - Snoop on the function, writing everything it's doing to stderr. - - This is useful for debugging. - - When you decorate a function with `@pysnooper.snoop()` - or wrap a block of code in `with pysnooper.snoop():`, you'll get a log of - every line that ran in the function and a play-by-play of every local - variable that changed. - - If stderr is not easily accessible for you, you can redirect the output to - a file:: - - @pysnooper.snoop('/my/log/file.log') - - See values of some expressions that aren't local variables:: - - @pysnooper.snoop(watch=('foo.bar', 'self.x["whatever"]')) - - Expand values to see all their attributes or items of lists/dictionaries: - - @pysnooper.snoop(watch_explode=('foo', 'self')) - - (see Advanced Usage in the README for more control) - - Show snoop lines for functions that your function calls:: - - @pysnooper.snoop(depth=2) - - Start all snoop lines with a prefix, to grep for them easily:: - - @pysnooper.snoop(prefix='ZZZ ') - - On multi-threaded apps identify which thread are snooped in output:: - - @pysnooper.snoop(thread_info=True) - - Customize how values are represented as strings:: - - @pysnooper.snoop(custom_repr=((type1, custom_repr_func1), - (condition2, custom_repr_func2), ...)) - - Variables and exceptions get truncated to 100 characters by default. You - can customize that: - - @pysnooper.snoop(max_variable_length=200) - - You can also use `max_variable_length=None` to never truncate them. - - Show timestamps relative to start time rather than wall time:: - - @pysnooper.snoop(relative_time=True) - - ''' - def __init__(self, output=None, watch=(), watch_explode=(), depth=1, - prefix='', overwrite=False, thread_info=False, custom_repr=(), - max_variable_length=100, normalize=False, relative_time=False): - self._write = get_write_function(output, overwrite) - - self.watch = [ - v if isinstance(v, BaseVariable) else CommonVariable(v) - for v in utils.ensure_tuple(watch) - ] + [ - v if isinstance(v, BaseVariable) else Exploding(v) - for v in utils.ensure_tuple(watch_explode) - ] - self.frame_to_local_reprs = {} - self.start_times = {} - self.depth = depth - self.prefix = prefix - self.thread_info = thread_info - self.thread_info_padding = 0 - assert self.depth >= 1 - self.target_codes = set() - self.target_frames = set() - self.thread_local = threading.local() - if len(custom_repr) == 2 and not all(isinstance(x, - pycompat.collections_abc.Iterable) for x in custom_repr): - custom_repr = (custom_repr,) - self.custom_repr = custom_repr - self.last_source_path = None - self.max_variable_length = max_variable_length - self.normalize = normalize - self.relative_time = relative_time - - def __call__(self, function_or_class): - if DISABLED: - return function_or_class - - if inspect.isclass(function_or_class): - return self._wrap_class(function_or_class) - else: - return self._wrap_function(function_or_class) - - def _wrap_class(self, cls): - for attr_name, attr in cls.__dict__.items(): - # Coroutines are functions, but snooping them is not supported - # at the moment - if pycompat.iscoroutinefunction(attr): - continue - - if inspect.isfunction(attr): - setattr(cls, attr_name, self._wrap_function(attr)) - return cls - - def _wrap_function(self, function): - self.target_codes.add(function.__code__) - - @functools.wraps(function) - def simple_wrapper(*args, **kwargs): - with self: - return function(*args, **kwargs) - - @functools.wraps(function) - def generator_wrapper(*args, **kwargs): - gen = function(*args, **kwargs) - method, incoming = gen.send, None - while True: - with self: - try: - outgoing = method(incoming) - except StopIteration: - return - try: - method, incoming = gen.send, (yield outgoing) - except Exception as e: - method, incoming = gen.throw, e - - if pycompat.iscoroutinefunction(function): - raise NotImplementedError - if pycompat.isasyncgenfunction(function): - raise NotImplementedError - elif inspect.isgeneratorfunction(function): - return generator_wrapper - else: - return simple_wrapper - - def write(self, s): - s = u'{self.prefix}{s}\n'.format(**locals()) - self._write(s) - - def __enter__(self): - if DISABLED: - return - calling_frame = inspect.currentframe().f_back - if not self._is_internal_frame(calling_frame): - calling_frame.f_trace = self.trace - self.target_frames.add(calling_frame) - - stack = self.thread_local.__dict__.setdefault( - 'original_trace_functions', [] - ) - stack.append(sys.gettrace()) - self.start_times[calling_frame] = datetime_module.datetime.now() - sys.settrace(self.trace) - - def __exit__(self, exc_type, exc_value, exc_traceback): - if DISABLED: - return - stack = self.thread_local.original_trace_functions - sys.settrace(stack.pop()) - calling_frame = inspect.currentframe().f_back - self.target_frames.discard(calling_frame) - self.frame_to_local_reprs.pop(calling_frame, None) - - ### Writing elapsed time: ############################################# - # # - start_time = self.start_times.pop(calling_frame) - duration = datetime_module.datetime.now() - start_time - elapsed_time_string = pycompat.timedelta_format(duration) - indent = ' ' * 4 * (thread_global.depth + 1) - self.write( - '{indent}Elapsed time: {elapsed_time_string}'.format(**locals()) - ) - # # - ### Finished writing elapsed time. #################################### - - def _is_internal_frame(self, frame): - return frame.f_code.co_filename == Tracer.__enter__.__code__.co_filename - - def set_thread_info_padding(self, thread_info): - current_thread_len = len(thread_info) - self.thread_info_padding = max(self.thread_info_padding, - current_thread_len) - return thread_info.ljust(self.thread_info_padding) - - def trace(self, frame, event, arg): - - ### Checking whether we should trace this line: ####################### - # # - # We should trace this line either if it's in the decorated function, - # or the user asked to go a few levels deeper and we're within that - # number of levels deeper. - - if not (frame.f_code in self.target_codes or frame in self.target_frames): - if self.depth == 1: - # We did the most common and quickest check above, because the - # trace function runs so incredibly often, therefore it's - # crucial to hyper-optimize it for the common case. - return None - elif self._is_internal_frame(frame): - return None - else: - _frame_candidate = frame - for i in range(1, self.depth): - _frame_candidate = _frame_candidate.f_back - if _frame_candidate is None: - return None - elif _frame_candidate.f_code in self.target_codes or _frame_candidate in self.target_frames: - break - else: - return None - - thread_global.__dict__.setdefault('depth', -1) - if event == 'call': - thread_global.depth += 1 - indent = ' ' * 4 * thread_global.depth - - # # - ### Finished checking whether we should trace this line. ############## - - ### Making timestamp: ################################################# - # # - if self.normalize: - timestamp = ' ' * 15 - elif self.relative_time: - try: - start_time = self.start_times[frame] - except KeyError: - start_time = self.start_times[frame] = \ - datetime_module.datetime.now() - duration = datetime_module.datetime.now() - start_time - timestamp = pycompat.timedelta_format(duration) - else: - timestamp = pycompat.time_isoformat( - datetime_module.datetime.now().time(), - timespec='microseconds' - ) - # # - ### Finished making timestamp. ######################################## - - line_no = frame.f_lineno - source_path, source = get_path_and_source_from_frame(frame) - source_path = source_path if not self.normalize else os.path.basename(source_path) - if self.last_source_path != source_path: - self.write(u'{indent}Source path:... {source_path}'. - format(**locals())) - self.last_source_path = source_path - source_line = source[line_no - 1] - thread_info = "" - if self.thread_info: - if self.normalize: - raise NotImplementedError("normalize is not supported with " - "thread_info") - current_thread = threading.current_thread() - thread_info = "{ident}-{name} ".format( - ident=current_thread.ident, name=current_thread.getName()) - thread_info = self.set_thread_info_padding(thread_info) - - ### Reporting newish and modified variables: ########################## - # # - old_local_reprs = self.frame_to_local_reprs.get(frame, {}) - self.frame_to_local_reprs[frame] = local_reprs = \ - get_local_reprs(frame, - watch=self.watch, custom_repr=self.custom_repr, - max_length=self.max_variable_length, - normalize=self.normalize, - ) - - newish_string = ('Starting var:.. ' if event == 'call' else - 'New var:....... ') - - for name, value_repr in local_reprs.items(): - if name not in old_local_reprs: - self.write('{indent}{newish_string}{name} = {value_repr}'.format( - **locals())) - elif old_local_reprs[name] != value_repr: - self.write('{indent}Modified var:.. {name} = {value_repr}'.format( - **locals())) - - # # - ### Finished newish and modified variables. ########################### - - - ### Dealing with misplaced function definition: ####################### - # # - if event == 'call' and source_line.lstrip().startswith('@'): - # If a function decorator is found, skip lines until an actual - # function definition is found. - for candidate_line_no in itertools.count(line_no): - try: - candidate_source_line = source[candidate_line_no - 1] - except IndexError: - # End of source file reached without finding a function - # definition. Fall back to original source line. - break - - if candidate_source_line.lstrip().startswith('def'): - # Found the def line! - line_no = candidate_line_no - source_line = candidate_source_line - break - # # - ### Finished dealing with misplaced function definition. ############## - - # If a call ends due to an exception, we still get a 'return' event - # with arg = None. This seems to be the only way to tell the difference - # https://stackoverflow.com/a/12800909/2482744 - code_byte = frame.f_code.co_code[frame.f_lasti] - if not isinstance(code_byte, int): - code_byte = ord(code_byte) - ended_by_exception = ( - event == 'return' - and arg is None - and (opcode.opname[code_byte] - not in ('RETURN_VALUE', 'YIELD_VALUE')) - ) - - if ended_by_exception: - self.write('{indent}Call ended by exception'. - format(**locals())) - else: - self.write(u'{indent}{timestamp} {thread_info}{event:9} ' - u'{line_no:4} {source_line}'.format(**locals())) - - if event == 'return': - self.frame_to_local_reprs.pop(frame, None) - self.start_times.pop(frame, None) - thread_global.depth -= 1 - - if not ended_by_exception: - return_value_repr = utils.get_shortish_repr(arg, - custom_repr=self.custom_repr, - max_length=self.max_variable_length, - normalize=self.normalize, - ) - self.write('{indent}Return value:.. {return_value_repr}'. - format(**locals())) - - if event == 'exception': - exception = '\n'.join(traceback.format_exception_only(*arg[:2])).strip() - if self.max_variable_length: - exception = utils.truncate(exception, self.max_variable_length) - self.write('{indent}{exception}'. - format(**locals())) - - return self.trace diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/pysnooper/utils.py b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/pysnooper/utils.py deleted file mode 100644 index ff9b9e855..000000000 --- a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/pysnooper/utils.py +++ /dev/null @@ -1,98 +0,0 @@ -# Copyright 2019 Ram Rachum and collaborators. -# This program is distributed under the MIT license. - -import abc -import re - -import sys -from .pycompat import ABC, string_types, collections_abc - -def _check_methods(C, *methods): - mro = C.__mro__ - for method in methods: - for B in mro: - if method in B.__dict__: - if B.__dict__[method] is None: - return NotImplemented - break - else: - return NotImplemented - return True - - -class WritableStream(ABC): - @abc.abstractmethod - def write(self, s): - pass - - @classmethod - def __subclasshook__(cls, C): - if cls is WritableStream: - return _check_methods(C, 'write') - return NotImplemented - - - -file_reading_errors = ( - IOError, - OSError, - ValueError # IronPython weirdness. -) - - - -def shitcode(s): - return ''.join( - (c if (0 < ord(c) < 256) else '?') for c in s - ) - - -def get_repr_function(item, custom_repr): - for condition, action in custom_repr: - if isinstance(condition, type): - condition = lambda x, y=condition: isinstance(x, y) - if condition(item): - return action - return repr - - -DEFAULT_REPR_RE = re.compile(r' at 0x[a-f0-9A-F]{4,}') - - -def normalize_repr(item_repr): - """Remove memory address (0x...) from a default python repr""" - return DEFAULT_REPR_RE.sub('', item_repr) - - -def get_shortish_repr(item, custom_repr=(), max_length=None, normalize=False): - repr_function = get_repr_function(item, custom_repr) - try: - r = repr_function(item) - except Exception: - r = 'REPR FAILED' - r = r.replace('\r', '').replace('\n', '') - if normalize: - r = normalize_repr(r) - if max_length: - r = truncate(r, max_length) - return r - - -def truncate(string, max_length): - if (max_length is None) or (len(string) <= max_length): - return string - else: - left = (max_length - 3) // 2 - right = max_length - 3 - left - return u'{}...{}'.format(string[:left], string[-right:]) - - -def ensure_tuple(x): - if isinstance(x, collections_abc.Iterable) and \ - not isinstance(x, string_types): - return tuple(x) - else: - return (x,) - - - diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/pysnooper/variables.py b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/pysnooper/variables.py deleted file mode 100644 index 2229c38aa..000000000 --- a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/python_libs/pysnooper/variables.py +++ /dev/null @@ -1,133 +0,0 @@ -import itertools -import abc -try: - from collections.abc import Mapping, Sequence -except ImportError: - from collections import Mapping, Sequence -from copy import deepcopy - -from . import utils -from . import pycompat - - -def needs_parentheses(source): - def code(s): - return compile(s, '', 'eval').co_code - - return code('{}.x'.format(source)) != code('({}).x'.format(source)) - - -class BaseVariable(pycompat.ABC): - def __init__(self, source, exclude=()): - self.source = source - self.exclude = utils.ensure_tuple(exclude) - self.code = compile(source, '', 'eval') - if needs_parentheses(source): - self.unambiguous_source = '({})'.format(source) - else: - self.unambiguous_source = source - - def items(self, frame, normalize=False): - try: - main_value = eval(self.code, frame.f_globals or {}, frame.f_locals) - except Exception: - return () - return self._items(main_value, normalize) - - @abc.abstractmethod - def _items(self, key, normalize=False): - raise NotImplementedError - - @property - def _fingerprint(self): - return (type(self), self.source, self.exclude) - - def __hash__(self): - return hash(self._fingerprint) - - def __eq__(self, other): - return (isinstance(other, BaseVariable) and - self._fingerprint == other._fingerprint) - - -class CommonVariable(BaseVariable): - def _items(self, main_value, normalize=False): - result = [(self.source, utils.get_shortish_repr(main_value, normalize=normalize))] - for key in self._safe_keys(main_value): - try: - if key in self.exclude: - continue - value = self._get_value(main_value, key) - except Exception: - continue - result.append(( - '{}{}'.format(self.unambiguous_source, self._format_key(key)), - utils.get_shortish_repr(value) - )) - return result - - def _safe_keys(self, main_value): - try: - for key in self._keys(main_value): - yield key - except Exception: - pass - - def _keys(self, main_value): - return () - - def _format_key(self, key): - raise NotImplementedError - - def _get_value(self, main_value, key): - raise NotImplementedError - - -class Attrs(CommonVariable): - def _keys(self, main_value): - return itertools.chain( - getattr(main_value, '__dict__', ()), - getattr(main_value, '__slots__', ()) - ) - - def _format_key(self, key): - return '.' + key - - def _get_value(self, main_value, key): - return getattr(main_value, key) - - -class Keys(CommonVariable): - def _keys(self, main_value): - return main_value.keys() - - def _format_key(self, key): - return '[{}]'.format(utils.get_shortish_repr(key)) - - def _get_value(self, main_value, key): - return main_value[key] - - -class Indices(Keys): - _slice = slice(None) - - def _keys(self, main_value): - return range(len(main_value))[self._slice] - - def __getitem__(self, item): - assert isinstance(item, slice) - result = deepcopy(self) - result._slice = item - return result - - -class Exploding(BaseVariable): - def _items(self, main_value, normalize=False): - if isinstance(main_value, Mapping): - cls = Keys - elif isinstance(main_value, Sequence): - cls = Indices - else: - cls = Attrs - - return cls(self.source, self.exclude)._items(main_value, normalize) diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/service/down b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/service/down deleted file mode 100644 index e69de29bb..000000000 diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/service/log/down b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/service/log/down deleted file mode 100644 index e69de29bb..000000000 diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/service/log/run b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/service/log/run deleted file mode 100755 index 74e759d9b..000000000 --- a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/service/log/run +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -exec 2>&1 -exec multilog t s25000 n4 /var/log/dbus-fzsonick-48tl.TTY diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/service/run b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/service/run deleted file mode 100755 index 7f5301435..000000000 --- a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/service/run +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -exec 2>&1 - -exec softlimit -d 100000000 -s 1000000 -a 100000000 /opt/innovenergy/dbus-fzsonick-48tl/start.sh TTY diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/signals.py b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/signals.py deleted file mode 100644 index 163a83a65..000000000 --- a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/signals.py +++ /dev/null @@ -1,214 +0,0 @@ -# coding=utf-8 - -import config as cfg -from convert import mean, read_float, read_led_state, read_bool, count_bits, comma_separated -from data import BatterySignal, Battery, LedColor, ServiceSignal, BatteryStatus, LedState - -# noinspection PyUnreachableCode -if False: - from typing import List, Iterable - - -def init_service_signals(batteries): - # type: (List[Battery]) -> Iterable[ServiceSignal] - - n_batteries = len(batteries) - product_name = cfg.PRODUCT_NAME + ' x' + str(n_batteries) - - return [ - ServiceSignal('/NbOfBatteries', n_batteries), # TODO: nb of operational batteries - ServiceSignal('/Mgmt/ProcessName', __file__), - ServiceSignal('/Mgmt/ProcessVersion', cfg.SOFTWARE_VERSION), - ServiceSignal('/Mgmt/Connection', cfg.CONNECTION), - ServiceSignal('/DeviceInstance', cfg.DEVICE_INSTANCE), - ServiceSignal('/ProductName', product_name), - ServiceSignal('/ProductId', cfg.PRODUCT_ID), - ServiceSignal('/Connected', 1) - ] - - -def init_battery_signals(): - # type: () -> Iterable[BatterySignal] - - read_voltage = read_float(register=999, scale_factor=0.01, offset=0) - read_current = read_float(register=1000, scale_factor=0.01, offset=-10000) - - read_led_amber = read_led_state(register=1004, led=LedColor.amber) - read_led_green = read_led_state(register=1004, led=LedColor.green) - read_led_blue = read_led_state(register=1004, led=LedColor.blue) - read_led_red = read_led_state(register=1004, led=LedColor.red) - - def read_power(status): - # type: (BatteryStatus) -> int - return int(read_current(status) * read_voltage(status)) - - def calc_power_limit_imposed_by_voltage_limit(v, i, v_limit, r_int): - # type: (float, float, float, float) -> float - - dv = v_limit - v - di = dv / r_int - p_limit = v_limit * (i + di) - - return p_limit - - def calc_power_limit_imposed_by_current_limit(v, i, i_limit, r_int): - # type: (float, float, float, float) -> float - - di = i_limit - i - dv = di * r_int - p_limit = i_limit * (v + dv) - - return p_limit - - def calc_max_charge_power(bs): - # type: (BatteryStatus) -> int - - b = bs.battery - v = read_voltage(bs) - i = read_current(bs) - - p_limits = [ - calc_power_limit_imposed_by_voltage_limit(v, i, b.v_max, b.r_int_min), - calc_power_limit_imposed_by_voltage_limit(v, i, b.v_max, b.r_int_max), - calc_power_limit_imposed_by_current_limit(v, i, b.i_max, b.r_int_min), - calc_power_limit_imposed_by_current_limit(v, i, b.i_max, b.r_int_max), - ] - - p_limit = min(p_limits) # p_limit is normally positive here (signed) - p_limit = max(p_limit, 0) # charge power must not become negative - - return int(p_limit) - - def calc_max_discharge_power(bs): - # type: (BatteryStatus) -> float - - b = bs.battery - v = read_voltage(bs) - i = read_current(bs) - - p_limits = [ - calc_power_limit_imposed_by_voltage_limit(v, i, b.v_min, b.r_int_min), - calc_power_limit_imposed_by_voltage_limit(v, i, b.v_min, b.r_int_max), - calc_power_limit_imposed_by_current_limit(v, i, -b.i_max, b.r_int_min), - calc_power_limit_imposed_by_current_limit(v, i, -b.i_max, b.r_int_max), - ] - - p_limit = max(p_limits) # p_limit is normally negative here (signed) - p_limit = min(p_limit, 0) # discharge power must not become positive - - return int(-p_limit) # make unsigned! - - def read_battery_cold(status): - return \ - read_led_green(status) >= LedState.blinking_slow and \ - read_led_blue(status) >= LedState.blinking_slow - - def read_soc(status): - soc = read_float(register=1053, scale_factor=0.1, offset=0)(status) - - # if the SOC is 100 but EOC is not yet reached, report 99.9 instead of 100 - if soc > 99.9 and not read_eoc_reached(status): - return 99.9 - if soc >= 99.9 and read_eoc_reached(status): - return 100 - - return soc - - def read_eoc_reached(status): - return \ - read_led_green(status) == LedState.on and \ - read_led_amber(status) == LedState.off and \ - read_led_blue(status) == LedState.off - - return [ - BatterySignal('/Dc/0/Voltage', mean, get_value=read_voltage, unit='V'), - BatterySignal('/Dc/0/Current', sum, get_value=read_current, unit='A'), - BatterySignal('/Dc/0/Power', sum, get_value=read_power, unit='W'), - - BatterySignal('/BussVoltage', mean, read_float(register=1001, scale_factor=0.01, offset=0), unit='V'), - BatterySignal('/Soc', mean, read_soc, unit='%'), - BatterySignal('/Dc/0/Temperature', mean, read_float(register=1003, scale_factor=0.1, offset=-400), unit='C'), - - BatterySignal('/NumberOfWarningFlags', sum, count_bits(base_register=1005, nb_of_registers=3, nb_of_bits=47)), - BatterySignal('/WarningFlags/TaM1', any, read_bool(base_register=1005, bit=1)), - BatterySignal('/WarningFlags/TbM1', any, read_bool(base_register=1005, bit=4)), - BatterySignal('/WarningFlags/VBm1', any, read_bool(base_register=1005, bit=6)), - BatterySignal('/WarningFlags/VBM1', any, read_bool(base_register=1005, bit=8)), - BatterySignal('/WarningFlags/IDM1', any, read_bool(base_register=1005, bit=10)), - BatterySignal('/WarningFlags/vsM1', any, read_bool(base_register=1005, bit=24)), - BatterySignal('/WarningFlags/iCM1', any, read_bool(base_register=1005, bit=26)), - BatterySignal('/WarningFlags/iDM1', any, read_bool(base_register=1005, bit=28)), - BatterySignal('/WarningFlags/MID1', any, read_bool(base_register=1005, bit=30)), - BatterySignal('/WarningFlags/BLPW', any, read_bool(base_register=1005, bit=32)), - BatterySignal('/WarningFlags/Ah_W', any, read_bool(base_register=1005, bit=35)), - BatterySignal('/WarningFlags/MPMM', any, read_bool(base_register=1005, bit=38)), - BatterySignal('/WarningFlags/TCMM', any, read_bool(base_register=1005, bit=39)), - BatterySignal('/WarningFlags/TCdi', any, read_bool(base_register=1005, bit=40)), - BatterySignal('/WarningFlags/WMTO', any, read_bool(base_register=1005, bit=41)), - BatterySignal('/WarningFlags/bit44', any, read_bool(base_register=1005, bit=44)), - BatterySignal('/WarningFlags/CELL1', any, read_bool(base_register=1005, bit=46)), - BatterySignal('/WarningFlags/bit47WarningDummy', any, read_bool(base_register=1005, bit=47)), - - BatterySignal('/NumberOfAlarmFlags', sum, count_bits(base_register=1009, nb_of_registers=3, nb_of_bits=47)), - BatterySignal('/AlarmFlags/Tam', any, read_bool(base_register=1009, bit=0)), - BatterySignal('/AlarmFlags/TaM2', any, read_bool(base_register=1009, bit=2)), - BatterySignal('/AlarmFlags/Tbm', any, read_bool(base_register=1009, bit=3)), - BatterySignal('/AlarmFlags/TbM2', any, read_bool(base_register=1009, bit=5)), - BatterySignal('/AlarmFlags/VBm2', any, read_bool(base_register=1009, bit=7)), - BatterySignal('/AlarmFlags/IDM2', any, read_bool(base_register=1009, bit=11)), - BatterySignal('/AlarmFlags/ISOB', any, read_bool(base_register=1009, bit=12)), - BatterySignal('/AlarmFlags/MSWE', any, read_bool(base_register=1009, bit=13)), - BatterySignal('/AlarmFlags/FUSE', any, read_bool(base_register=1009, bit=14)), - BatterySignal('/AlarmFlags/HTRE', any, read_bool(base_register=1009, bit=15)), - BatterySignal('/AlarmFlags/TCPE', any, read_bool(base_register=1009, bit=16)), - BatterySignal('/AlarmFlags/STRE', any, read_bool(base_register=1009, bit=17)), - BatterySignal('/AlarmFlags/CME', any, read_bool(base_register=1009, bit=18)), - BatterySignal('/AlarmFlags/HWFL', any, read_bool(base_register=1009, bit=19)), - BatterySignal('/AlarmFlags/HWEM', any, read_bool(base_register=1009, bit=20)), - BatterySignal('/AlarmFlags/ThM', any, read_bool(base_register=1009, bit=21)), - BatterySignal('/AlarmFlags/vsm1', any, read_bool(base_register=1009, bit=22)), - BatterySignal('/AlarmFlags/vsm2', any, read_bool(base_register=1009, bit=23)), - BatterySignal('/AlarmFlags/vsM2', any, read_bool(base_register=1009, bit=25)), - BatterySignal('/AlarmFlags/iCM2', any, read_bool(base_register=1009, bit=27)), - BatterySignal('/AlarmFlags/iDM2', any, read_bool(base_register=1009, bit=29)), - BatterySignal('/AlarmFlags/MID2', any, read_bool(base_register=1009, bit=31)), - BatterySignal('/AlarmFlags/CCBF', any, read_bool(base_register=1009, bit=33)), - BatterySignal('/AlarmFlags/AhFL', any, read_bool(base_register=1009, bit=34)), - BatterySignal('/AlarmFlags/TbCM', any, read_bool(base_register=1009, bit=36)), - BatterySignal('/AlarmFlags/BRNF', any, read_bool(base_register=1009, bit=37)), - BatterySignal('/AlarmFlags/HTFS', any, read_bool(base_register=1009, bit=42)), - BatterySignal('/AlarmFlags/DATA', any, read_bool(base_register=1009, bit=43)), - BatterySignal('/AlarmFlags/CELL2', any, read_bool(base_register=1009, bit=45)), - BatterySignal('/AlarmFlags/bit47AlarmDummy', any, read_bool(base_register=1009, bit=47)), - - BatterySignal('/LedStatus/Red', max, read_led_red), - BatterySignal('/LedStatus/Blue', max, read_led_blue), - BatterySignal('/LedStatus/Green', max, read_led_green), - BatterySignal('/LedStatus/Amber', max, read_led_amber), - - BatterySignal('/IoStatus/MainSwitchClosed', any, read_bool(base_register=1013, bit=0)), - BatterySignal('/IoStatus/AlarmOutActive', any, read_bool(base_register=1013, bit=1)), - BatterySignal('/IoStatus/InternalFanActive', any, read_bool(base_register=1013, bit=2)), - BatterySignal('/IoStatus/VoltMeasurementAllowed', any, read_bool(base_register=1013, bit=3)), - BatterySignal('/IoStatus/AuxRelay', any, read_bool(base_register=1013, bit=4)), - BatterySignal('/IoStatus/RemoteState', any, read_bool(base_register=1013, bit=5)), - BatterySignal('/IoStatus/HeaterOn', any, read_bool(base_register=1013, bit=6)), - BatterySignal('/IoStatus/EocReached', min, read_eoc_reached), - BatterySignal('/IoStatus/BatteryCold', any, read_battery_cold), - - # see protocol doc page 7 - BatterySignal('/Info/MaxDischargeCurrent', sum, lambda bs: bs.battery.i_max, unit='A'), - BatterySignal('/Info/MaxChargeCurrent', sum, lambda bs: bs.battery.i_max, unit='A'), - BatterySignal('/Info/MaxChargeVoltage', min, lambda bs: bs.battery.v_max, unit='V'), - BatterySignal('/Info/MinDischargeVoltage', max, lambda bs: bs.battery.v_min, unit='V'), - BatterySignal('/Info/BatteryLowVoltage' , max, lambda bs: bs.battery.v_min-2, unit='V'), - BatterySignal('/Info/NumberOfStrings', sum, lambda bs: bs.battery.n_strings), - - BatterySignal('/Info/MaxChargePower', sum, calc_max_charge_power), - BatterySignal('/Info/MaxDischargePower', sum, calc_max_discharge_power), - - BatterySignal('/FirmwareVersion', comma_separated, lambda bs: bs.battery.firmware_version), - BatterySignal('/HardwareVersion', comma_separated, lambda bs: bs.battery.hardware_version), - BatterySignal('/BmsVersion', comma_separated, lambda bs: bs.battery.bms_version) - - ] diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/signals.pyc b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl-Ivo/signals.pyc deleted file mode 100644 index 4260f83fbd285a22d81f6ceb783ca2312b2b5526..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10358 zcmd5?Yjhh&6&^``$BA3VX`H4_lQwPLw2f*vZQ7D1v1Pe2ShBlv<05FqO1oAj(e4`U z%8A>AS4xxchVp8myx(x(H|Ox5_aEQ~fB6L*9tRGGAN(QQ@6Jjddz3<)UY96#39nleyM@;yiajEMJ5!?8E4)5Y>=WK5QQRcFeo^cf-eytUEW9nExJ7sa zqBtND?oFb8fuGPJYBvjSP!tD+w^bCkiiA&+I>k$*!;o;g_+lHhDvWfKhVnA~z0JEg^1U`NrGX1C@#r7*H1H|lMY%0WEGrbIn-J>xo=pcd34uom3I*W5~ipcH*DtPFj^SEz}EI4i{YggBQFQ9_(d!Y13JlsKCJ zb^Ey_#5qastLv1AI>mW)-N83?HM^bM?QV9vxZBh0c8jyg=5-H4z0Gc~aQbjv?V$!A$%@TL}!34GtJ zL?B{v(vvO>JMGhC`Xr|xG!p4FDiMo>rJ96kC**D{!*wL=IRYA4ONg55^Z&|XHG-fy zYj*OP%zP<7p35>2Ms*AR!jn=eEy|i(Dn(GPFgrEBFm7c_$Fo*pdN$9Fl$p)vvzd8x zq3dM!_;e;)n$8#I$Mcyivos$uJvjmm*c;32S7fCKR`g4&eJHi023PXQU?bEQ+=LI& zRXSLT(qxXP9{8^B)~hRNr`!l1Tznx6d|5g5;DN`YS~_HZ4fijtM6kE?WklZ1{#lAK zJclPkr1}%v>C>MW;9vZ&5GW931^Phg@W*5mazgStax#i_hrF#55qe&vE_FAdZVe)T zB8dEtZlOPRohT_zrih-r#2&eZ-obSC#Wi$tV&Z3)T|>vCljnrEkQ5iX#Ug37NxUo& zAWlEljZ1W~nJzmqUyz$pxWqgU2C9W&5}HS~aiKBA$I8t6d{eat`~ z*U%>n^i3Li$UvXe(8C6LL_?1n=(vVX7-&XACk-^Kp;HF>l!hKN&}j{Qvw^-vLuU*$ zr=fWRg>N)xe^&FKxhwe3)0zb0A^+jvjs3?m(1Ip^-atn*^ce#^uAvJC`mBb&)j*3H z`Zfc7yM{hzpwDY)$w1$sp|*jRHMC-&j)uAhx~QR513jUk(m+pY=qUrOX{cwQzJ>+{ zx}>4+G|;++h6WmGXv094HT1NBp3%@11ARe5Uo_CO8hXw^-=(4NHqiHI=z9(HeHwb+ zKwr|(_Z#TT8hXJ%FKXx|1J&d71A?+t-X>V2C4{?{GQguJfUD}aV_amC* zj~em&F$2|ihmRYm9^IcXP(8X|F;IPH`J{pBvHvLp)%TrG3#tifW4A7YqhJs#`Mn_^v^?@^Lmp`o4(@z0?g=q(V%~c>0dVJUt#%Q1wFR>*FZr! zt|sE^+-<4-4M9n#^G%KaTTJ=3M)?j?z8h1jbCkG$j}p2(=eKpYO7(|Zm%pbZkMrTM zVpGDqXjh`3UVU-s`%nGug_n**NCkt%#n6o;T?zRIVwZpW?d8kz&$tm8B2`;lx***~ zX||O<;jPqA5_7Rxy)dhdemEhZ>p-3Zmh29dMVkDY5Nb zC(~$PonrgYxh`?Gt2Hv>7hJbe4lKknx00*Kkm}>|N+~v>0v;shu!kCv>Pz$`w!DEA5}Fl;Vk?k+-oOgh zUXp9wO%2;Xsz+M)f(k7y4At64&5a&&>_sTrY<*jU_dqdVEHX&|M_ z3A`TBKvYNQ&Ulsu@5`ic^ZH zyA>0g9)!hDc@U;1P^%%OM4J16Wv#Q=UfHc%hj1(O*!ak;qjYY zA8B~(qv=9WVWzv)2`_6f?|MsgejPRHuKW{mwtPn}{rmD|X3vCJveWqnj552pVAp+$ z!Ks>E4OLXyp-VmzC!~KNA$+3hmrKE7iylh0avw=j0FLlwn!4d2r0Y`C^LB2O{gIgX z7`PozIX5a{sW#a032#)w;B7Iw5B}H&o1P>LDz?FvL&C5aw!vhEFr>`wFvvtyw!w1K zlcRE1du(E6Zb9yDkBy%wEy%mtW4XCpPTtcVo6iu2tgVeM^BG4jwAvZrO?*oQq zZS7pq6dgDqA7~F|vNJQI61!Z8EzG?0U_9@W4bNLq(wlxZUbE{Sdzt(@`Hp&{uu3E+ z@zkq_HMHEAM4X%4bEJVbxpZVQpp`(Kx;6TXvPkEdkR$9ZJv}*D2eN@!e}~#-@~W z?U1$`kInb%ga-pfa?uKJ7(dx54=c22cW`l~Q zQkQj-Ce+JedIju+@V)f3zZj%*_L<3MejD$!oYG;p#iu|Yen&~E8znK6y*6_UtT>#@ zTVr&kG7BW?oHuZ@@wDksjgk?^KKv7sM;Q;PfCy`8oZ$lM|3Y1BjuiVTeXOUipk|zs zT(wn^CR{hGvYJ0@sj1Ds^jq`4QB5De?wbC*r76}=HSe+i&IG5|>j_U}KgB}P@>426 zhMPwV;80mVwq@)3EBp(HWe?!AkwdGwrx&6+rH=!oU3ackVOn@t z#*I<<*DZy)%$e}QjT#sCQ}TCX)cj3T%@Nqu!Zu;?ZqP$le6qu(Bwz6f1Q&OFI)Qqq z?m8Cg6pKFUG(K#27OEO9e{6rn0-JUcgmhJ%;UU%Jni}UF5OfzfA4Bs5n!{+usZqNS z6k30hcNDZqG_6vXPxm&qTOoe<3oFeNlK2ZNT;TkOK#|&+*qKzPdc(=Vj$Zm1-a5Q> zuybJ3wr-{;_fdhoFS$3d>%ag0Z(LWBlT=@t8Az^u5>exGN9Z#MuH;~1FfoE%mtUt; z0)J6fE#&5WI!k>D*@&l5a{!(<%%p`W<7s#7$X3&h(!$~y!TF7al2e^gfOpES(fb;> zMYOU+%cX^xwopG?X6xZo0LJt0A_$)kXPXm}ud?#gm#>b1&-%NlKvjdd*%P>nV@zNK`-q6O***)Q zZJc3eSrv2(VOc1L43`Wq2vw`| zc(x&1!PfR}Q;wX=vC}(lT{*Gn>ItXv-^q0vyRE(L#$km(%~8>D!YKls=tGPkk6?yp zcrbeNAi(6$W>ho1CF3Oeg;ms^VO7*MTzr@%&PS<+o@ySgJ1X`7-GEMmac4};(@p9* z`#yyFqdn{0LSNk`#N90DpLSvF3F^@nQ`Phz`<45gJOjZDwXFM@>h(pOm$|xwgPJDX zB`gu*T*>bZ%^-NX*TWB^1S|S)<`cZp@3V_;Kk-4;^{?zDSkndP{LI^9{szvmQ~?Kd znm|`v&g)I5K2;?>PpA==2`hv;VMG6LE=-qj>VPl=ctT_|o){NJkr8CB-iYF^`FoUM-#$7xdjGB{=bC@!k zPyWl{I60gg#a Callable[[BatteryStatus], bitmap] + + def get_value(status): + # type: (BatteryStatus) -> bitmap + value = status.modbus_data[register - cfg.BASE_ADDRESS] + + string1_disabled = int((value & 0b00001) != 0) + string2_disabled = int((value & 0b00010) != 0) + string3_disabled = int((value & 0b00100) != 0) + string4_disabled = int((value & 0b01000) != 0) + string5_disabled = int((value & 0b10000) != 0) + n_limb_strings = string1_disabled+string2_disabled+string3_disabled+string4_disabled+string5_disabled + if n_limb_strings>=2: + return True + else: + + return False + return get_value def append_unit(unit): # type: (unicode) -> Callable[[unicode], unicode] diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl/dbus-fzsonick-48tl.py b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl/dbus-fzsonick-48tl.py index aa61b3532..4b51fdae2 100755 --- a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl/dbus-fzsonick-48tl.py +++ b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl/dbus-fzsonick-48tl.py @@ -111,14 +111,6 @@ class S3config: ).decode() return f"AWS {s3_key}:{signature}" - @staticmethod - def _create_authorization(method, bucket, s3_path, date, s3_key, s3_secret, content_type="", md5_hash=""): - payload = f"{method}\n{md5_hash}\n{content_type}\n{date}\n/{bucket.strip('/')}/{s3_path.strip('/')}" - signature = base64.b64encode( - hmac.new(s3_secret.encode(), payload.encode(), hashlib.sha1).digest() - ).decode() - return f"AWS {s3_key}:{signature}" - def read_csv_as_string(file_path): """ Reads a CSV file from the given path and returns its content as a single string. @@ -139,21 +131,22 @@ CSV_DIR = "/data/csv_files/" # Define the path to the file containing the installation name INSTALLATION_NAME_FILE = '/data/innovenergy/openvpn/installation-name' - # trick the pycharm type-checker into thinking Callable is in scope, not used at runtime # noinspection PyUnreachableCode if False: from typing import Callable def interpret_limb_bitmap(bitmap_value): - # The bit for string 1 also monitors all 5 strings: 0000 0000 means All 5 strings activated. 0000 0001 means string 1 disabled. - string1_disabled = int((bitmap_value & 0b00001) != 0) - string2_disabled = int((bitmap_value & 0b00010) != 0) - string3_disabled = int((bitmap_value & 0b00100) != 0) - string4_disabled = int((bitmap_value & 0b01000) != 0) - string5_disabled = int((bitmap_value & 0b10000) != 0) - n_limb_strings = string1_disabled+string2_disabled+string3_disabled+string4_disabled+string5_disabled - return n_limb_strings + # The bit for string 1 also monitors all 5 strings: 0000 0000 means All 5 strings activated. 0000 0001 means string 1 disabled. + string1_disabled = int((bitmap_value & 0b00001) != 0) + string2_disabled = int((bitmap_value & 0b00010) != 0) + string3_disabled = int((bitmap_value & 0b00100) != 0) + string4_disabled = int((bitmap_value & 0b01000) != 0) + string5_disabled = int((bitmap_value & 0b10000) != 0) + + n_limb_strings = string1_disabled+string2_disabled+string3_disabled+string4_disabled+string5_disabled + + return n_limb_strings def calc_power_limit_imposed_by_voltage_limit(v, i, v_limit, r_int): # type: (float, float, float, float) -> float @@ -740,34 +733,39 @@ def update_state_from_dictionaries(current_warnings, current_alarms, node_number "Alarms": [] } - alarms_number_list = [] for node_number in node_numbers: cnt = 0 - for alarm_name, alarm_value in current_alarms.items(): - if str(node_number) in alarm_name and alarm_value: - cnt+=1 - alarms_number_list.append(cnt) + for i, alarm_value in enumerate(current_alarms.values()): + if int(list(current_alarms.keys())[i].split("/")[3]) == int(node_number): + if alarm_value: + cnt+=1 + alarms_number_list.append(cnt) + warnings_number_list = [] for node_number in node_numbers: cnt = 0 - for warning_name, warning_value in current_warnings.items(): - if str(node_number) in warning_name and warning_value: - cnt+=1 + for i, warning_value in enumerate(current_warnings.values()): + if int(list(current_warnings.keys())[i].split("/")[3]) == int(node_number): + if warning_value: + cnt+=1 warnings_number_list.append(cnt) - # Evaluate alarms if any(changed_alarms.values()): for i, changed_alarm in enumerate(changed_alarms.values()): if changed_alarm and list(current_alarms.values())[i]: - status_message["Alarms"].append(AlarmOrWarning(list(current_alarms.keys())[i],"System").to_dict()) + description = list(current_alarms.keys())[i].split("/")[-1] + device_created = "Battery node " + list(current_alarms.keys())[i].split("/")[3] + status_message["Alarms"].append(AlarmOrWarning(description, device_created).to_dict()) if any(changed_warnings.values()): for i, changed_warning in enumerate(changed_warnings.values()): if changed_warning and list(current_warnings.values())[i]: - status_message["Warnings"].append(AlarmOrWarning(list(current_warnings.keys())[i],"System").to_dict()) + description = list(current_warnings.keys())[i].split("/")[-1] + device_created = "Battery node " + list(current_warnings.keys())[i].split("/")[3] + status_message["Warnings"].append(AlarmOrWarning(description, device_created).to_dict()) if any(current_alarms.values()): status_message["Status"]=2 @@ -847,44 +845,10 @@ def read_warning_and_alarm_flags(): CsvSignal('/Battery/Devices/AlarmFlags/LMPA', c.read_bool(register=1005, bit=45)), CsvSignal('/Battery/Devices/AlarmFlags/HEBT', c.read_bool(register=1005, bit=46)), CsvSignal('/Battery/Devices/AlarmFlags/CURM', c.read_bool(register=1005, bit=48)), + CsvSignal('/Battery/Devices/AlarmFlags/NeedToReplaceBattery',c.read_limb_string(1059)), ] -import random - -'''def update_for_testing(modbus, batteries, dbus, signals, csv_signals): - global ALLOW - logging.debug('starting testing update cycle') - warning_signals, alarm_signals = read_warning_and_alarm_flags() - current_warnings = {} - current_alarms = {} - statuses = [read_battery_status(modbus, battery) for battery in batteries] - node_numbers = [battery.slave_address for battery in batteries] - if ALLOW: - any_warning_active = False - any_alarm_active = False - for i, node in enumerate(node_numbers): - for s in warning_signals: - signal_name = insert_id(s.name, i+1) - value = s.get_value(statuses[i]) - current_warnings[signal_name] = value - if ALLOW and value: - any_warning_active = True - for s in alarm_signals: - signal_name = insert_id(s.name, i+1) - value = random.choice([True, False]) - current_alarms[signal_name] = value - if ALLOW and value: - any_alarm_active = True - print(update_state_from_dictionaries(current_warnings, current_alarms)) - publish_values(dbus, signals, statuses) - create_csv_files(csv_signals, statuses, node_numbers) - logging.debug('finished update cycle\n') - return True''' - -start_time = time.time() - def update(modbus, batteries, dbus, signals, csv_signals): - global start_time # type: (Modbus, Iterable[Battery], DBus, Iterable[Signal]) -> bool """ Main update function @@ -903,21 +867,17 @@ def update(modbus, batteries, dbus, signals, csv_signals): # Iterate over each node and signal to create rows in the new format for i, node in enumerate(node_numbers): for s in warnings_signals: - signal_name = insert_id(s.name, i+1) + signal_name = insert_id(s.name, node) value = s.get_value(statuses[i]) current_warnings[signal_name] = value for s in alarm_signals: - signal_name = insert_id(s.name, i+1) + signal_name = insert_id(s.name, node) value = s.get_value(statuses[i]) current_alarms[signal_name] = value #print(update_state_from_dictionaries(current_warnings, current_alarms)) status_message, alarms_number_list, warnings_number_list = update_state_from_dictionaries(current_warnings, current_alarms, node_numbers) publish_values(dbus, signals, statuses) - elapsed_time = time.time() - start_time - if elapsed_time >= 30: - create_csv_files(csv_signals, statuses, node_numbers, alarms_number_list, warnings_number_list) - start_time = time.time() - print(f"Elapsed time: {elapsed_time:.2f} seconds") + create_csv_files(csv_signals, statuses, node_numbers, alarms_number_list, warnings_number_list) logging.debug('finished update cycle\n') return True @@ -982,7 +942,7 @@ def get_installation_name(file_path): return file.read().strip() def manage_csv_files(directory_path, max_files=20): - csv_files = [f for f in os.listdir(directory_path) if os.path.isfile(os.path.join(directory_path, f))] + csv_files = [f for f in os.listdir(directory_path)] csv_files.sort(key=lambda x: os.path.getctime(os.path.join(directory_path, x))) # Remove oldest files if exceeds maximum while len(csv_files) > max_files: diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl/ext/velib_python/__pycache__/ve_utils.cpython-38.pyc b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl/ext/velib_python/__pycache__/ve_utils.cpython-38.pyc index ed1c69aff2765db72a34ce9de95c71df97c2f21b..35ca3c1e15a2fc1084d685a13bdc04ae2dabd0a2 100644 GIT binary patch delta 20 acmeA&=`!IC<>lpK0D`bjSsS_kO9B8gb_It3 delta 20 acmeA&=`!IC<>lpK0D|kU!ZvdMmjnPcX$9;6 diff --git a/NodeRed/NodeRedFiles/dbus-fzsonick-48tl/ext/velib_python/__pycache__/vedbus.cpython-38.pyc b/NodeRed/NodeRedFiles/dbus-fzsonick-48tl/ext/velib_python/__pycache__/vedbus.cpython-38.pyc index d359ef5bfba26d9e66ad6a00bb01af2336b18362..de9dc1ba628ec0ca369990c478a77a215e058d53 100644 GIT binary patch delta 20 ZcmeCH>8s%m<>lpK0D`bjSsS^T?EpJl1xNq@ delta 20 acmeCH>8s%m<>lpK0D|kU!Zva<+W`PRP6e$1 diff --git a/NodeRed/dbus-csv-files/__pycache__/config.cpython-38.pyc b/NodeRed/dbus-csv-files/__pycache__/config.cpython-38.pyc deleted file mode 100644 index a8d562df64119ee904d3ca9fd8fc6f3b946f63ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 890 zcmY*X%T60H6rD+C@)!~l!mH4SSb{1NRH_P9Rl&(PVbpmZfCQ`l zM!W8&yKcLy+8Hx#!$_ZO^rXV$o29{rtRh@;j|4za+VDDM9wc z9DWeM6sGnRGX1JVWhs&pGtJUOV;a$!PBMaLS%&0TmgHHE7@>MPLkcWUip(IhY=)FV z<+M!ZSb}S&1yMGFfJG~1{cnPE7Hk9s`YOQI<5N4(s$eCIvzA?-jPS)R+w`@lCJC`Q9`UD&`f zT4?*888k3;fdjd5%PfT2kDxzMWGZd@uxTCeGV+@E!Rn=;Z2~Oo zu*e5C*G*UtT0C!iEo#FKw0WTp5Tw8~eTWb*xgPbJ)Q2q#i4w%;9B@F94LWx@MjQAR zKBS&$^32rdS!_Ab3oy^uL10o}Y%1JCu{E-Ya1r*}v~FR1{>na zCh+HZEjb_69=w&Bd|8{_;pOH@+zW@bZqh%Aqw4t;&%HTI*hMdVE8pPom4KX@(==5} Vi8&p*WEpLu=$Ttp)ujG^`~}~$@(2I` diff --git a/NodeRed/dbus-csv-files/__pycache__/convert.cpython-38.pyc b/NodeRed/dbus-csv-files/__pycache__/convert.cpython-38.pyc deleted file mode 100644 index da5f1680c44f5491eff1378ef3ed60314e6cc27d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3339 zcmbtW&u<$=6rPz~I~yl)le9GHPZ&}cr zo7xhhMM;lbIZ=sA{to_&xpF|gapuJLX6@Kc3mjN!=g02MoA=)Lz4zwJnVAy9^V_fQ zG=9eDcbbeo9wr~+)jyz-O!9=a_%`P>7K!+RdN1*|ee`}(Xcf1Mt%>ak{4dDjW41jh z&&!gWdd#;=a$3&d%akn36X>VqteitXBj@Ew^ksQUzJ&gSJS`W{&&ox42K}5oE6<^y zm);huUU&vQSe4u06BDU$Cy6lTmo}@y2A@T8%Y-JfGq*y6zYl2E(RD#v`VZMNc=bFc z`)r>#gyd2@4tk<1aE7;8=Y#d=X*+E>iC0(9blDwtzzx467TFor<6SQK0b7Hgq`2!l z0nbQ)qUO-EQ>{$ybaYLICbV9?(X`XIZfJQ}Oga%hcssGN zfr^^3h9QUSugh1mwz;w!*Nw{3D2-I}!4(qvW?k>T*@%-!U#Vy5Zlugo`+=QoMyBRu z%|Zq3qhVr}@10jsC~G@emMpC%Sv^ej+S1WdHHTGIPtg{2f*P{eeN|-|k-O~Vk%$>g zbJ1S8piW`-2VOjXe$XE<_KciYcjvobj1|z+oII*eqagtH#lF|@`ylw;+=pWz3@~#b z+`u*mf*1$kZb4N5hIq$;a=;eYfp?1agz>uKfIrHyjoJ5%#f))Q^;G~#YLXfX16xp8 zCzbHQG<_liZBa$KlbA!_7PCe}N5&T0Nm!4x^OK#{@M2VJgmsgt+*jl#=elzkXct~$ zRs=i{(|qrOb6+FLLi3Lh6mkeIkQ|bs&JQH!2b`s;1EVyQwup~?H0Dd{B4+>0`&aR| z%M8227ugej00J+tCohbIy`M@Ba9ydxGX`y{qk6~0yHO=)b!9+OU1_MSRRNQgsfAL) zZ~Ag+GE60wn2t(yC9K?z?qk-*zbFOe<1DRYjY@1*N|Vu2bE(qERDRO?*HCCD9*&kulVh}?2rJ@sv>>A;{{>Mfy~jiln0CN^6ld5vd&Hk|M5e#_7q5&-Ac7Jn zx9~bXHnH=Ya*s>)3+rOnPvRc&k?#c$msgh8u7BM_#wkM4R%noQ#L}|m_j6zTW~Hv z#=UEFD%r-w-YfroW>pNMpq~P4!9hNf1YU!*+`JRVB)&nXQ7o~E5_n$rRTbms2uNOV zaZlPA_?a^2DfUP_;lr5}3-o0`M^E}kiMg<;7O+zh;$t9^P%_rhURwS7fw_~6(k$WfZ50dN{HXlH^t3Ax4tl)E>7X|f2vG=mun?w@)Kq(t?;V4Z5 zeaf{1lsv2*!RRV}jLAXgcYBmSc@ zl2R@yv(coy#ndJIP!rTlp*iGvb~}m{r~Fs=Gb~dVo$4rot+4$94>)&%v93@Ni=Ax}e@h|Nm^Jj6>oa)kp)%IL6WKfIS7Rs$z4m_;9)R@M;e_R>hIKchcAl31I^Q))*N6SDW9~%sOEX;H6Ex2v> zNR;z0SD#}1oUH`8vz5;4j;X3X!KdRML?WT`U5nEi6*Yq;1Nom}3>aRbU4)iP&()K5 zs-7iDRHyo`73pFpWK@q^VPcE8LNwy0D>v4sE3r$qifXV8J_?hBF7+i!Y<`bdT4Yv1jQX zZ#KqzN+j|#K;n|$!N2G$r<}QQfv$Q*!4CV9bn9KT-Sjr^X^*>_C(GI-2npc;?-UI@J*L+GK?o6wswf*v_Ng5Hub z^w{Yw=o@kq`li!k$?vhw)-#;Ox*cw#?<=L#exWkzS#KQ59>@qV<*e#?lJ|V+^#bYl z8ZzjGve9eG5IZ()bXUoHRa&X(ZrsXsITAekckJKJPI*-A91pWfmt!?ndhl>Z_9y0g zW{$7t!$O%InO5oc(L+rpQ8o>+hzEYa>2v)r58vCE{POT2bfF8~ep!^-1wj)gbb}ZW zgCI0@laz>93(PhKTB)&Zq@%vlHs}`%0h~RRLcjcRw5lskq`CADdtFJW^vW~^#&p%{4N^FWXe9sTmh@$ zG4lWd?x5h!0tbi&ctAkVZ(te_w`Gd-SS6{HS{Y;83loxKrOgo6y}htw*|X6fnWeIs zj*gU8$w4{MrW5M-v8}#J>_cK75xYk0V`9(6m`v?}>g0JL(nsI4JrC0oM&~d~7tVPr zAV~f@o3TS&i9>jN2(TXp6+Ar*AMrmL2)x&w=FU$s_fy;!zkYTaFPs%~XQ})1(|FCnT*7aFQ!qA7Fs8V+c2q7kE)iQ(p!;(+E?0 zAoC{Ji{b6c*4ErCdZQ+0dIL{R4QxU+UJCa}WfQH{xDv)qB0Q&Jj^? zULM`mrmMhyie0~2>`bqirk>7*4YP8b4+qxI@`2sJ%Zxt-6>gW&o^>J8rKvUzW$B6xWaU9jfGJ6D;DJQ9Eu&?N Callable[[BatteryStatus], bool] - - def get_value(status): - # type: (BatteryStatus) -> bool - value = status.modbus_data[register - cfg.BASE_ADDRESS] - return value & (1 << bit) > 0 - - return get_value - - -def read_float(register, scale_factor=1.0, offset=0.0, places=2): - # type: (int, float, float) -> Callable[[BatteryStatus], float] - - def get_value(status): - # type: (BatteryStatus) -> float - value = status.modbus_data[register - cfg.BASE_ADDRESS] - - if value >= 0x8000: # convert to signed int16 - value -= 0x10000 # fiamm stores their integers signed AND with sign-offset @#%^&! - - result = (value+offset)*scale_factor - return round(result,places) - - return get_value - - -def read_hex_string(register, count): - # type: (int, int) -> Callable[[BatteryStatus], str] - """ - reads count consecutive modbus registers from start_address, - and returns a hex representation of it: - e.g. for count=4: DEAD BEEF DEAD BEEF. - """ - start = register - cfg.BASE_ADDRESS - end = start + count - - def get_value(status): - # type: (BatteryStatus) -> str - return ' '.join(['{0:0>4X}'.format(x) for x in status.modbus_data[start:end]]) - - return get_value - - -def read_led_state(register, led): - # type: (int, int) -> Callable[[BatteryStatus], int] - - read_lo = read_bool(register, led * 2) - read_hi = read_bool(register, led * 2 + 1) - - def get_value(status): - # type: (BatteryStatus) -> int - - lo = read_lo(status) - hi = read_hi(status) - - if hi: - if lo: - return LedState.blinking_fast - else: - return LedState.blinking_slow - else: - if lo: - return LedState.on - else: - return LedState.off - - return get_value - - -def read_bitmap(register): - # type: (int) -> Callable[[BatteryStatus], bitmap] - - def get_value(status): - # type: (BatteryStatus) -> bitmap - value = status.modbus_data[register - cfg.BASE_ADDRESS] - return value - - return get_value - - -def append_unit(unit): - # type: (unicode) -> Callable[[unicode], unicode] - - def get_text(v): - # type: (unicode) -> unicode - return "{0}{1}".format(str(v), unit) - - return get_text - - -def mean(numbers): - # type: (Iterable[float] | Iterable[int]) -> float - return float("{:.2f}".format(float(sum(numbers)) / len(numbers))) - -def ssum(numbers): - # type: (Iterable[float] | Iterable[int]) -> float - return float("{:.2f}".format(float(sum(numbers)))) - - -def first(ts): - return next(t for t in ts) - -def return_in_list(ts): - return ts - - diff --git a/NodeRed/dbus-csv-files/data.py b/NodeRed/dbus-csv-files/data.py deleted file mode 100644 index 6aed587d1..000000000 --- a/NodeRed/dbus-csv-files/data.py +++ /dev/null @@ -1,63 +0,0 @@ -import config as cfg -from collections import Iterable - -# trick the pycharm type-checker into thinking Callable is in scope, not used at runtime -# noinspection PyUnreachableCode -if False: - from typing import Callable - - -class LedState(object): - """ - from page 6 of the '48TLxxx ModBus Protocol doc' - """ - off = 0 - on = 1 - blinking_slow = 2 - blinking_fast = 3 - - -class LedColor(object): - green = 0 - amber = 1 - blue = 2 - red = 3 - - - -class CsvSignal(object): - def __init__(self, name, get_value, get_text = None): - self.name = name - self.get_value = get_value if callable(get_value) else lambda _: get_value - self.get_text = get_text - - if get_text is None: - self.get_text = "" - -class Battery(object): - - """ Data record to hold hardware and firmware specs of the battery """ - - def __init__(self, slave_address, hardware_version, firmware_version, bms_version, ampere_hours): - # type: (int, str, str, str, int) -> None - self.slave_address = slave_address - self.hardware_version = hardware_version - self.firmware_version = firmware_version - self.bms_version = bms_version - self.ampere_hours = ampere_hours - - - def __str__(self): - return 'slave address = {0}\nhardware version = {1}\nfirmware version = {2}\nbms version = {3}\nampere hours = {4}'.format( - self.slave_address, self.hardware_version, self.firmware_version, self.bms_version, str(self.ampere_hours)) - - -class BatteryStatus(object): - """ - record holding the current status of a battery - """ - def __init__(self, battery, modbus_data): - # type: (Battery, list[int]) -> None - - self.battery = battery - self.modbus_data = modbus_data diff --git a/NodeRed/dbus-csv-files/dbus-csv-files.py b/NodeRed/dbus-csv-files/dbus-csv-files.py deleted file mode 100755 index c1d4bd86f..000000000 --- a/NodeRed/dbus-csv-files/dbus-csv-files.py +++ /dev/null @@ -1,731 +0,0 @@ -#! /usr/bin/python3 -u -import re -import sys -import logging -from gi.repository import GLib - -import config as cfg -import convert as c - -from pymodbus.register_read_message import ReadInputRegistersResponse -from pymodbus.client.sync import ModbusSerialClient as Modbus -from pymodbus.other_message import ReportSlaveIdRequest -from pymodbus.exceptions import ModbusException -from pymodbus.pdu import ExceptionResponse - -from dbus.mainloop.glib import DBusGMainLoop -from data import BatteryStatus, Battery, LedColor, CsvSignal, LedState - -from collections import Iterable -from os import path - -app_dir = path.dirname(path.realpath(__file__)) -sys.path.insert(1, path.join(app_dir, 'ext', 'velib_python')) - -#from vedbus import VeDbusService as DBus - -import time -import os -import csv - - -import requests -import hmac -import hashlib -import base64 -from datetime import datetime -import io - -class S3config: - def __init__(self): - self.bucket = "1-c0436b6a-d276-4cd8-9c44-1eae86cf5d0e" - self.region = "sos-ch-dk-2" - self.provider = "exo.io" - self.key = "EXOcc0e47a4c4d492888ff5a7f2" - self.secret = "79QG4unMh7MeVacMnXr5xGxEyAlWZDIdM-dg_nXFFr4" - self.content_type = "text/plain; charset=utf-8" - - @property - def host(self): - return f"{self.bucket}.{self.region}.{self.provider}" - - @property - def url(self): - return f"https://{self.host}" - - def create_put_request(self, s3_path, data): - headers = self._create_request("PUT", s3_path) - url = f"{self.url}/{s3_path}" - response = requests.put(url, headers=headers, data=data) - return response - - def _create_request(self, method, s3_path): - date = datetime.utcnow().strftime('%a, %d %b %Y %H:%M:%S GMT') - auth = self._create_authorization(method, self.bucket, s3_path, date, self.key, self.secret, self.content_type) - headers = { - "Host": self.host, - "Date": date, - "Authorization": auth, - "Content-Type": self.content_type - } - return headers - - @staticmethod - def _create_authorization(method, bucket, s3_path, date, s3_key, s3_secret, content_type="", md5_hash=""): - payload = f"{method}\n{md5_hash}\n{content_type}\n{date}\n/{bucket.strip('/')}/{s3_path.strip('/')}" - signature = base64.b64encode( - hmac.new(s3_secret.encode(), payload.encode(), hashlib.sha1).digest() - ).decode() - return f"AWS {s3_key}:{signature}" - -def read_csv_as_string(file_path): - """ - Reads a CSV file from the given path and returns its content as a single string. - """ - try: - with open(file_path, 'r', encoding='utf-8') as file: - return file.read() - except FileNotFoundError: - print(f"Error: The file {file_path} does not exist.") - return None - except IOError as e: - print(f"IO error occurred: {str(e)}") - return None - -CSV_DIR = "/data/csv_files_service/" -#CSV_DIR = "csv_files/" - -# Define the path to the file containing the installation name -INSTALLATION_NAME_FILE = '/data/innovenergy/openvpn/installation-name' - -# trick the pycharm type-checker into thinking Callable is in scope, not used at runtime -# noinspection PyUnreachableCode -if False: - from typing import Callable - -def interpret_limb_bitmap(bitmap_value): - # The bit for string 1 also monitors all 5 strings: 0000 0000 means All 5 strings activated. 0000 0001 means string 1 disabled. - string1_disabled = int((bitmap_value & 0b00001) != 0) - string2_disabled = int((bitmap_value & 0b00010) != 0) - string3_disabled = int((bitmap_value & 0b00100) != 0) - string4_disabled = int((bitmap_value & 0b01000) != 0) - string5_disabled = int((bitmap_value & 0b10000) != 0) - n_limb_strings = string1_disabled+string2_disabled+string3_disabled+string4_disabled+string5_disabled - return n_limb_strings - -def create_csv_signals(firmware_version): - def read_power(status): - return int(read_current(status) * read_voltage(status)) - - read_voltage = c.read_float(register=999, scale_factor=0.01, offset=0, places=2) - read_current = c.read_float(register=1000, scale_factor=0.01, offset=-10000, places=2) - - read_limb_bitmap = c.read_bitmap(1059) - - def string1_disabled(status): - bitmap_value = read_limb_bitmap(status) - return int((bitmap_value & 0b00001) != 0) - - def string2_disabled(status): - bitmap_value = read_limb_bitmap(status) - return int((bitmap_value & 0b00010) != 0) - - def string3_disabled(status): - bitmap_value = read_limb_bitmap(status) - return int((bitmap_value & 0b00100) != 0) - - def string4_disabled(status): - bitmap_value = read_limb_bitmap(status) - return int((bitmap_value & 0b01000) != 0) - - def string5_disabled(status): - bitmap_value = read_limb_bitmap(status) - return int((bitmap_value & 0b10000) != 0) - - - def limp_strings_value(status): - return interpret_limb_bitmap(read_limb_bitmap(status)) - - def calc_power_limit_imposed_by_voltage_limit(v, i, v_limit, r_int): - # type: (float, float, float, float) -> float - - dv = v_limit - v - di = dv / r_int - p_limit = v_limit * (i + di) - - return p_limit - - def calc_power_limit_imposed_by_current_limit(v, i, i_limit, r_int): - # type: (float, float, float, float) -> float - - di = i_limit - i - dv = di * r_int - p_limit = i_limit * (v + dv) - - return p_limit - - def calc_max_charge_power(status): - # type: (BatteryStatus) -> int - n_strings = cfg.NUM_OF_STRING_PER_BATTERY-limp_strings_value(status) - i_max = n_strings * cfg.I_MAX_PER_STRING - v_max = cfg.V_MAX - r_int_min = cfg.R_STRING_MIN / n_strings - r_int_max = cfg.R_STRING_MAX / n_strings - - v = read_voltage(status) - i = read_current(status) - - p_limits = [ - calc_power_limit_imposed_by_voltage_limit(v, i, v_max,r_int_min), - calc_power_limit_imposed_by_voltage_limit(v, i, v_max, r_int_max), - calc_power_limit_imposed_by_current_limit(v, i, i_max, r_int_min), - calc_power_limit_imposed_by_current_limit(v, i, i_max, r_int_max), - ] - - p_limit = min(p_limits) # p_limit is normally positive here (signed) - p_limit = max(p_limit, 0) # charge power must not become negative - - return int(p_limit) - - def calc_max_discharge_power(status): - n_strings = cfg.NUM_OF_STRING_PER_BATTERY-limp_strings_value(status) - max_discharge_current = n_strings*cfg.I_MAX_PER_STRING - return int(max_discharge_current*read_voltage(status)) - - def return_led_state_blue(status): - led_state = c.read_led_state(register=1004, led=LedColor.blue)(status) - if led_state == LedState.blinking_fast or led_state == LedState.blinking_slow: - return "Blinking" - elif led_state == LedState.on: - return "On" - elif led_state == LedState.off: - return "Off" - - return "Unknown" - - def return_led_state_red(status): - led_state = c.read_led_state(register=1004, led=LedColor.red)(status) - if led_state == LedState.blinking_fast or led_state == LedState.blinking_slow: - return "Blinking" - elif led_state == LedState.on: - return "On" - elif led_state == LedState.off: - return "Off" - - return "Unknown" - - def return_led_state_green(status): - led_state = c.read_led_state(register=1004, led=LedColor.green)(status) - if led_state == LedState.blinking_fast or led_state == LedState.blinking_slow: - return "Blinking" - elif led_state == LedState.on: - return "On" - elif led_state == LedState.off: - return "Off" - - return "Unknown" - - def return_led_state_amber(status): - led_state = c.read_led_state(register=1004, led=LedColor.amber)(status) - if led_state == LedState.blinking_fast or led_state == LedState.blinking_slow: - return "Blinking" - elif led_state == LedState.on: - return "On" - elif led_state == LedState.off: - return "Off" - - return "Unknown" - - total_current = c.read_float(register=1062, scale_factor=0.01, offset=-10000, places=1) - - def read_total_current(status): - return total_current(status) - - def read_heating_current(status): - return total_current(status) - read_current(status) - - def read_heating_power(status): - return read_voltage(status) * read_heating_current(status) - - soc_ah = c.read_float(register=1002, scale_factor=0.1, offset=-10000, places=1) - - def read_soc_ah(status): - return soc_ah(status) - - def hex_string_to_ascii(hex_string): - # Ensure the hex_string is correctly formatted without spaces - hex_string = hex_string.replace(" ", "") - # Convert every two characters (a byte) in the hex string to ASCII - ascii_string = ''.join([chr(int(hex_string[i:i+2], 16)) for i in range(0, len(hex_string), 2)]) - return ascii_string - - battery_status_reader = c.read_hex_string(1060,2) - - def read_eoc_reached(status): - battery_status_string = battery_status_reader(status) - #if hex_string_to_ascii(battery_status_string) == "EOC_": - #return True - #return False - return hex_string_to_ascii(battery_status_string) == "EOC_" - - def read_serial_number(status): - - serial_regs = [1055, 1056, 1057, 1058] - serial_parts = [] - - for reg in serial_regs: - # reading each register as a single hex value - hex_value_fun = c.read_hex_string(reg, 1) - hex_value = hex_value_fun(status) - - # append without spaces and leading zeros stripped if any - serial_parts.append(hex_value.replace(' ', '')) - - # concatenate all parts to form the full serial number - serial_number = ''.join(serial_parts).rstrip('0') - - return serial_number - - return [ - - CsvSignal('/Battery/Devices/FwVersion', firmware_version), - CsvSignal('/Battery/Devices/Dc/Power', read_power, 'W'), - CsvSignal('/Battery/Devices/Dc/Voltage', read_voltage, 'V'), - CsvSignal('/Battery/Devices/Soc', c.read_float(register=1053, scale_factor=0.1, offset=0, places=1), '%'), - CsvSignal('/Battery/Devices/Temperatures/Cells/Average', c.read_float(register=1003, scale_factor=0.1, offset=-400, places=1), 'C'), - - CsvSignal('/Battery/Devices/Dc/Current', read_current, 'A'), - CsvSignal('/Battery/Devices/BusCurrent', read_total_current, 'A'), - CsvSignal('/Battery/Devices/CellsCurrent', read_current, 'A'), - CsvSignal('/Battery/Devices/HeatingCurrent', read_heating_current, 'A'), - CsvSignal('/Battery/Devices/HeatingPower', read_heating_power, 'W'), - CsvSignal('/Battery/Devices/SOCAh', read_soc_ah), - - CsvSignal('/Battery/Devices/Leds/Blue', return_led_state_blue), - CsvSignal('/Battery/Devices/Leds/Red', return_led_state_red), - CsvSignal('/Battery/Devices/Leds/Green', return_led_state_green), - CsvSignal('/Battery/Devices/Leds/Amber', return_led_state_amber), - - CsvSignal('/Battery/Devices/BatteryStrings/String1Active', string1_disabled), - CsvSignal('/Battery/Devices/BatteryStrings/String2Active', string2_disabled), - CsvSignal('/Battery/Devices/BatteryStrings/String3Active', string3_disabled), - CsvSignal('/Battery/Devices/BatteryStrings/String4Active', string4_disabled), - CsvSignal('/Battery/Devices/BatteryStrings/String5Active', string5_disabled), - - CsvSignal('/Battery/Devices/IoStatus/ConnectedToDcBus', c.read_bool(register=1013, bit=0)), - CsvSignal('/Battery/Devices/IoStatus/AlarmOutActive', c.read_bool(register=1013, bit=1)), - CsvSignal('/Battery/Devices/IoStatus/InternalFanActive', c.read_bool(register=1013, bit=2)), - CsvSignal('/Battery/Devices/IoStatus/VoltMeasurementAllowed', c.read_bool(register=1013, bit=3)), - CsvSignal('/Battery/Devices/IoStatus/AuxRelayBus', c.read_bool(register=1013, bit=4)), - CsvSignal('/Battery/Devices/IoStatus/RemoteStateActive', c.read_bool(register=1013, bit=5)), - CsvSignal('/Battery/Devices/IoStatus/RiscActive', c.read_bool(register=1013, bit=6)), - - - CsvSignal('/Battery/Devices/Eoc', read_eoc_reached), - CsvSignal('/Battery/Devices/SerialNumber', read_serial_number), - CsvSignal('/Battery/Devices/TimeSinceTOC', c.read_float(register=1052)), - CsvSignal('/Battery/Devices/MaxChargePower', calc_max_charge_power), - CsvSignal('/Battery/Devices/MaxDischargePower', calc_max_discharge_power), - - # Warnings - CsvSignal('/Battery/Devices/WarningFlags/TaM1', c.read_bool(register=1005, bit=1)), - CsvSignal('/Battery/Devices/WarningFlags/TbM1', c.read_bool(register=1005, bit=4)), - CsvSignal('/Battery/Devices/WarningFlags/VBm1', c.read_bool(register=1005, bit=6)), - CsvSignal('/Battery/Devices/WarningFlags/VBM1', c.read_bool(register=1005, bit=8)), - CsvSignal('/Battery/Devices/WarningFlags/IDM1', c.read_bool(register=1005, bit=10)), - CsvSignal('/Battery/Devices/WarningFlags/vsm1', c.read_bool(register=1005, bit=22)), - CsvSignal('/Battery/Devices/WarningFlags/vsM1', c.read_bool(register=1005, bit=24)), - CsvSignal('/Battery/Devices/WarningFlags/iCM1', c.read_bool(register=1005, bit=26)), - CsvSignal('/Battery/Devices/WarningFlags/iDM1', c.read_bool(register=1005, bit=28)), - CsvSignal('/Battery/Devices/WarningFlags/MID1', c.read_bool(register=1005, bit=30)), - CsvSignal('/Battery/Devices/WarningFlags/BLPW', c.read_bool(register=1005, bit=32)), - CsvSignal('/Battery/Devices/WarningFlags/CCBF', c.read_bool(register=1005, bit=33)), - CsvSignal('/Battery/Devices/WarningFlags/Ah_W', c.read_bool(register=1005, bit=35)), - CsvSignal('/Battery/Devices/WarningFlags/MPMM', c.read_bool(register=1005, bit=38)), - CsvSignal('/Battery/Devices/WarningFlags/TCdi', c.read_bool(register=1005, bit=40)), - CsvSignal('/Battery/Devices/WarningFlags/LMPW', c.read_bool(register=1005, bit=44)), - CsvSignal('/Battery/Devices/WarningFlags/TOCW', c.read_bool(register=1005, bit=47)), - CsvSignal('/Battery/Devices/WarningFlags/BUSL', c.read_bool(register=1005, bit=49)), - - # Alarms - CsvSignal('/Battery/Devices/AlarmFlags/Tam', c.read_bool(register=1005, bit=0)), - CsvSignal('/Battery/Devices/AlarmFlags/TaM2', c.read_bool(register=1005, bit=2)), - CsvSignal('/Battery/Devices/AlarmFlags/Tbm', c.read_bool(register=1005, bit=3)), - CsvSignal('/Battery/Devices/AlarmFlags/TbM2', c.read_bool(register=1005, bit=5)), - CsvSignal('/Battery/Devices/AlarmFlags/VBm2', c.read_bool(register=1005, bit=7)), - CsvSignal('/Battery/Devices/AlarmFlags/VBM2', c.read_bool(register=1005, bit=9)), - CsvSignal('/Battery/Devices/AlarmFlags/IDM2', c.read_bool(register=1005, bit=11)), - CsvSignal('/Battery/Devices/AlarmFlags/ISOB', c.read_bool(register=1005, bit=12)), - CsvSignal('/Battery/Devices/AlarmFlags/MSWE', c.read_bool(register=1005, bit=13)), - CsvSignal('/Battery/Devices/AlarmFlags/FUSE', c.read_bool(register=1005, bit=14)), - CsvSignal('/Battery/Devices/AlarmFlags/HTRE', c.read_bool(register=1005, bit=15)), - CsvSignal('/Battery/Devices/AlarmFlags/TCPE', c.read_bool(register=1005, bit=16)), - CsvSignal('/Battery/Devices/AlarmFlags/STRE', c.read_bool(register=1005, bit=17)), - CsvSignal('/Battery/Devices/AlarmFlags/CME', c.read_bool(register=1005, bit=18)), - CsvSignal('/Battery/Devices/AlarmFlags/HWFL', c.read_bool(register=1005, bit=19)), - CsvSignal('/Battery/Devices/AlarmFlags/HWEM', c.read_bool(register=1005, bit=20)), - CsvSignal('/Battery/Devices/AlarmFlags/ThM', c.read_bool(register=1005, bit=21)), - CsvSignal('/Battery/Devices/AlarmFlags/vsm2', c.read_bool(register=1005, bit=23)), - CsvSignal('/Battery/Devices/AlarmFlags/vsM2', c.read_bool(register=1005, bit=25)), - CsvSignal('/Battery/Devices/AlarmFlags/iCM2', c.read_bool(register=1005, bit=27)), - CsvSignal('/Battery/Devices/AlarmFlags/iDM2', c.read_bool(register=1005, bit=29)), - CsvSignal('/Battery/Devices/AlarmFlags/MID2', c.read_bool(register=1005, bit=31)), - CsvSignal('/Battery/Devices/AlarmFlags/HTFS', c.read_bool(register=1005, bit=42)), - CsvSignal('/Battery/Devices/AlarmFlags/DATA', c.read_bool(register=1005, bit=43)), - CsvSignal('/Battery/Devices/AlarmFlags/LMPA', c.read_bool(register=1005, bit=45)), - CsvSignal('/Battery/Devices/AlarmFlags/HEBT', c.read_bool(register=1005, bit=46)), - CsvSignal('/Battery/Devices/AlarmFlags/CURM', c.read_bool(register=1005, bit=48)), - - ] - -def init_modbus(tty): - # type: (str) -> Modbus - - logging.debug('initializing Modbus') - - return Modbus( - port='/dev/' + tty, - method=cfg.MODE, - baudrate=cfg.BAUD_RATE, - stopbits=cfg.STOP_BITS, - bytesize=cfg.BYTE_SIZE, - timeout=cfg.TIMEOUT, - parity=cfg.PARITY) - -def read_modbus_registers(modbus, slave_address, base_address=cfg.BASE_ADDRESS, count=cfg.NO_OF_REGISTERS): - # type: (Modbus, int) -> ReadInputRegistersResponse - - logging.debug('requesting modbus registers {0}-{1}'.format(base_address, base_address + count)) - - return modbus.read_input_registers( - address=base_address, - count=count, - unit=slave_address) - -def read_firmware_version(modbus, slave_address): - # type: (Modbus, int) -> str - - logging.debug('reading firmware version') - - try: - modbus.connect() - - response = read_modbus_registers(modbus, slave_address, base_address=1054, count=1) - register = response.registers[0] - - return '{0:0>4X}'.format(register) - - finally: - modbus.close() # close in any case - -def init_main_loop(): - # type: () -> DBusGMainLoop - logging.debug('initializing DBusGMainLoop Loop') - DBusGMainLoop(set_as_default=True) - return GLib.MainLoop() - -def report_slave_id(modbus, slave_address): - # type: (Modbus, int) -> str - - slave = str(slave_address) - - logging.debug('requesting slave id from node ' + slave) - - try: - - modbus.connect() - - request = ReportSlaveIdRequest(unit=slave_address) - response = modbus.execute(request) - - if response is ExceptionResponse or issubclass(type(response), ModbusException): - raise Exception('failed to get slave id from ' + slave + ' : ' + str(response)) - - return response.identifier - - finally: - modbus.close() - -def parse_slave_id(modbus, slave_address): - # type: (Modbus, int) -> (str, str, int) - - slave_id = report_slave_id(modbus, slave_address) - - sid = re.sub(b'[^\x20-\x7E]', b'', slave_id) # remove weird special chars - - match = re.match('(?P48TL(?P\d+)) *(?P.*)', sid.decode('ascii')) - - if match is None: - raise Exception('no known battery found') - - return match.group('hw'), match.group('bms'), int(match.group('ah')) - - -def identify_battery(modbus, slave_address): - # type: (Modbus, int) -> Battery - - logging.info('identifying battery...') - - hardware_version, bms_version, ampere_hours = parse_slave_id(modbus, slave_address) - firmware_version = read_firmware_version(modbus, slave_address) - - specs = Battery( - slave_address=slave_address, - hardware_version=hardware_version, - firmware_version=firmware_version, - bms_version=bms_version, - ampere_hours=ampere_hours) - - logging.info('battery identified:\n{0}'.format(str(specs))) - - return specs - -def identify_batteries(modbus): - # type: (Modbus) -> list[Battery] - - def _identify_batteries(): - address_range = range(1, cfg.MAX_SLAVE_ADDRESS + 1) - - for slave_address in address_range: - try: - yield identify_battery(modbus, slave_address) - except Exception as e: - logging.info('failed to identify battery at {0} : {1}'.format(str(slave_address), str(e))) - - return list(_identify_batteries()) # force that lazy iterable! - -def read_modbus_registers(modbus, slave_address, base_address=cfg.BASE_ADDRESS, count=cfg.NO_OF_REGISTERS): - # type: (Modbus, int) -> ReadInputRegistersResponse - - logging.debug('requesting modbus registers {0}-{1}'.format(base_address, base_address + count)) - - return modbus.read_input_registers( - address=base_address, - count=count, - unit=slave_address) - -def read_battery_status(modbus, battery): - # type: (Modbus, Battery) -> BatteryStatus - """ - Read the modbus registers containing the battery's status info. - """ - - logging.debug('reading battery status') - - try: - modbus.connect() - data = read_modbus_registers(modbus, battery.slave_address) - return BatteryStatus(battery, data.registers) - - finally: - modbus.close() # close in any case - -def get_installation_name(file_path): - with open(file_path, 'r') as file: - return file.read().strip() - -def manage_csv_files(directory_path, max_files=20): - csv_files = [f for f in os.listdir(directory_path)] - csv_files.sort(key=lambda x: os.path.getctime(os.path.join(directory_path, x))) - - # Remove oldest files if exceeds maximum - while len(csv_files) > max_files: - file_to_delete = os.path.join(directory_path, csv_files.pop(0)) - os.remove(file_to_delete) - -def serialize_for_csv(value): - if isinstance(value, (dict, list, tuple)): - return json.dumps(value, ensure_ascii=False) - return str(value) - -def insert_id(path, id_number): - parts = path.split("/") - - insert_position = parts.index("Devices") + 1 - - parts.insert(insert_position, str(id_number)) - - return "/".join(parts) - -def create_csv_files(signals, statuses, node_numbers): - timestamp = int(time.time()) - if timestamp % 2 != 0: - timestamp -= 1 - # Create CSV directory if it doesn't exist - if not os.path.exists(CSV_DIR): - os.makedirs(CSV_DIR) - - #installation_name = get_installation_name(INSTALLATION_NAME_FILE) - csv_filename = f"{timestamp}.csv" - csv_path = os.path.join(CSV_DIR, csv_filename) - - # Append values to the CSV file - with open(csv_path, 'a', newline='') as csvfile: - csv_writer = csv.writer(csvfile, delimiter=';') - - # Add a special row for the nodes configuration - nodes_config_path = "/Config/Devices/BatteryNodes" - nodes_list = ",".join(str(node) for node in node_numbers) - config_row = [nodes_config_path, nodes_list, ""] - csv_writer.writerow(config_row) - - # Iterate over each node and signal to create rows in the new format - for i, node in enumerate(node_numbers): - for s in signals: - signal_name = insert_id(s.name, i+1) - #value = serialize_for_csv(s.get_value(statuses[i])) - value = s.get_value(statuses[i]) - row_values = [signal_name, value, s.get_text] - csv_writer.writerow(row_values) - - # Manage CSV files, keep a limited number of files - - # Create the CSV as a string - csv_data = read_csv_as_string(csv_path) - - - # Create an S3config instance - s3_config = S3config() - response = s3_config.create_put_request(csv_filename, csv_data) - - if response.status_code == 200: - os.remove(csv_path) - print("Success") - else: - failed_dir = os.path.join(CSV_DIR, "failed") - if not os.path.exists(failed_dir): - os.makedirs(failed_dir) - failed_path = os.path.join(failed_dir, csv_filename) - os.rename(csv_path, failed_path) - print("Uploading failed") - manage_csv_files(failed_dir, 10) - - - manage_csv_files(CSV_DIR) - -def update(modbus, batteries, csv_signals): - # type: (Modbus, Iterable[Battery], DBus, Iterable[Signal]) -> bool - - """ - Main update function - - 1. requests status record each battery via modbus, - 2. parses the data using Signal.get_value - 3. aggregates the data from all batteries into one datum using Signal.aggregate - 4. publishes the data on the dbus - """ - - logging.debug('starting update cycle') - - statuses = [read_battery_status(modbus, battery) for battery in batteries] - node_numbers = [battery.slave_address for battery in batteries] - - create_csv_files(csv_signals, statuses, node_numbers) - - logging.debug('finished update cycle\n') - return True - -def print_usage(): - print ('Usage: ' + __file__ + ' ') - print ('Example: ' + __file__ + ' ttyUSB0') - - -def parse_cmdline_args(argv): - # type: (list[str]) -> str - - if len(argv) == 0: - logging.info('missing command line argument for tty device') - print_usage() - sys.exit(1) - - return argv[0] - - -alive = True # global alive flag, watchdog_task clears it, update_task sets it - -def create_update_task(modbus, batteries, csv_signals, main_loop): - # type: (Modbus, DBus, Iterable[Battery], Iterable[Signal], DBusGMainLoop) -> Callable[[],bool] - """ - Creates an update task which runs the main update function - and resets the alive flag - """ - - def update_task(): - # type: () -> bool - - global alive - - alive = update(modbus, batteries, csv_signals) - - if not alive: - logging.info('update_task: quitting main loop because of error') - main_loop.quit() - - return alive - - return update_task - -def create_watchdog_task(main_loop): - # type: (DBusGMainLoop) -> Callable[[],bool] - """ - Creates a Watchdog task that monitors the alive flag. - The watchdog kills the main loop if the alive flag is not periodically reset by the update task. - Who watches the watchdog? - """ - def watchdog_task(): - # type: () -> bool - - global alive - - if alive: - logging.debug('watchdog_task: update_task is alive') - alive = False - return True - else: - logging.info('watchdog_task: killing main loop because update_task is no longer alive') - main_loop.quit() - return False - - return watchdog_task - - -def main(argv): - # type: (list[str]) -> () - print("PAME") - logging.basicConfig(level=cfg.LOG_LEVEL) - logging.info('starting ' + __file__) - - tty = parse_cmdline_args(argv) - modbus = init_modbus(tty) - - batteries = identify_batteries(modbus) - - n = len(batteries) - - logging.info('found ' + str(n) + (' battery' if n == 1 else ' batteries')) - - if n <= 0: - sys.exit(2) - - bat = c.first(batteries) # report hw and fw version of first battery found - - csv_signals = create_csv_signals(bat.firmware_version) - - main_loop = init_main_loop() # must run before init_dbus because gobject does some global magic - - # we do not use dbus this time. we only want modbus - update_task = create_update_task(modbus, batteries, csv_signals, main_loop) - watchdog_task = create_watchdog_task(main_loop) - - GLib.timeout_add(cfg.UPDATE_INTERVAL * 2, watchdog_task) # add watchdog first - GLib.timeout_add(cfg.UPDATE_INTERVAL, update_task) # call update once every update_interval - - logging.info('starting GLib.MainLoop') - main_loop.run() - logging.info('GLib.MainLoop was shut down') - - sys.exit(0xFF) # reaches this only on error - - -if __name__ == "__main__": - main(sys.argv[1:]) diff --git a/NodeRed/dbus-csv-files/start.sh b/NodeRed/dbus-csv-files/start.sh deleted file mode 100755 index 14a3b0390..000000000 --- a/NodeRed/dbus-csv-files/start.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -. /opt/victronenergy/serial-starter/run-service.sh - -app=/opt/victronenergy/dbus-csv-files/dbus-csv-files.py -args="$tty" -start $args diff --git a/NodeRed/dbus-fzsonick-48tl/__pycache__/config.cpython-38.pyc b/NodeRed/dbus-fzsonick-48tl/__pycache__/config.cpython-38.pyc deleted file mode 100644 index fbfefacfa1b8f8583f75de58d056fe96f9bc43c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 894 zcmY*X%Tn7g6txpO50j7(UWGn}Wm%9gh3U{vr$mXB;Aw1UEI9>jG!Pk&X^5F5bcU?@ z8|@!-*KK#5{y;26qJT(jk(Q%KbdvO>>{g4+MmS?{O9;6-UAqhrUPNvK-&?)lw@rX$ z9TxeZ#dQONcoex@0MBs_3a3Rn?^afBXgU`tzs& diff --git a/NodeRed/dbus-fzsonick-48tl/__pycache__/convert.cpython-38.pyc b/NodeRed/dbus-fzsonick-48tl/__pycache__/convert.cpython-38.pyc deleted file mode 100644 index 20d66bcb8d1ba60732a3c871574510cf60d83fa8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3343 zcmbtW&2Jk;6rY)0I~yl)lk_9$r(6UGS2RtlQc4KvSAtYg;G3M&SVZC*>Yd2hbkVy}u94r&H^w%{@INQ>&)DX; zJS7Wq;u+s8$VoYcFB7sT522rw({cv=l$@1^(HG?rc@+I2c}&ispO*9TIQkiRLY_oF zE1eBiKK%-MurfE^Z5=3oD+(~?=hn-@cy|K1p?w{gshhsW-^Vm-rBy*&dJoytf74k^ zcGwQD3CX2+=5<9!;0$NI%KPil({|c&7;joa(_#17F4z3Nm}kdXmv^}2yKDu1lH!4D z1-v2wikdygOf(X?)k-VU*S>M8wYr(Sd1GU(a$|M%>$Q!IJz?^x)zsv+{iqe-gR>QC z*JBqfbL)4Jf_Nyw=h+JmI z_eD%$nu&IbIdufHzwqMu`&w_n*eh~i)t+yEF_uG5bMk6>3=M&>BX*pc+XKSwWPTh0 zqK}&e;tIA|AjBvT4|1vmK*UuG%r2W_yUr2T724^DUH&w~H)KCC7Ba?J*;O7Ssc~v3 z6iiMftysbblk|xUG_DZCg|YJOEGD)SY&$-3?& z2B{4(F)cjqiAml*ZQWOk5?{X)f?Ni{X_7-S)TzG2?0^$AwO|wm(&q88hsJC{ox$wg z+xFnoeB^EK$>P%D%H{96$U1o_+VC|pk62hV{80uB z1yB!|pGP)nU$Kb64V6@@Fs{Fa1cOflAvnmrpM!)(2e@~MP9@uzXutR0XO_hv3VJEPI`vygP4z85KrUFBF3mKXaTYW3-wuU zjYwkSASLv&g%MF=#Jv!xjAh;ldxI!BfXy`sxAliPloed=^1PrvFWP7A-YAgZ2g=!i z3;Ssr=u@ukqvT-i5JngAE5oQbD(N#i)I#JG`K&0;s88@^#Eay?ex6OK3hb~N0J7B) zIpRO6BPnH*G8<0H8%&+U4>d;31e!gbWw-rUvC7}YpFx>AV^v2PZ1~N$c)+?7jJ1V| zAkX|uRUtEdVrajOYl4$GlR5P%`u}G$WgHS`sYV)5#?h8;yX+-sRTk^*{FBA*lZ##G zSi%b9AlB)svc1QR+loUyAcXMCcGLm1vTy(A*rArGvCbsk z_v|0q{sW2a+3%_^FdMPIpFnTXGD@JD3_>_+L6P&6qjsV{$zEcN=&;5uEnKQ~%dW}U zI@Y(b)i5Aq3>(MdR%0trX{Ogc(#CBBeteHk$}*E${a1D9c5qOgObxYyUx)yTBzwHN zPNSRD*yD!IOw(2)!jJx$YZ$-b0;0Wj0hLuc6Ql>5scw+jZ@U(f2`Rm_1tp_Em%+QZ zRy-7xM>5)z9$>*)bcXj}ALur|T*r0pQB$ob5=1DuR3zqWp-P8<-(Ln2x!9oLW1-)0 zZ_aLeNTRHNx%vv@H*6)yt*vxkXGB$X8=nq(5Q&7!cO{G~RMa$<^yS~d7%&{AU4)iR z&*j5rqMAfeP^J2wD$>P_$)FlG{K({Sg{XyfTW*X?*J7J&71dzl-SVS|F7`IX*;|aQ zBsN#s;I$04yio+CwNQ~7Ls}0U>@DMx(u#r=vN@%D(gCw{QcuK_;IzQ%g=9p>T!NQR4tckc0^0^iT%IVz@K>ke9pc z%utqC2`FF#)t}KE{nzBammGS^xwl@D-(kN-gyOu}C1d-pvNis-2)B3XM9_Uhnkq7J@p`3Crg zh{4B}kHI%Z3w+D+P4F9H6a1#-Tj00ECGeLlzajhwUgz?UxZUe^{4)N`NX7e^OlfAl z`C#_ZH3N}W%3dJ+UMPZIB*I=zM7_GG^%|m%6B}jxg%l4AH*&t)Y7SH}VN*Vo>`$y1 zFf)?u`tF@?zBoEMVqX^GlbL2;slpU#kug!E*IP|R_x)%|K%)?(+lk9KNpe1sNm90w zWKxJ(M&r#S`NxcBi&EbZurjhSdm!dVNE3VqcHO6&(6Qt zgnz*17n=~~t6THkE3!gaLnw+9RU=Xd>2?~bK}<}f2~yUEO3J*f@kw8*GU{hDS%ylA zm1=I(rY~Lr`7OGp?;*95nP#7pnH1bd*H=L*nIjR1@F_W;!lza?@9Dz_<6+LTZc3sq z8;$7%>iQ1IiGSiHp7GDTC%(FJ=H;z_djntiB6u2OB{&H|!;?^Wk7BheEGInN5p`1v zhGnBM_1~aty5$U;p7~v?h z=VOy3J0E35$}@cz1Gl||3}r+SR>oM#C`r`s@p&23HAWs8+Ms1NP;|6iQ*Y47M%OhO zk@YEr-6gMqvw`FJb^n@Q4`P3Q<#|~;e)m~)!Qbkw>fkDN?dgjAMDe95ZDQZ@DTe17 z`C}jbG{^HVX62qJJP$W9JxT_>{ow@klCZk8l^|QbJr)u)bW~vUVyTB3*|7$33c2Q!*`-xJhF1493pk$wQeP?=cSba&35SE(k%X1sR-C?Bz26aUmr87Fdlq;Mv3T zwkmK+^(ZVdH;m0&ji9UbB zh4M=v=D7H9Mu)$bOETg9~wP{6ByFdh%QrTTL8j~pZ&^4KB9Rh6y3r-?i#~h@gG&!f$ z$}OGoLz!?P6p*WIFGWZWrP2uHvb~g}n%U@2bj57)$rMnNjEb4kow{?@dk{hWk;qLV z+eCJVT(B{@>T`5ga{_V|{mt78GgYDaTp&{XS#22x!vBwV;vJxp9{}_ZP@@kb0`G(R z6aTv!3?Fpo1FI)n=*j-V{`vlCYpE<-C`;2HoVJ!4uTS4TZ9(nznGa7}PIveYy3@D2 zr|@yzl>_xlMxcncmOzS-pDq}r#6uBDlqBC^O=q2R2zxb#5<&|OVKBUscI!y0A zSB&4M(aPd>WHY3Lh5P85;wBEFAZ{v}dvSPER#$H=`@~*`HxJ27XlF_Y4&Ztw_%@zPEV4m33EC>~r0|itTgBf{%5PJ#bB->TWzE-H(sE VR3vQd#QtX7Znfifv;AiK%Fo#2Epz|? diff --git a/NodeRed/dbus-fzsonick-48tl/__pycache__/dbus-fzsonick-48tl.cpython-38.pyc b/NodeRed/dbus-fzsonick-48tl/__pycache__/dbus-fzsonick-48tl.cpython-38.pyc deleted file mode 100644 index 437a1d771655386b5f05348159698007ee70ed7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12185 zcma)CTWlQHd7j%|xx9#?sH^3%EK6Ej(l>g|NZld@{jb;{mbIv4P5@$RYhS6Q(a|A z-qj^lJZnoD?wYIDj3q;rZK>KS*qwts2AsAt`g+JU75qMma{YX_GO)($NlsvTZBTsyLKM8Naz(b}=4W1`;Y zK2bZqbX-;JgZqnidhHypmzFhlik-fzF1^goup(MsVb8MXaDSDZWn;L%#>QC*_w#Im zJ&*e**bCML_98on`X|{->}A|9vRBxvxW8_{!CqU}zM}H4+OK1GldQnhpVSU3J1Taf zE-1zG4~ddb{NE;cFhNH2npeJC-}; zI(9t(bY$Lccsy8etqpsY&D*z|womXu*?VTQYBvJMs{^zzdFUFofBI6>zjDoT>Q_Cl zQ8c3dOICoHw-y2`X!=ol!C9$WZj_0^QTD3Mraaf<7%@AGo>s-BbY4hKB(PT!*sBTbwFGuPfqg=(@qpO(1yNVmM#a-70`9MG}?SV`MhrwA#dZ<24-uIbd5Jzld&e$BdFwSC{>TP9#;uxgvD zR-L&{eZ};aO)H8U#SY3FmfMW00YuyUr0EB|h&Pj0&J!e`%XyVGyBdg5 zOstu7i+N|&=C+tquB>j`*k0h76}z)643#cSms_$Jl2FpH@RK)I6I5? zEEfv34uV5@Zk;zRY_IMIRy~MULFmUKBre44&AL z%!~qamj$B>QyUe!*BhnfdZTp1wIF!TKVt;v-~R5SkN6;7tkMweAJq+9`*HarC<5i4 z0`XSwsZ@^OT2MYz$b6%O+gNUFoEzJ)$Dl)+n`0~WrfpT663O(~a_Dmok2bEX7CinRfwDKpD!bC0V zt67_ED!d6mdtpyKeqmj`L(SX_`%BYR5aFiOwvl=hvv;&clqCg1a@X!SB{fc@PKJH* z)f(8(0E?~s(l65QTd)5>eJ0!|-(0k5b6_WKJO4sV z+W6m(K5C+(eCKzj!o#I$$6Bd-e&AI7(k+YEVK6Sc){5_ZAAKGY-xf7aTpOjTkfk6z z*z?MyYw?l6ru>OV@A z>;>1VRhV`0U3C8sTuONS@dRmi43G3I92gA)#Hw5AK#I<>zZx(U>Q=nldcQyW5jDf@Z(>ZY;MlmuC*0D_4xLA zyXFNp?bCjk`Vr&2X`=_fUVoUTPWwvNR%$^BI-Y!+IarTyqz4o;S2!f0Q(hfz5E=h) zurzH`ATcZKW7US>U>Me{24a|e`)QUz24>+$m9ANv(~e(VwfKr13t%{!G)?_Tcr1@$ zz7#J3+%r_V?C{zhi`$)5zG-pR1t~rerKJZK>DA?xD1T%A`t(~0Xv-8(_#u-9~>263d6Ac0T0̛Dj5}0=WsKuU<}^xoDsviCuPB8N26C zVVnFU?X}Quse_%QMma`}rfBR|A5R0~&!bSDC}_j#ur{D)^|YE*hxJi)L>o8#7p79 zy*(*h@{4I+#zOdKP(%ieAaS;TVP;-P35j(1#{A6X*|(zsvGpWyDjIy1UdzPJPh?ON z97N#@J&Lzn^74JWBzzxW4cwUr*A_H>8_+#mN19e(%S0tCw3JLdWHk&+g=0+KZp&I#|B5#tytCdq8?=}#zbTrb>d#JS@;wl z4IWS-97{31Nsl!Yzm7{RTG5HO(`x>Q0$v5Y=SMr7!sU~~>gH?8f88fdq3;?GBznRp z_i$s9#WN|Dw}@Q~AmS=pewo?J76Rg8s>7(9XvT>&QMR4^>!P&ShDoiGVQX+*$}Wce z8el$AQvuWERlbc{52?ud)7WAoAu0g~wL{{l?rKbJX$Qf4suC`O5wRI;D%Aq@A+S0i z=@tZb+d!%DWvmr$DZd7R#t1r% zDVe#LnhTF}nGz+1=~I%_beJgu@H&OfK$1a5H9WR#!SFH4OMvu`bPaX$yjkq$pTu@L zD1^gIZd{Z>XiRPir>#dBd(*BqVR0(r| z^ZEBDwu>1-jL4uo8C(L3`*yPP=zwr*9(5yl9}W8o6+}%8@l#aq%$-atRsqa6?CPG# zWT?G~*d^KeD-7aOa6?vX2pHDX#rOtPoPmp_V1M-gtTLTE(dps3GP z(U|<`723m#xO^8yfOI(}%Na?7whbA8v76sk!=XS&9s(r035mF++#WHMz*x_7rYhSo zf#LBWwVP(zZYIc*grY=Z`~i~g)cYmq;ce}++S|%Ic=K&sLNDucBL5Md?ubhp6>Vag z$jX5@keK(M-!A5&6u0Utwlsnra>L=uv+x z17$f35h_w`m?%NFj-J{NS5R=rR>w{JE;>sq2^*OOMc|vMVQFv2jtzLsD5N8hJPn}d z#hgD+OB56T9Mwz|(eU0e{{e8HTopwx{NnhtMT7}{)p5enx@WG}y*u@U z#v<(&X{&c49epFsS}kUUI*BxHQ-o59Qb=4^SEDpTb`uFXA~8iDUbDduqYi;jBo8hs zsb=7wJPyWx7445`HclST_i?qo9%!>+&@`)wmLAj+(i0Q(DLizvSUAx(5ztydw>(+8 zZ)^kEI3G$KRs=PGUI6F|&{lI3k6L1#J{FFF%V_ zh`eK%rJUr&b8ok`mv9^T=cxVjC}OoG%|N-Gob)M3i;o0_bii*+u*bhhFOv)XD9*kN z*#F@22T(}=IxDo(fX=C{D%g|S@S}R7`%mFPVr>_gA+H%`Tc`#&Z!p5p^<=b(x%9d4 z=`JHHSB{)^yj;=+W26c6DAR)ta{RH4GHwzFB=ymV(Ao|if_8S_v)kXG7X&_q42r@e z*l(i1(RG_cMm0m~;2(;X9u6TTnsCTPJalo$$zBdwOF^k>uw<}tYndHw4_8nep@&oX z+&tK#H?7}B0UQK6njxN{Yd_&GHR$)@Ff!=wF zv$FUP-IVS zI{aQfM^3%jY=8xDND?2J;S}llafqh)NFd=pdHiJB7LHZgjJM%frj%qHOT92oXFJ%h zJgWgy;oyguc|k;}<4G`>&%HR_IXvv@E*x$;(UjwNAIHTfQ#}JFxXFXhHFQt6Npq{{L~7IIDq=)Wumve6s=M!`%NiZk$Ak3rn9c7ylYy zZ}f205jl0ok?3$!IJykk7l*Ii>&q`fSj#l{XQ&`@}JJNE% z7icLYnMxrKt5|@K&%c4EDuKFx#933g{F5l8<4D;O3ZsaN7@Q3mUeU9VP=rvqw|pG? zoHtD~95OE;BZ3SRj_@c&axp|CgVPlk&0*F=s^_hROA`>ER0G+_fPV_p$Tf?FCkTxC zM0>eOBfr^3qyq1Z|2|&nAst$UM2K~hc#)&DgOtI##!rc$QrM+H-=SdA*iA8+^MPA@ zSjNiI@Sd$979%EsPN?DN+{C$;Z6X^iPaegodaxC5Oj_}DgmZ#=mt#tcgRpNQn6oz> z`p(9{0I}$Ib~h|Tk!p?3=ivnK75`d7BE5jP8A$+*{}D!8tdi8Xe`!?cndl_K3Hq|- z1MLI-17kTQlO)@z7Rk6CzLU>QL6;+;XX3~@=B&W-*W(jX-mFWBq1e6Mo@jy`VE|F2 z9mq~dDk3&s#>o)ABxoy?WPk5F%>JKYy!Rks9JQ0j3axSPB0+>#JF%gX+0gxM+UttSn0zQ|2=dO zk`d*S#Duhaq@N|jnKVpa*Zh@)0;vJG21uD{;pwWtV7aSXM}oV6Vo2oqgwG`mfmni= z?aye+KTqcUQ>vLLqT#)RznidnW~85g8@+m1y(c6bLTh(O*dm*p_6P z_Gcs#M`C)+aBJ0*GsLE%J=^P#;VEKqVdrHsoR7-*C$Inj68GxNWonu#JB zdE8*6{$wDUDGczxM86)UqhtcAAEVHiiM$orgUt;|kpI~N?lUER(Hqq_$KZS4@t zjwr1>eK*>Mv~uE!R+Xcf+8#dNmyX4K z-cJzC^Es)SD8n3lPFBMiAhzVvX_auv5Q#S$Wwb?U2Ok&X)X-S-aDbcMuxWNaOcSir z0NE+%eEPyy@{dCef@_*ot5G31=}T0j6sKgx`&9cfil}gDav@3fMT2wK%hxZL=Vz|W zE`XyJWC;6J>P`Nyu>HaV6uyyExZkD*!Jloy(~inz$%KNRI)#bOQT74|+H~!UL?8bK z3gn5z2^r;!3W#pSAGJgD1pdN3n|(Jsm>tMwv$ Callable[[BatteryStatus], bool] - - def get_value(status): - # type: (BatteryStatus) -> bool - value = status.modbus_data[register - cfg.BASE_ADDRESS] - return value & (1 << bit) > 0 - - return get_value - - -def read_float(register, scale_factor=1.0, offset=0.0, places=2): - # type: (int, float, float) -> Callable[[BatteryStatus], float] - - def get_value(status): - # type: (BatteryStatus) -> float - value = status.modbus_data[register - cfg.BASE_ADDRESS] - - if value >= 0x8000: # convert to signed int16 - value -= 0x10000 # fiamm stores their integers signed AND with sign-offset @#%^&! - - result = (value+offset)*scale_factor - return round(result,places) - - return get_value - - -def read_hex_string(register, count): - # type: (int, int) -> Callable[[BatteryStatus], str] - """ - reads count consecutive modbus registers from start_address, - and returns a hex representation of it: - e.g. for count=4: DEAD BEEF DEAD BEEF. - """ - start = register - cfg.BASE_ADDRESS - end = start + count - - def get_value(status): - # type: (BatteryStatus) -> str - return ' '.join(['{0:0>4X}'.format(x) for x in status.modbus_data[start:end]]) - - return get_value - - -def read_led_state(register, led): - # type: (int, int) -> Callable[[BatteryStatus], int] - - read_lo = read_bool(register, led * 2) - read_hi = read_bool(register, led * 2 + 1) - - def get_value(status): - # type: (BatteryStatus) -> int - - lo = read_lo(status) - hi = read_hi(status) - - if hi: - if lo: - return LedState.blinking_fast - else: - return LedState.blinking_slow - else: - if lo: - return LedState.on - else: - return LedState.off - - return get_value - - -def read_bitmap(register): - # type: (int) -> Callable[[BatteryStatus], bitmap] - - def get_value(status): - # type: (BatteryStatus) -> bitmap - value = status.modbus_data[register - cfg.BASE_ADDRESS] - return value - - return get_value - - -def append_unit(unit): - # type: (unicode) -> Callable[[unicode], unicode] - - def get_text(v): - # type: (unicode) -> unicode - return "{0}{1}".format(str(v), unit) - - return get_text - - -def mean(numbers): - # type: (Iterable[float] | Iterable[int]) -> float - return float("{:.2f}".format(float(sum(numbers)) / len(numbers))) - -def ssum(numbers): - # type: (Iterable[float] | Iterable[int]) -> float - return float("{:.2f}".format(float(sum(numbers)))) - - -def first(ts): - return next(t for t in ts) - -def return_in_list(ts): - return ts - - diff --git a/NodeRed/dbus-fzsonick-48tl/data.py b/NodeRed/dbus-fzsonick-48tl/data.py deleted file mode 100644 index 05cdd1aa7..000000000 --- a/NodeRed/dbus-fzsonick-48tl/data.py +++ /dev/null @@ -1,97 +0,0 @@ -import config as cfg -from collections import Iterable - -# trick the pycharm type-checker into thinking Callable is in scope, not used at runtime -# noinspection PyUnreachableCode -if False: - from typing import Callable - - -class LedState(object): - """ - from page 6 of the '48TLxxx ModBus Protocol doc' - """ - off = 0 - on = 1 - blinking_slow = 2 - blinking_fast = 3 - - -class LedColor(object): - green = 0 - amber = 1 - blue = 2 - red = 3 - - - -class CsvSignal(object): - def __init__(self, name, get_value, get_text = None): - self.name = name - self.get_value = get_value if callable(get_value) else lambda _: get_value - self.get_text = get_text - - if get_text is None: - self.get_text = "" - -class Signal(object): - - def __init__(self, dbus_path, aggregate, get_value, get_text=None): - # type: (str, Callable[[Iterable[object]],object], Callable[[BatteryStatus],object] | object, Callable[[object],unicode] | object)->None - """ - A Signal holds all information necessary for the handling of a - certain datum (e.g. voltage) published by the battery. - - :param dbus_path: str - object_path on DBus where the datum needs to be published - - :param aggregate: Iterable[object] -> object - function that combines the values of multiple batteries into one. - e.g. sum for currents, or mean for voltages - - :param get_value: (BatteryStatus) -> object - function to extract the datum from the modbus record, - alternatively: a constant - - :param get_text: (object) -> unicode [optional] - function to render datum to text, needed by DBus - alternatively: a constant - """ - - self.dbus_path = dbus_path - self.aggregate = aggregate - self.get_value = get_value if callable(get_value) else lambda _: get_value - self.get_text = get_text if callable(get_text) else lambda _: str(get_text) - - # if no 'get_text' provided use 'default_text' if available, otherwise str() - if get_text is None: - self.get_text = str - - -class Battery(object): - - """ Data record to hold hardware and firmware specs of the battery """ - - def __init__(self, slave_address, hardware_version, firmware_version, bms_version, ampere_hours): - # type: (int, str, str, str, int) -> None - self.slave_address = slave_address - self.hardware_version = hardware_version - self.firmware_version = firmware_version - self.bms_version = bms_version - self.ampere_hours = ampere_hours - - - def __str__(self): - return 'slave address = {0}\nhardware version = {1}\nfirmware version = {2}\nbms version = {3}\nampere hours = {4}'.format( - self.slave_address, self.hardware_version, self.firmware_version, self.bms_version, str(self.ampere_hours)) - - -class BatteryStatus(object): - """ - record holding the current status of a battery - """ - def __init__(self, battery, modbus_data): - # type: (Battery, list[int]) -> None - - self.battery = battery - self.modbus_data = modbus_data diff --git a/NodeRed/dbus-fzsonick-48tl/dbus-fzsonick-48tl.py b/NodeRed/dbus-fzsonick-48tl/dbus-fzsonick-48tl.py deleted file mode 100755 index 99c01de4c..000000000 --- a/NodeRed/dbus-fzsonick-48tl/dbus-fzsonick-48tl.py +++ /dev/null @@ -1,980 +0,0 @@ -#!/usr/bin/python3 -u -# coding=utf-8 - -import re -import sys -import logging -from gi.repository import GLib - -import config as cfg -import convert as c - -from pymodbus.register_read_message import ReadInputRegistersResponse -from pymodbus.client.sync import ModbusSerialClient as Modbus -from pymodbus.other_message import ReportSlaveIdRequest -from pymodbus.exceptions import ModbusException -from pymodbus.pdu import ExceptionResponse - -from dbus.mainloop.glib import DBusGMainLoop -from data import BatteryStatus, Signal, Battery, LedColor, CsvSignal, LedState - -from collections import Iterable -from os import path - -app_dir = path.dirname(path.realpath(__file__)) -sys.path.insert(1, path.join(app_dir, 'ext', 'velib_python')) - -from vedbus import VeDbusService as DBus - -import time -import os -import csv - - -import requests -import hmac -import hashlib -import base64 -from datetime import datetime -import io - -class S3config: - def __init__(self): - self.bucket = "1-c0436b6a-d276-4cd8-9c44-1eae86cf5d0e" - self.region = "sos-ch-dk-2" - self.provider = "exo.io" - self.key = "EXOcc0e47a4c4d492888ff5a7f2" - self.secret = "79QG4unMh7MeVacMnXr5xGxEyAlWZDIdM-dg_nXFFr4" - self.content_type = "text/plain; charset=utf-8" - - @property - def host(self): - return f"{self.bucket}.{self.region}.{self.provider}" - - @property - def url(self): - return f"https://{self.host}" - - def create_put_request(self, s3_path, data): - headers = self._create_request("PUT", s3_path) - url = f"{self.url}/{s3_path}" - response = requests.put(url, headers=headers, data=data) - return response - - def _create_request(self, method, s3_path): - date = datetime.utcnow().strftime('%a, %d %b %Y %H:%M:%S GMT') - auth = self._create_authorization(method, self.bucket, s3_path, date, self.key, self.secret, self.content_type) - headers = { - "Host": self.host, - "Date": date, - "Authorization": auth, - "Content-Type": self.content_type - } - return headers - - @staticmethod - def _create_authorization(method, bucket, s3_path, date, s3_key, s3_secret, content_type="", md5_hash=""): - payload = f"{method}\n{md5_hash}\n{content_type}\n{date}\n/{bucket.strip('/')}/{s3_path.strip('/')}" - signature = base64.b64encode( - hmac.new(s3_secret.encode(), payload.encode(), hashlib.sha1).digest() - ).decode() - return f"AWS {s3_key}:{signature}" - -def read_csv_as_string(file_path): - """ - Reads a CSV file from the given path and returns its content as a single string. - """ - try: - with open(file_path, 'r', encoding='utf-8') as file: - return file.read() - except FileNotFoundError: - print(f"Error: The file {file_path} does not exist.") - return None - except IOError as e: - print(f"IO error occurred: {str(e)}") - return None - -CSV_DIR = "/data/csv_files/" -#CSV_DIR = "csv_files/" - -# Define the path to the file containing the installation name -INSTALLATION_NAME_FILE = '/data/innovenergy/openvpn/installation-name' - - -# trick the pycharm type-checker into thinking Callable is in scope, not used at runtime -# noinspection PyUnreachableCode -if False: - from typing import Callable - -def interpret_limb_bitmap(bitmap_value): - # The bit for string 1 also monitors all 5 strings: 0000 0000 means All 5 strings activated. 0000 0001 means string 1 disabled. - string1_disabled = int((bitmap_value & 0b00001) != 0) - string2_disabled = int((bitmap_value & 0b00010) != 0) - string3_disabled = int((bitmap_value & 0b00100) != 0) - string4_disabled = int((bitmap_value & 0b01000) != 0) - string5_disabled = int((bitmap_value & 0b10000) != 0) - n_limb_strings = string1_disabled+string2_disabled+string3_disabled+string4_disabled+string5_disabled - return n_limb_strings - -def create_csv_signals(firmware_version): - def read_power(status): - return int(read_current(status) * read_voltage(status)) - - read_voltage = c.read_float(register=999, scale_factor=0.01, offset=0, places=2) - read_current = c.read_float(register=1000, scale_factor=0.01, offset=-10000, places=2) - - read_limb_bitmap = c.read_bitmap(1059) - - def string1_disabled(status): - bitmap_value = read_limb_bitmap(status) - return int((bitmap_value & 0b00001) != 0) - - def string2_disabled(status): - bitmap_value = read_limb_bitmap(status) - return int((bitmap_value & 0b00010) != 0) - - def string3_disabled(status): - bitmap_value = read_limb_bitmap(status) - return int((bitmap_value & 0b00100) != 0) - - def string4_disabled(status): - bitmap_value = read_limb_bitmap(status) - return int((bitmap_value & 0b01000) != 0) - - def string5_disabled(status): - bitmap_value = read_limb_bitmap(status) - return int((bitmap_value & 0b10000) != 0) - - - def limp_strings_value(status): - return interpret_limb_bitmap(read_limb_bitmap(status)) - - def calc_power_limit_imposed_by_voltage_limit(v, i, v_limit, r_int): - # type: (float, float, float, float) -> float - - dv = v_limit - v - di = dv / r_int - p_limit = v_limit * (i + di) - - return p_limit - - def calc_power_limit_imposed_by_current_limit(v, i, i_limit, r_int): - # type: (float, float, float, float) -> float - - di = i_limit - i - dv = di * r_int - p_limit = i_limit * (v + dv) - - return p_limit - - def calc_max_charge_power(status): - # type: (BatteryStatus) -> int - n_strings = cfg.NUM_OF_STRING_PER_BATTERY-limp_strings_value(status) - i_max = n_strings * cfg.I_MAX_PER_STRING - v_max = cfg.V_MAX - r_int_min = cfg.R_STRING_MIN / n_strings - r_int_max = cfg.R_STRING_MAX / n_strings - - v = read_voltage(status) - i = read_current(status) - - p_limits = [ - calc_power_limit_imposed_by_voltage_limit(v, i, v_max,r_int_min), - calc_power_limit_imposed_by_voltage_limit(v, i, v_max, r_int_max), - calc_power_limit_imposed_by_current_limit(v, i, i_max, r_int_min), - calc_power_limit_imposed_by_current_limit(v, i, i_max, r_int_max), - ] - - p_limit = min(p_limits) # p_limit is normally positive here (signed) - p_limit = max(p_limit, 0) # charge power must not become negative - - return int(p_limit) - - def calc_max_discharge_power(status): - n_strings = cfg.NUM_OF_STRING_PER_BATTERY-limp_strings_value(status) - max_discharge_current = n_strings*cfg.I_MAX_PER_STRING - return int(max_discharge_current*read_voltage(status)) - - def return_led_state_blue(status): - led_state = c.read_led_state(register=1004, led=LedColor.blue)(status) - if led_state == LedState.blinking_fast or led_state == LedState.blinking_slow: - return "Blinking" - elif led_state == LedState.on: - return "On" - elif led_state == LedState.off: - return "Off" - - return "Unknown" - - def return_led_state_red(status): - led_state = c.read_led_state(register=1004, led=LedColor.red)(status) - if led_state == LedState.blinking_fast or led_state == LedState.blinking_slow: - return "Blinking" - elif led_state == LedState.on: - return "On" - elif led_state == LedState.off: - return "Off" - - return "Unknown" - - def return_led_state_green(status): - led_state = c.read_led_state(register=1004, led=LedColor.green)(status) - if led_state == LedState.blinking_fast or led_state == LedState.blinking_slow: - return "Blinking" - elif led_state == LedState.on: - return "On" - elif led_state == LedState.off: - return "Off" - - return "Unknown" - - def return_led_state_amber(status): - led_state = c.read_led_state(register=1004, led=LedColor.amber)(status) - if led_state == LedState.blinking_fast or led_state == LedState.blinking_slow: - return "Blinking" - elif led_state == LedState.on: - return "On" - elif led_state == LedState.off: - return "Off" - - return "Unknown" - - total_current = c.read_float(register=1062, scale_factor=0.01, offset=-10000, places=1) - - def read_total_current(status): - return total_current(status) - - def read_heating_current(status): - return total_current(status) - read_current(status) - - def read_heating_power(status): - return read_voltage(status) * read_heating_current(status) - - soc_ah = c.read_float(register=1002, scale_factor=0.1, offset=-10000, places=1) - - def read_soc_ah(status): - return soc_ah(status) - - def hex_string_to_ascii(hex_string): - # Ensure the hex_string is correctly formatted without spaces - hex_string = hex_string.replace(" ", "") - # Convert every two characters (a byte) in the hex string to ASCII - ascii_string = ''.join([chr(int(hex_string[i:i+2], 16)) for i in range(0, len(hex_string), 2)]) - return ascii_string - - battery_status_reader = c.read_hex_string(1060,2) - - def read_eoc_reached(status): - battery_status_string = battery_status_reader(status) - #if hex_string_to_ascii(battery_status_string) == "EOC_": - #return True - #return False - return hex_string_to_ascii(battery_status_string) == "EOC_" - - def read_serial_number(status): - - serial_regs = [1055, 1056, 1057, 1058] - serial_parts = [] - - for reg in serial_regs: - # reading each register as a single hex value - hex_value_fun = c.read_hex_string(reg, 1) - hex_value = hex_value_fun(status) - - # append without spaces and leading zeros stripped if any - serial_parts.append(hex_value.replace(' ', '')) - - # concatenate all parts to form the full serial number - serial_number = ''.join(serial_parts).rstrip('0') - - return serial_number - - return [ - - CsvSignal('/Battery/Devices/FwVersion', firmware_version), - CsvSignal('/Battery/Devices/Dc/Power', read_power, 'W'), - CsvSignal('/Battery/Devices/Dc/Voltage', read_voltage, 'V'), - CsvSignal('/Battery/Devices/Soc', c.read_float(register=1053, scale_factor=0.1, offset=0, places=1), '%'), - CsvSignal('/Battery/Devices/Temperatures/Cells/Average', c.read_float(register=1003, scale_factor=0.1, offset=-400, places=1), 'C'), - - CsvSignal('/Battery/Devices/Dc/Current', read_current, 'A'), - CsvSignal('/Battery/Devices/BusCurrent', read_total_current, 'A'), - CsvSignal('/Battery/Devices/CellsCurrent', read_current, 'A'), - CsvSignal('/Battery/Devices/HeatingCurrent', read_heating_current, 'A'), - CsvSignal('/Battery/Devices/HeatingPower', read_heating_power, 'W'), - CsvSignal('/Battery/Devices/SOCAh', read_soc_ah), - - CsvSignal('/Battery/Devices/Leds/Blue', return_led_state_blue), - CsvSignal('/Battery/Devices/Leds/Red', return_led_state_red), - CsvSignal('/Battery/Devices/Leds/Green', return_led_state_green), - CsvSignal('/Battery/Devices/Leds/Amber', return_led_state_amber), - - CsvSignal('/Battery/Devices/BatteryStrings/String1Active', string1_disabled), - CsvSignal('/Battery/Devices/BatteryStrings/String2Active', string2_disabled), - CsvSignal('/Battery/Devices/BatteryStrings/String3Active', string3_disabled), - CsvSignal('/Battery/Devices/BatteryStrings/String4Active', string4_disabled), - CsvSignal('/Battery/Devices/BatteryStrings/String5Active', string5_disabled), - - CsvSignal('/Battery/Devices/IoStatus/ConnectedToDcBus', c.read_bool(register=1013, bit=0)), - CsvSignal('/Battery/Devices/IoStatus/AlarmOutActive', c.read_bool(register=1013, bit=1)), - CsvSignal('/Battery/Devices/IoStatus/InternalFanActive', c.read_bool(register=1013, bit=2)), - CsvSignal('/Battery/Devices/IoStatus/VoltMeasurementAllowed', c.read_bool(register=1013, bit=3)), - CsvSignal('/Battery/Devices/IoStatus/AuxRelayBus', c.read_bool(register=1013, bit=4)), - CsvSignal('/Battery/Devices/IoStatus/RemoteStateActive', c.read_bool(register=1013, bit=5)), - CsvSignal('/Battery/Devices/IoStatus/RiscActive', c.read_bool(register=1013, bit=6)), - - - CsvSignal('/Battery/Devices/Eoc', read_eoc_reached), - CsvSignal('/Battery/Devices/SerialNumber', read_serial_number), - CsvSignal('/Battery/Devices/TimeSinceTOC', c.read_float(register=1052)), - CsvSignal('/Battery/Devices/MaxChargePower', calc_max_charge_power), - CsvSignal('/Battery/Devices/MaxDischargePower', calc_max_discharge_power), - - # Warnings - CsvSignal('/Battery/Devices/WarningFlags/TaM1', c.read_bool(register=1005, bit=1)), - CsvSignal('/Battery/Devices/WarningFlags/TbM1', c.read_bool(register=1005, bit=4)), - CsvSignal('/Battery/Devices/WarningFlags/VBm1', c.read_bool(register=1005, bit=6)), - CsvSignal('/Battery/Devices/WarningFlags/VBM1', c.read_bool(register=1005, bit=8)), - CsvSignal('/Battery/Devices/WarningFlags/IDM1', c.read_bool(register=1005, bit=10)), - CsvSignal('/Battery/Devices/WarningFlags/vsm1', c.read_bool(register=1005, bit=22)), - CsvSignal('/Battery/Devices/WarningFlags/vsM1', c.read_bool(register=1005, bit=24)), - CsvSignal('/Battery/Devices/WarningFlags/iCM1', c.read_bool(register=1005, bit=26)), - CsvSignal('/Battery/Devices/WarningFlags/iDM1', c.read_bool(register=1005, bit=28)), - CsvSignal('/Battery/Devices/WarningFlags/MID1', c.read_bool(register=1005, bit=30)), - CsvSignal('/Battery/Devices/WarningFlags/BLPW', c.read_bool(register=1005, bit=32)), - CsvSignal('/Battery/Devices/WarningFlags/CCBF', c.read_bool(register=1005, bit=33)), - CsvSignal('/Battery/Devices/WarningFlags/Ah_W', c.read_bool(register=1005, bit=35)), - CsvSignal('/Battery/Devices/WarningFlags/MPMM', c.read_bool(register=1005, bit=38)), - CsvSignal('/Battery/Devices/WarningFlags/TCdi', c.read_bool(register=1005, bit=40)), - CsvSignal('/Battery/Devices/WarningFlags/LMPW', c.read_bool(register=1005, bit=44)), - CsvSignal('/Battery/Devices/WarningFlags/TOCW', c.read_bool(register=1005, bit=47)), - CsvSignal('/Battery/Devices/WarningFlags/BUSL', c.read_bool(register=1005, bit=49)), - - # Alarms - CsvSignal('/Battery/Devices/AlarmFlags/Tam', c.read_bool(register=1005, bit=0)), - CsvSignal('/Battery/Devices/AlarmFlags/TaM2', c.read_bool(register=1005, bit=2)), - CsvSignal('/Battery/Devices/AlarmFlags/Tbm', c.read_bool(register=1005, bit=3)), - CsvSignal('/Battery/Devices/AlarmFlags/TbM2', c.read_bool(register=1005, bit=5)), - CsvSignal('/Battery/Devices/AlarmFlags/VBm2', c.read_bool(register=1005, bit=7)), - CsvSignal('/Battery/Devices/AlarmFlags/VBM2', c.read_bool(register=1005, bit=9)), - CsvSignal('/Battery/Devices/AlarmFlags/IDM2', c.read_bool(register=1005, bit=11)), - CsvSignal('/Battery/Devices/AlarmFlags/ISOB', c.read_bool(register=1005, bit=12)), - CsvSignal('/Battery/Devices/AlarmFlags/MSWE', c.read_bool(register=1005, bit=13)), - CsvSignal('/Battery/Devices/AlarmFlags/FUSE', c.read_bool(register=1005, bit=14)), - CsvSignal('/Battery/Devices/AlarmFlags/HTRE', c.read_bool(register=1005, bit=15)), - CsvSignal('/Battery/Devices/AlarmFlags/TCPE', c.read_bool(register=1005, bit=16)), - CsvSignal('/Battery/Devices/AlarmFlags/STRE', c.read_bool(register=1005, bit=17)), - CsvSignal('/Battery/Devices/AlarmFlags/CME', c.read_bool(register=1005, bit=18)), - CsvSignal('/Battery/Devices/AlarmFlags/HWFL', c.read_bool(register=1005, bit=19)), - CsvSignal('/Battery/Devices/AlarmFlags/HWEM', c.read_bool(register=1005, bit=20)), - CsvSignal('/Battery/Devices/AlarmFlags/ThM', c.read_bool(register=1005, bit=21)), - CsvSignal('/Battery/Devices/AlarmFlags/vsm2', c.read_bool(register=1005, bit=23)), - CsvSignal('/Battery/Devices/AlarmFlags/vsM2', c.read_bool(register=1005, bit=25)), - CsvSignal('/Battery/Devices/AlarmFlags/iCM2', c.read_bool(register=1005, bit=27)), - CsvSignal('/Battery/Devices/AlarmFlags/iDM2', c.read_bool(register=1005, bit=29)), - CsvSignal('/Battery/Devices/AlarmFlags/MID2', c.read_bool(register=1005, bit=31)), - CsvSignal('/Battery/Devices/AlarmFlags/HTFS', c.read_bool(register=1005, bit=42)), - CsvSignal('/Battery/Devices/AlarmFlags/DATA', c.read_bool(register=1005, bit=43)), - CsvSignal('/Battery/Devices/AlarmFlags/LMPA', c.read_bool(register=1005, bit=45)), - CsvSignal('/Battery/Devices/AlarmFlags/HEBT', c.read_bool(register=1005, bit=46)), - CsvSignal('/Battery/Devices/AlarmFlags/CURM', c.read_bool(register=1005, bit=48)), - - ] - - -def init_signals(hardware_version, firmware_version, n_batteries): - # type: (str,str,int) -> Iterable[Signal] - """ - A Signal holds all information necessary for the handling of a - certain datum (e.g. voltage) published by the battery. - - Signal(dbus_path, aggregate, get_value, get_text = str) - - dbus_path: str - object_path on DBus where the datum needs to be published - - aggregate: Iterable[object] -> object - function that combines the values of multiple batteries into one. - e.g. sum for currents, or mean for voltages - - get_value: (BatteryStatus) -> object [optional] - function to extract the datum from the modbus record, - alternatively: a constant - - get_text: (object) -> unicode [optional] - function to render datum to text, needed by DBus - alternatively: a constant - - - The conversion functions use the same parameters (e.g scale_factor, offset) - as described in the document 'T48TLxxx ModBus Protocol Rev.7.1' which can - be found in the /doc folder - """ - - product_id_hex = '0x{0:04x}'.format(cfg.PRODUCT_ID) - - read_voltage = c.read_float(register=999, scale_factor=0.01, offset=0, places=2) - read_current = c.read_float(register=1000, scale_factor=0.01, offset=-10000, places=2) - - def read_power(status): - return int(read_current(status) * read_voltage(status)) - - read_limb_bitmap = c.read_bitmap(1059) - def limp_strings_value(status): - return interpret_limb_bitmap(read_limb_bitmap(status)) - - def max_discharge_current(status): - return (cfg.NUM_OF_STRING_PER_BATTERY-limp_strings_value(status))*cfg.I_MAX_PER_STRING - - def max_charge_current(status): - return status.battery.ampere_hours/2 - - def calc_power_limit_imposed_by_voltage_limit(v, i, v_limit, r_int): - # type: (float, float, float, float) -> float - - dv = v_limit - v - di = dv / r_int - p_limit = v_limit * (i + di) - - return p_limit - - def calc_power_limit_imposed_by_current_limit(v, i, i_limit, r_int): - # type: (float, float, float, float) -> float - - di = i_limit - i - dv = di * r_int - p_limit = i_limit * (v + dv) - - return p_limit - - def calc_max_charge_power(status): - # type: (BatteryStatus) -> int - n_strings = cfg.NUM_OF_STRING_PER_BATTERY-limp_strings_value(status) - i_max = n_strings * cfg.I_MAX_PER_STRING - v_max = cfg.V_MAX - r_int_min = cfg.R_STRING_MIN / n_strings - r_int_max = cfg.R_STRING_MAX / n_strings - - v = read_voltage(status) - i = read_current(status) - - p_limits = [ - calc_power_limit_imposed_by_voltage_limit(v, i, v_max,r_int_min), - calc_power_limit_imposed_by_voltage_limit(v, i, v_max, r_int_max), - calc_power_limit_imposed_by_current_limit(v, i, i_max, r_int_min), - calc_power_limit_imposed_by_current_limit(v, i, i_max, r_int_max), - ] - - p_limit = min(p_limits) # p_limit is normally positive here (signed) - p_limit = max(p_limit, 0) # charge power must not become negative - - return int(p_limit) - - product_name = cfg.PRODUCT_NAME - if n_batteries > 1: - product_name = cfg.PRODUCT_NAME + ' x' + str(n_batteries) - - return [ - # Node Red related dbus paths - Signal('/TimeToTOCRequest', min, c.read_float(register=1052)), - Signal('/NumOfLimbStrings', c.return_in_list, get_value=limp_strings_value), - Signal('/NumOfBatteries', max, get_value=n_batteries), - Signal('/Dc/0/Voltage', c.mean, get_value=read_voltage, get_text=c.append_unit('V')), - Signal('/Dc/0/Current', c.ssum, get_value=read_current, get_text=c.append_unit('A')), - Signal('/Dc/0/Power', c.ssum, get_value=read_power, get_text=c.append_unit('W')), - - Signal('/BussVoltage', c.mean, c.read_float(register=1001, scale_factor=0.01, offset=0, places=2), c.append_unit('V')), - Signal('/Soc', c.mean, c.read_float(register=1053, scale_factor=0.1, offset=0, places=1), c.append_unit('%')), - Signal('/LowestSoc', min, c.read_float(register=1053, scale_factor=0.1, offset=0, places=1), c.append_unit('%')), - Signal('/Dc/0/Temperature', c.mean, c.read_float(register=1003, scale_factor=0.1, offset=-400, places=1), c.append_unit(u'°C')), - Signal('/Dc/0/LowestTemperature', min, c.read_float(register=1003, scale_factor=0.1, offset=-400, places=1), c.append_unit(u'°C')), - - # Charge/Discharge current, voltage and power - Signal('/Info/MaxDischargeCurrent', c.ssum, max_discharge_current,c.append_unit('A')), - Signal('/Info/MaxChargeCurrent', c.ssum, max_charge_current, c.append_unit('A')), - Signal('/Info/MaxChargeVoltage', min, cfg.MAX_CHARGE_VOLTAGE, c.append_unit('V')), - Signal('/Info/MaxChargePower', c.ssum, calc_max_charge_power), - - # Victron mandatory dbus paths - Signal('/Mgmt/ProcessName', c.first, __file__), - Signal('/Mgmt/ProcessVersion', c.first, cfg.SOFTWARE_VERSION), - Signal('/Mgmt/Connection', c.first, cfg.CONNECTION), - Signal('/DeviceInstance', c.first, cfg.DEVICE_INSTANCE), - Signal('/ProductName', c.first, product_name), - Signal('/ProductId', c.first, cfg.PRODUCT_ID, product_id_hex), - Signal('/Connected', c.first, 1), - #Signal('/FirmwareVersion', c.first, cfg.FIRMWARE_VERSION, firmware_version), - Signal('/FirmwareVersion', c.return_in_list, firmware_version), - Signal('/HardwareVersion', c.first, cfg.HARDWARE_VERSION, hardware_version), - - ## Diagnostics - Signal('/Diagnostics/BmsVersion', c.first, lambda s: s.battery.bms_version), - - # Warnings - #Signal('/Diagnostics/WarningFlags', c.first, c.read_hex_string(register=1005, count=4)), - Signal('/WarningFlags/TaM1', c.return_in_list, c.read_bool(register=1005, bit=1)), - Signal('/WarningFlags/TbM1', c.return_in_list, c.read_bool(register=1005, bit=4)), - Signal('/WarningFlags/VBm1', c.return_in_list, c.read_bool(register=1005, bit=6)), - Signal('/WarningFlags/VBM1', c.return_in_list, c.read_bool(register=1005, bit=8)), - Signal('/WarningFlags/IDM1', c.return_in_list, c.read_bool(register=1005, bit=10)), - Signal('/WarningFlags/vsm1', c.return_in_list, c.read_bool(register=1005, bit=22)), - Signal('/WarningFlags/vsM1', c.return_in_list, c.read_bool(register=1005, bit=24)), - Signal('/WarningFlags/iCM1', c.return_in_list, c.read_bool(register=1005, bit=26)), - Signal('/WarningFlags/iDM1', c.return_in_list, c.read_bool(register=1005, bit=28)), - Signal('/WarningFlags/MID1', c.return_in_list, c.read_bool(register=1005, bit=30)), - Signal('/WarningFlags/BLPW', c.return_in_list, c.read_bool(register=1005, bit=32)), - Signal('/WarningFlags/CCBF', c.return_in_list, c.read_bool(register=1005, bit=33)), - Signal('/WarningFlags/Ah_W', c.return_in_list, c.read_bool(register=1005, bit=35)), - Signal('/WarningFlags/MPMM', c.return_in_list, c.read_bool(register=1005, bit=38)), - #Signal('/WarningFlags/TCMM', c.return_in_list, c.read_bool(register=1005, bit=39)), - Signal('/WarningFlags/TCdi', c.return_in_list, c.read_bool(register=1005, bit=40)), - Signal('/WarningFlags/LMPW', c.return_in_list, c.read_bool(register=1005, bit=44)), - Signal('/WarningFlags/TOCW', c.return_in_list, c.read_bool(register=1005, bit=47)), - Signal('/WarningFlags/BUSL', c.return_in_list, c.read_bool(register=1005, bit=49)), - - # Alarms - #Signal('/Diagnostics/AlarmFlags', c.first, c.read_hex_string(register=1009, count=4)), - Signal('/AlarmFlags/Tam', c.return_in_list, c.read_bool(register=1005, bit=0)), - Signal('/AlarmFlags/TaM2', c.return_in_list, c.read_bool(register=1005, bit=2)), - Signal('/AlarmFlags/Tbm', c.return_in_list, c.read_bool(register=1005, bit=3)), - Signal('/AlarmFlags/TbM2', c.return_in_list, c.read_bool(register=1005, bit=5)), - Signal('/AlarmFlags/VBm2', c.return_in_list, c.read_bool(register=1005, bit=7)), - Signal('/AlarmFlags/VBM2', c.return_in_list, c.read_bool(register=1005, bit=9)), - Signal('/AlarmFlags/IDM2', c.return_in_list, c.read_bool(register=1005, bit=11)), - Signal('/AlarmFlags/ISOB', c.return_in_list, c.read_bool(register=1005, bit=12)), - Signal('/AlarmFlags/MSWE', c.return_in_list, c.read_bool(register=1005, bit=13)), - Signal('/AlarmFlags/FUSE', c.return_in_list, c.read_bool(register=1005, bit=14)), - Signal('/AlarmFlags/HTRE', c.return_in_list, c.read_bool(register=1005, bit=15)), - Signal('/AlarmFlags/TCPE', c.return_in_list, c.read_bool(register=1005, bit=16)), - Signal('/AlarmFlags/STRE', c.return_in_list, c.read_bool(register=1005, bit=17)), - Signal('/AlarmFlags/CME', c.return_in_list, c.read_bool(register=1005, bit=18)), - Signal('/AlarmFlags/HWFL', c.return_in_list, c.read_bool(register=1005, bit=19)), - Signal('/AlarmFlags/HWEM', c.return_in_list, c.read_bool(register=1005, bit=20)), - Signal('/AlarmFlags/ThM', c.return_in_list, c.read_bool(register=1005, bit=21)), - Signal('/AlarmFlags/vsm2', c.return_in_list, c.read_bool(register=1005, bit=23)), - Signal('/AlarmFlags/vsM2', c.return_in_list, c.read_bool(register=1005, bit=25)), - Signal('/AlarmFlags/iCM2', c.return_in_list, c.read_bool(register=1005, bit=27)), - Signal('/AlarmFlags/iDM2', c.return_in_list, c.read_bool(register=1005, bit=29)), - Signal('/AlarmFlags/MID2', c.return_in_list, c.read_bool(register=1005, bit=31)), - #Signal('/AlarmFlags/TcBM', c.return_in_list, c.read_bool(register=1005, bit=36)), - #Signal('/AlarmFlags/BRNF', c.return_in_list, c.read_bool(register=1005, bit=37)), - Signal('/AlarmFlags/HTFS', c.return_in_list, c.read_bool(register=1005, bit=42)), - Signal('/AlarmFlags/DATA', c.return_in_list, c.read_bool(register=1005, bit=43)), - Signal('/AlarmFlags/LMPA', c.return_in_list, c.read_bool(register=1005, bit=45)), - Signal('/AlarmFlags/HEBT', c.return_in_list, c.read_bool(register=1005, bit=46)), - Signal('/AlarmFlags/CURM', c.return_in_list, c.read_bool(register=1005, bit=48)), - - # LedStatus - Signal('/Diagnostics/LedStatus/Red', c.first, c.read_led_state(register=1004, led=LedColor.red)), - Signal('/Diagnostics/LedStatus/Blue', c.first, c.read_led_state(register=1004, led=LedColor.blue)), - Signal('/Diagnostics/LedStatus/Green', c.first, c.read_led_state(register=1004, led=LedColor.green)), - Signal('/Diagnostics/LedStatus/Amber', c.first, c.read_led_state(register=1004, led=LedColor.amber)), - - # IO Status - Signal('/Diagnostics/IoStatus/MainSwitchClosed', c.return_in_list, c.read_bool(register=1013, bit=0)), - Signal('/Diagnostics/IoStatus/AlarmOutActive', c.return_in_list, c.read_bool(register=1013, bit=1)), - Signal('/Diagnostics/IoStatus/InternalFanActive', c.return_in_list, c.read_bool(register=1013, bit=2)), - Signal('/Diagnostics/IoStatus/VoltMeasurementAllowed', c.return_in_list, c.read_bool(register=1013, bit=3)), - Signal('/Diagnostics/IoStatus/AuxRelay', c.return_in_list, c.read_bool(register=1013, bit=4)), - Signal('/Diagnostics/IoStatus/RemoteState', c.return_in_list, c.read_bool(register=1013, bit=5)), - Signal('/Diagnostics/IoStatus/RiscOn', c.return_in_list, c.read_bool(register=1013, bit=6)), - ] - - -def init_modbus(tty): - # type: (str) -> Modbus - - logging.debug('initializing Modbus') - - return Modbus( - port='/dev/' + tty, - method=cfg.MODE, - baudrate=cfg.BAUD_RATE, - stopbits=cfg.STOP_BITS, - bytesize=cfg.BYTE_SIZE, - timeout=cfg.TIMEOUT, - parity=cfg.PARITY) - - -def init_dbus(tty, signals): - # type: (str, Iterable[Signal]) -> DBus - - logging.debug('initializing DBus service') - dbus = DBus(servicename=cfg.SERVICE_NAME_PREFIX + tty) - - logging.debug('initializing DBus paths') - for signal in signals: - init_dbus_path(dbus, signal) - - return dbus - - -# noinspection PyBroadException -def try_get_value(sig): - # type: (Signal) -> object - try: - return sig.get_value(None) - except: - return None - - -def init_dbus_path(dbus, sig): - # type: (DBus, Signal) -> () - - dbus.add_path( - sig.dbus_path, - try_get_value(sig), - gettextcallback=lambda _, v: sig.get_text(v)) - - -def init_main_loop(): - # type: () -> DBusGMainLoop - logging.debug('initializing DBusGMainLoop Loop') - DBusGMainLoop(set_as_default=True) - return GLib.MainLoop() - - -def report_slave_id(modbus, slave_address): - # type: (Modbus, int) -> str - - slave = str(slave_address) - - logging.debug('requesting slave id from node ' + slave) - - try: - - modbus.connect() - - request = ReportSlaveIdRequest(unit=slave_address) - response = modbus.execute(request) - - if response is ExceptionResponse or issubclass(type(response), ModbusException): - raise Exception('failed to get slave id from ' + slave + ' : ' + str(response)) - - return response.identifier - - finally: - modbus.close() - - -def identify_battery(modbus, slave_address): - # type: (Modbus, int) -> Battery - - logging.info('identifying battery...') - - hardware_version, bms_version, ampere_hours = parse_slave_id(modbus, slave_address) - firmware_version = read_firmware_version(modbus, slave_address) - - specs = Battery( - slave_address=slave_address, - hardware_version=hardware_version, - firmware_version=firmware_version, - bms_version=bms_version, - ampere_hours=ampere_hours) - - logging.info('battery identified:\n{0}'.format(str(specs))) - - return specs - - -def identify_batteries(modbus): - # type: (Modbus) -> list[Battery] - - def _identify_batteries(): - address_range = range(1, cfg.MAX_SLAVE_ADDRESS + 1) - - for slave_address in address_range: - try: - yield identify_battery(modbus, slave_address) - except Exception as e: - logging.info('failed to identify battery at {0} : {1}'.format(str(slave_address), str(e))) - - return list(_identify_batteries()) # force that lazy iterable! - - -def parse_slave_id(modbus, slave_address): - # type: (Modbus, int) -> (str, str, int) - - slave_id = report_slave_id(modbus, slave_address) - - sid = re.sub(b'[^\x20-\x7E]', b'', slave_id) # remove weird special chars - - match = re.match('(?P48TL(?P\d+)) *(?P.*)', sid.decode('ascii')) - - if match is None: - raise Exception('no known battery found') - - return match.group('hw'), match.group('bms'), int(match.group('ah')) - - -def read_firmware_version(modbus, slave_address): - # type: (Modbus, int) -> str - - logging.debug('reading firmware version') - - try: - modbus.connect() - - response = read_modbus_registers(modbus, slave_address, base_address=1054, count=1) - register = response.registers[0] - - return '{0:0>4X}'.format(register) - - finally: - modbus.close() # close in any case - - -def read_modbus_registers(modbus, slave_address, base_address=cfg.BASE_ADDRESS, count=cfg.NO_OF_REGISTERS): - # type: (Modbus, int) -> ReadInputRegistersResponse - - logging.debug('requesting modbus registers {0}-{1}'.format(base_address, base_address + count)) - - return modbus.read_input_registers( - address=base_address, - count=count, - unit=slave_address) - - -def read_battery_status(modbus, battery): - # type: (Modbus, Battery) -> BatteryStatus - """ - Read the modbus registers containing the battery's status info. - """ - - logging.debug('reading battery status') - - try: - modbus.connect() - data = read_modbus_registers(modbus, battery.slave_address) - return BatteryStatus(battery, data.registers) - - finally: - modbus.close() # close in any case - - -def publish_values(dbus, signals, statuses): - # type: (DBus, Iterable[Signal], Iterable[BatteryStatus]) -> () - - for s in signals: - values = [s.get_value(status) for status in statuses] - with dbus as srv: - srv[s.dbus_path] = s.aggregate(values) - - -def update(modbus, batteries, dbus, signals, csv_signals): - # type: (Modbus, Iterable[Battery], DBus, Iterable[Signal]) -> bool - - """ - Main update function - - 1. requests status record each battery via modbus, - 2. parses the data using Signal.get_value - 3. aggregates the data from all batteries into one datum using Signal.aggregate - 4. publishes the data on the dbus - """ - - logging.debug('starting update cycle') - - statuses = [read_battery_status(modbus, battery) for battery in batteries] - node_numbers = [battery.slave_address for battery in batteries] - - publish_values(dbus, signals, statuses) - create_csv_files(csv_signals, statuses, node_numbers) - - logging.debug('finished update cycle\n') - return True - - -def print_usage(): - print ('Usage: ' + __file__ + ' ') - print ('Example: ' + __file__ + ' ttyUSB0') - - -def parse_cmdline_args(argv): - # type: (list[str]) -> str - - if len(argv) == 0: - logging.info('missing command line argument for tty device') - print_usage() - sys.exit(1) - - return argv[0] - - -alive = True # global alive flag, watchdog_task clears it, update_task sets it - - -def create_update_task(modbus, dbus, batteries, signals, csv_signals, main_loop): - # type: (Modbus, DBus, Iterable[Battery], Iterable[Signal], DBusGMainLoop) -> Callable[[],bool] - """ - Creates an update task which runs the main update function - and resets the alive flag - """ - - def update_task(): - # type: () -> bool - - global alive - - alive = update(modbus, batteries, dbus, signals, csv_signals) - - if not alive: - logging.info('update_task: quitting main loop because of error') - main_loop.quit() - - return alive - - return update_task - - -def create_watchdog_task(main_loop): - # type: (DBusGMainLoop) -> Callable[[],bool] - """ - Creates a Watchdog task that monitors the alive flag. - The watchdog kills the main loop if the alive flag is not periodically reset by the update task. - Who watches the watchdog? - """ - def watchdog_task(): - # type: () -> bool - - global alive - - if alive: - logging.debug('watchdog_task: update_task is alive') - alive = False - return True - else: - logging.info('watchdog_task: killing main loop because update_task is no longer alive') - main_loop.quit() - return False - - return watchdog_task - - -def get_installation_name(file_path): - with open(file_path, 'r') as file: - return file.read().strip() - -def manage_csv_files(directory_path, max_files=20): - csv_files = [f for f in os.listdir(directory_path)] - csv_files.sort(key=lambda x: os.path.getctime(os.path.join(directory_path, x))) - - # Remove oldest files if exceeds maximum - while len(csv_files) > max_files: - file_to_delete = os.path.join(directory_path, csv_files.pop(0)) - os.remove(file_to_delete) - -def serialize_for_csv(value): - if isinstance(value, (dict, list, tuple)): - return json.dumps(value, ensure_ascii=False) - return str(value) - -def insert_id(path, id_number): - parts = path.split("/") - - insert_position = parts.index("Devices") + 1 - - parts.insert(insert_position, str(id_number)) - - return "/".join(parts) - -def create_csv_files(signals, statuses, node_numbers): - timestamp = int(time.time()) - if timestamp % 2 != 0: - timestamp -= 1 - # Create CSV directory if it doesn't exist - if not os.path.exists(CSV_DIR): - os.makedirs(CSV_DIR) - - #installation_name = get_installation_name(INSTALLATION_NAME_FILE) - csv_filename = f"{timestamp}.csv" - csv_path = os.path.join(CSV_DIR, csv_filename) - - # Append values to the CSV file - with open(csv_path, 'a', newline='') as csvfile: - csv_writer = csv.writer(csvfile, delimiter=';') - - # Add a special row for the nodes configuration - nodes_config_path = "/Config/Devices/BatteryNodes" - nodes_list = ",".join(str(node) for node in node_numbers) - config_row = [nodes_config_path, nodes_list, ""] - csv_writer.writerow(config_row) - - # Iterate over each node and signal to create rows in the new format - for i, node in enumerate(node_numbers): - for s in signals: - signal_name = insert_id(s.name, i+1) - #value = serialize_for_csv(s.get_value(statuses[i])) - value = s.get_value(statuses[i]) - row_values = [signal_name, value, s.get_text] - csv_writer.writerow(row_values) - - # Manage CSV files, keep a limited number of files - - - - # Create the CSV as a string - csv_data = read_csv_as_string(csv_path) - - - # Create an S3config instance - s3_config = S3config() - response = s3_config.create_put_request(csv_filename, csv_data) - - if response.status_code == 200: - os.remove(csv_path) - print("Success") - else: - failed_dir = os.path.join(CSV_DIR, "failed") - if not os.path.exists(failed_dir): - os.makedirs(failed_dir) - failed_path = os.path.join(failed_dir, csv_filename) - os.rename(csv_path, failed_path) - print("Uploading failed") - manage_csv_files(failed_dir, 10) - - - manage_csv_files(CSV_DIR) - - -def main(argv): - # type: (list[str]) -> () - - logging.basicConfig(level=cfg.LOG_LEVEL) - logging.info('starting ' + __file__) - - tty = parse_cmdline_args(argv) - modbus = init_modbus(tty) - - batteries = identify_batteries(modbus) - - n = len(batteries) - - logging.info('found ' + str(n) + (' battery' if n == 1 else ' batteries')) - - if n <= 0: - sys.exit(2) - - bat = c.first(batteries) # report hw and fw version of first battery found - - signals = init_signals(bat.hardware_version, bat.firmware_version, n) - csv_signals = create_csv_signals(bat.firmware_version) - - main_loop = init_main_loop() # must run before init_dbus because gobject does some global magic - dbus = init_dbus(tty, signals) - - update_task = create_update_task(modbus, dbus, batteries, signals, csv_signals, main_loop) - watchdog_task = create_watchdog_task(main_loop) - - GLib.timeout_add(cfg.UPDATE_INTERVAL * 2, watchdog_task) # add watchdog first - GLib.timeout_add(cfg.UPDATE_INTERVAL, update_task) # call update once every update_interval - - logging.info('starting GLib.MainLoop') - main_loop.run() - logging.info('GLib.MainLoop was shut down') - - sys.exit(0xFF) # reaches this only on error - - -if __name__ == "__main__": - main(sys.argv[1:]) diff --git a/NodeRed/dbus-fzsonick-48tl/ext/velib_python/__pycache__/ve_utils.cpython-38.pyc b/NodeRed/dbus-fzsonick-48tl/ext/velib_python/__pycache__/ve_utils.cpython-38.pyc deleted file mode 100644 index dc9881466c4ad2fc120422fe0c5135a3509929db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6666 zcmbVQTW=i6b?)l!>FF5`$st8i7t_1Fx~<1pUUsdO<%PUhiIf(EcPUxaYGuajL365y zY_i!ss;;5P&WtZh8FrA!j_oG{c^D=y*}sqnBR?QOfIQ@(UJ@Vy0s=uE1AAfE`A#)& zL#@2Q&Y(_J*Y(t?bG~z`J{TM<8~FY6zkQ=wyF54(OOO7rVqT+_TEhMz_LC4P>dM?S&7#3zt{87sbo^fHo%^a|32{qKv&FE!nz z%lymyCG@?*FK~~)@{}#T%Gsh(ySPWvS*S5pYKbtG^gqEJkwFE^WM%~X}f zYS37(CvDkkOEo&{M^V71`nrp;)*FsT!Y{s+5K+u`k;qP=lMk2z|^P1)D+C zpyiJLXuvy2X$2%OmKZmdOwF39Mi-KYV&h&Sq#w<5y~aY#Qf|E-`x`;MuFCcLM#9?> zl`Hl7oiupA8^wxCJlGB@ELy9C0;y|oyPxIw=I@!$9Bn}(vlUJ|HXgb(J zryvTK>#c3Mn#B01w`CZmQ>|@5+zk<%CWy=QcY}C8_*p2FknSR-cR;dA$LO$*`7`#R zv1l;;&qgIwZig{LvK`cXXvCGgr(g)^a`WMTMj%a!hoYcr_nSjl!9yl;w`aYNa@SV@(${)F-)nTiqWJ=n+CII7Z75QCYl!W>YSm61EPID^{0 zqo=jWQfHC0ElNYU5*y}5*T}vq8HuR}ad2zb>{+|0?HK8lw7I>*K4u-m$2SSqHe_MF zEbixGM0^j+%4(nArPH$uv*4(jrqkN!K01i}sY@RcA&0VWo#KBHr{Zm-~zYjSZ z+~*7j-6`@RK1}_4W4qW3?Yvf9$WBeC%V9jd63EGR96oLblOfLvZP}c>t{j+DB7$t9 zuhkO)%q+&?E=PX6p1u5n);NhLvjF--N~=l_@4sK4zjJf;wz31cI-?4H+6cq&)xSWa z{l=Tu(!F8y%T9+$Lq=ZH4`J(GGZ7y3-lJ3AI}1`ft%mFMO|emLX)CRVToh;lhX;*> z2da=l^IFpBTx1jl|IDa=^!&(itYA&Gdkhx3XL0l$s zg~+SKQXy=@R1`~<9md$>A#&teJ_08Cw@5?N*FcP_&1}=QO*Y1CXuAz3+rUZ=aFmA7#>5ctz z;aJ&OH^m$;cFZ$027S4^V|Fd{v@i-iMXO`+(m7~rUWQ#kvk8QB4|lyFdiy;}+##*x zMf5zVbIuvmdc)uYun=p`_-F!F0bAh%>z4QjUWrYzfHTI|jjsLp@A+WI1}A8TP7f_K z2v`n&wA~`oB2s!4WQDeeje`|qhjrKvO@F>?Ve2OF)54#fF|=WU;m2bg6O)aK6}hUIFKE4!XIh4~)n!umh4?P9LU3f@_{P{-mR)Tm z@n#_C(1VpaN-5x#dW*p4{&Eyd-H4KgAEj?k9Zi#&m$&vv_4mjVXlzw%W{)u6Sv2sV<rH0&)RH}-p^?MOmDWw3E_FW%>|`)8OU zeF?;1uH!P-yo6M?&a$%Qv8qXmd){(Q@h$Y|Q&2jsLy&%m56-$QJ1YUbJB-wG4a&A= zjzMJscvk^<769)aGrATtvTCBZx`mHtS6sQx;HZ+1~_SsnYEO z*9dJ$R#qVHH_;dR0hExdVjdrYbWoYW)=8lbkQ{?9bYT$V`ai+s1w4@3beQ(j%0#=ORJg>GNFV zA?$_h;&i&5PB%lb0hb(1b4aKGNd>|5vY!Ui2#115G4UzW8%k8!JWzL+30j28wmR1b~?SkfAIkOfUsQc zf}o1El6G(60_w#pL60Qb9uww3IX zcPGpvM{l2BZ+=b(lX>vrg>uS6>~d1N2nGmyls!8$^SY*QXnIZ4uWNc;({E^cvsTQi zvq^+7V>XEqtw-Lwk23cm9SN0+cN;RHLglufZZ9U0FDB>bv&#Fx#_(Q*h#p_X_x-I< zkDCp|GIiH;f2~&hoTICO)fy8YAv<|g8V&Y!1|iNT=#qLMhW7mWpm1cz{=aiv(=dN4 zR?z3gkjl}jA@vGDs>X;>?e#TA!1Kdma)i*hZ~(C1>jPNC3LWcn0M=f(qg6RO-;c09 zCwM)C(j(=41kMCqWdx~|D)3;ry;8Hqx9O`0ha&@=kJjq@)a!(5mk4p{6qEfUT8{x| zg`LlVa}D)ZEWlg1ve zFQPuns%UW!TJ`~`1c2Du56i8!@-2w-6-# z27Pedmlm%3Hm>^!xSmU*5Cksb4|4eg0QB$I~`tS!jg`(#JZOKwm{RbwcuV8)LsT?VznHR>1UV}xS*j6Pv%_=)gab-Mr7 zH~pv`;I?i~&E&zxiDN9^h{9Ahl8x5e|BhKxTEl_Y$}XOm<0v3H8qvq0g^?5-X$~h) zSS1d}zH4?Vjvzh};5N-)9&sun^r~4RL8jQcxQ+ZdHM@}lvWdO_LhC+zj*(q>F?$CC zYGZ2X;qAFwA1vZd@$lw*^K+^kreTb$bBwz{p&2DU;w=)Ba^{jYqCRCWCrPA=w?G3Q zmlNE!Rbf7sUwcCh-bLhwF;BF8>Dp^ol?9KhoJGVj@rtrZmU+NexG99ctxAiBk0dt7 z>x3%Lfg;xQ#WpS_2=!9*ziBmroRG$xDK&v86F}}s3(qx4eK$xN|iB?!jzBa#+vw8+fe4)el#y z$`RfApK=8DrQ3U>xqTg5^%Pe4tsKia(e_r#HsN=0k}~z?CU3#%XxXRUGH#U~To2w( zyhMa6VeChq+-?O^-W|FVZ}}T7gsfqc26$oWB~9Jz&0&(MTzy_EmwZpF)#0Pe!PR~0 zGtcDzWz8e)_=K{H7{_>0U0SI7U!)@wzWm(4&oW|-ISYc+;|uag8oazMgY<=b{oy!Y zUvL%i6HM~L74Xt_wDZ0dp2H=LoX_FXF$C2s?cQSGL0DGtU z-c=hU(1Rb94_!J%(s-F5mwvWmtN|Eum&lCxdIlrRYtX}b2GQXbbOF~%21mV+JL-cT z`s!tx^!X8ZJ;)a*lV;EhnqlD{ ziMSCjrH1*(vN^=WuThH_^cR$U1^#0@RVDq9O9-T&X!VnoAkm6bM93$ra@t--cuFtv zd5}xD5>=#IFI-Q)i4v|G@8#FvK^jPbU9N0e&rTW zh3ME;P#mY-iuiMsl=Ff1hvKj3gM8!b*Ydj8uZiwqhig~GU(z^IJ-y{)BGe&>eqDBN v^Y|F2+?8t9nxqx4*J?L*Q@K3J(JH|@5?sFh^FM(=^3~1yl(o= zX(O86nehufbHTW6l2ot>?ozz}+`~^^^e#Sn@#2N|E_tj!bne^}c)WzIsrntS-HE)b zTftWFnt8H&Ls($B8c`Tm z&5b4o3FESURo@8WIj_@htkv7AL8IPkU9LB-gt65L<6_Xh)>NH# z?2snn%EcfIo1HeMi^~^p0+tP_%0P`yyB(L3l8ZFOTWD$pl?b%4ZthsOja%k9CvXkR2UT0Z@%y6Ljk05W5{g@igvm4uxUPnHBugrHfj3?=U`O zrU7&iH5P6`2LS`{#*TR#AgdZ47cBuMF0BTU$DO@n3RuIS`~do1#vO7n!yMj<^y}C- z-{1<;afYUUIn``@geH~czL_ptK!@8m7;n= zY8BR^37G+JL;{q1)zik+CwgVHRtQN{-I??qfxua@`(#342|{=Z$PJ>56XUXMaCCDs zP$ewv+eA$Fc-{9Q2ks4P*PGE=EsW|as!2z*ov1ynu+8<$t)SKvu`s2Gpp*qKfCMxP zsy%F;($e13BEW~BAd!%q0EZtJ!p&AQiVKPYBDPxrq=FzBcs~a& z_`&6^)y2t#05|K=T3pbY1)3*psODw_c@meer|`xz!;&bT#-2yu=~OhSH*@F`K@_CC ziH|m5jLl|T47V;nj%kL-DlP$E9_L>}@34l#uuEpeDw$KJ1H#4qx@(i@=gfI?fkZzf z1kwQ-Vn=WQT&&Y_5VG4urDyEGcIcV6EmPOQ-dWx5*;(D`Ia$5XD`a)I=VtX{ub9UamaSt?iXLRc$kkn8PY?(fJE}*)+ z&;|vy8^LQ84&!e%q6>bvn$~5=nUm+6YU6rc1^IA4T33F5OXXxTcHl3X>MZcFSkZew zv8kaGnLd>~T+?vH6>1C(5viX5H4}j1GWrsprXO<*R%MLol?0k}kmA;Gt-;i;HDz}18p2AySQ|hJ5yV@NGKC74 z%S{^8VAMGAbgKhVj>7>=L)B zdhG`;Oo3DH!B=CTLI(}iC%+d|S+CuZRU3dxcAxezs6D(pvR;4-l|pE1ljI0Kh^HP3 zVdPN+J*reksi)9521;lk4dtisJ|yKD*xK$0_OgDv!zm_-hRjVNGBrfwCa-!P#79(z z9P+&1>+lyaSKIJ8Pf2(Wx^;FBT=(k58^;?pB+ynp35Vc7TQkH znu*=|=4R0LVLXWmXSRlsRQ9|8{gvn4LH|S|lqj_J4Fj6=8-bFLKE{s;CAUt^vn1uy zOx1cOfl{DSkE3H;SZQsAYbj)QaHBB{8;tGX2952{aCF%{+a1xXX{SXPwys)4*Yiub z7H4RzQ`Ezxt$5xBM1PBQ?9A1zdP~1ihtXezg`(joDo4GGH3~^Z>7Z!Xs`s&g-*2dA zS^PMQ1`9eCeTA6AbQMqI4v(UMI5}9FD7ip{zFx2FDb18zw832{Ik*doUvRjAi-b@7Q~zliP$7-3Lv2Au)5bEXn8f5i3bUT-2!?i!7e_-RGIGY#5Q!?c+7!zm*jao) zy%*mACW5A6C!*u(1(?0zBjT(3ig*~_(>mI|f;->S`5_2}ap6TOpPvUTR#*rx<=n!7 z`UV$95%wT$(!~l(C`x9+0z$E97`R9!XK{;c$yos8&+rh*-vPN7;)zQNL5Dz{gKyt` zXYC@`o&k-%=+v>=<*lf;S%=;TYtdRzgUL{fI%yYgrQV=1ccM1HHAFZmM<{gx724;N zy$))m5E?ic)yC7wgz0Fh>uh7P*u2q)4I+ZteWQtpNPE@uzKVtf<#S-8zV(2IvR+Gz zg(0kq-`;6>p4!9+eKX|vZsEnBrNfs@$5d=-;2yX#T)zd)<8jS+Bt(r4#ko5EhyYv# zdoU5tYK6i0OaguPJGDz|a3CXYj>fve+gfL(R56Ju`&4_xd7F>ha!#E(0wh#)(VjmDoM>P>>N;^H01iAD;8v%kuJ_yI|LnrGL z>W|WkvehOh#0%oYhpAKVL1g%?K*cURpQy2xkhZ!TASi}z`$$i?oYLSMxI@N} zXj!}FjA491vSwM_28D*>Lny?Rkc+!jd^( zeh_Uj?o^c}QL=t`Fv0*VMRcbQ5?EeA1y-RMA-oh$5e9^wU~$3Cdj45!+uF9fRp>Op zx$Qh{wD&tkWM8SMhfN^RG~Q=iU3j0-ww^Jh7o4x{0(#YwUYojCOrcOrG?1bFoCoCTqL--v)aF`h@37E41?T3yA+ea0rY zUUA+&n#c)5;l*Fz4ym#supL;7uoD&A8@LB9lIB_5;V+@c#P%Vv4|#raSS&;ns#05s z1;6Z9XekCof5NZ62&ZDXg!-gECH1mD?a$zS#h>-(@H^q}@#pbd_4oP<_?<-Geg1yw zJB9iI|De>TgX#4d|E}~YIbE4ePFIrPJ*|%mBAk{kH6;81pm~w7Qxh$u?Hw_uzzC_^ zE2#Ss5<|=t5s>>M`@_ZxY+$H=NJ^2T@W&RNB?u-emvF#8p*SIe7^W0#M#fJ;bTDk9 zJrYxpisKUV3IfU^%(8umOQ&1)jmv)hOcmq&7ltsp_iGx+*8$OmIE&|w+Qq)nZY2s=_1vq?3By}m}8BIPv z$FW4{ehf7iz{*-d%C>`G#+=pNzZ=*in?RdPq|2+Qh@vuR4|{OLQ6lWkKn~L z;*e;EjDYQ23eP|a*jKFZOys^`V&m4ZZO%>+s*OSOa-!N8B&tZb2Z3&VpoKB2T^@5d zJCnDKZ8wouQ|llq$gE#XWmdcTj1kTDT-o|+B4y625WrrFXGbiD#X0zUVREEL6RK}nY7kXyPgU9gdFlhJ5w^%QD+dSSp-pk#A#u7v9m{R+S8&^e^e0%n!eTdF z`&I%@YNAA~0Nk-esMRgHW*6&ZSs_Ad{r+U?8a= zTg>f^gj zMKXJ+Z>l85+c#AoXM8_1?uzCz4NPH=3)#F`$g6MOtlNNb!(FEi5R|4=xnm-x4D$n; zK*y3TRf7{I=c07I77-cdKETx_9mFLVz?v;NoVv|dNmN`rd(Kd9+wwXwLYu#RVAn{LR5+4>S)MgONoHF+9ApDQ`ewkK0Vq zF=2*2t9xif>I{rAz#PP3Mq#pvG=6dyNc}E4q&N_@GKd42{CYn5$lzR(tnD%?Jc2~- z%KPbF(1C!u#V^jl7c_Q zYTI5?&ts-<6R(S9Ey+c&d>Rc(gc^ltTxRqjU``3o^56p_DBMuoMJRK|hv88i@)2_{qd?8X3>+U7=DsVM#LIrW8Gw>`7vUpR z@Q?LL+@SGFLGhag?tzO!=s#`mp~6Pu7cuvX&v4J{f3vV%wwnwwTu4% zuVNzcAgcZzui2QJc5?KR0nG*RoZ#d z0Mi-P5cazqAcCU}W*>%^$ceoeK6c+LX-%?Ku*DPgr}pEW`XLl)4EJt!u4v<3vH|$@ zFl`-1+e_RHat@PTVB#bKF$ZaUWP^;%#S6dD+hJG{W-qx6X0)0ohoDVj9TD<-$dBL8 z;&mLvUv!YAMUhOKB3{s~-iqpM@N_CUGS8Pk?ifuDM?T7BQs^-0fe}QoPU2DwEOop! z$JNS8Yp7^z?iS?86-&+Obt1>{Z{ zN=KYvAL-zWybj>NcSTq2SEEIvA=*1c);r5AC>Do%KbVS z=7<)w!@Dss#%l)}osAO%>3JvMNKq{d7|^nlovlcRE2AwH4CrT4Std-5;(&30)1P8*=hfcOirQ^2Ckx_Ctn8=bMsLq79tuqG0E-o z*~DhIHbM(S84<`VK98g?AKwihFCAf6PJ;>E4_0UHM4~+uI zvqGs{DpV#B?Q?M3T2JBCz{L$Xi#t4xB2}3I_cF`ePK`a{U7#{$JbPM)c`V(K2F|aq|WD1R!&L_1=CKO~bp)lYuW~$hNv~ z(8y*`S!dRrAU~xiE9xugzWaWYp}C3|vFki7)zRf!+8Q7Dj3h!KdJ%U>B48%;b2SJ> z`fVnpzC~>YJJRAHzVV9nG3zQ1?@UFR3m=U`XwgJUMK-T>;w{>C5m z0%P;cm$_VOC)aWR7lx1Nez$vkWZ58YS$SWeE*k-}4@t~1bSx1c8RCyPAymhBK3_mQlQ=E-4>`Wi-4f5{?WXil=Em@jhH5-Q9&tk_egVrv8Uz{N=F zS=`|tphyYTzbA_a>wJNcXt0h2<1kO+z=#N!*DLE2j0Mw*d)d}eU=VRNdxLneyh)?M zli8aY{{YBd^6c@&RMx&A?UHwo_GxLK!5oMD!{}f0-zbq}9Wy?nj$;8!=Nn>opvsH& zOvss3Q$Gm0%OOji^3{QMG|MJCfBN z&rtJ;f14ZuB7P`3jA`?I38@t?&q$q45@D&l#f>R=%sWjo8+F|G_c`g?SUkw$?JVBG z;)hw>&*IH2a@r7;au{vjBw3KC44Wos{x2m0Zr?4u;I5h39(x0i@jcuA>sp3gpDou>wBK@0Q0!?fy)EHYbsS7Y>FxM1zY zYh#q*#oQpxCxq?&|6q_RW}7H7)2^oHcQSb(#!r9LC`CNTMvU+Q`A&()TQFZkMRaQ# z>LRx97Ho^_oKvf%n&_*31x0^oYpetO3_AUH4xS(?(Z79&8p>xG0Fva90ZB@sD^3GkyP=BPDSR(#TpP(}FehxtYO|eNsOnG9 zID*bH8fDLa9u=Z9tnipjBT+K^5OBxtFNr&dU!II0%tFdwoa`XaXd`FELY(Z~X`GBB zFj9u`3fP=yeQW~i_@fV;%lt%AE320<68~JGh|w&0Drs(Jf1kdGvn1xQ_QH;FQDybF z_|YMnZ=x1gp5m#lKAtUKf-uurn1a^7W`}vO9`ZYqWCNjmoOzKL)!(xi+V@{a+Z54$ z6czqOjboMEx#U=*WFbS@2Ianvv)I=y)R3>-7kNxr4AE493if<6Hp2lIkMxV-HPYu% z0Rmuy0L3$`Vc|4sAhhO}m=ToyVL@#bsU>X?%-`UfgxBIy3xCJ3RmYz)xcF0s)zQBd zn1c2{mk;uT89iCu!`dwABjdro^vhm;(rcxe*S^ zw8D)XWu+_$U56?jkd$v2b`j&YmU zfqcU@9{hqn@l59i^w_nJA3v@h0uWv2EjR9c25ze?_v>hh9r+`U8L2*e6Y;YTvuZP0 z<{wcTE3_$xeuOxo2VjuC3J1+89II7OuVk*#;5N}U>K4RWSAUMrM%bD{N7$Np%fz*& z^>L;;1^APFJ9Eznag3g47MGTEdh19GlD2@(Wc>nb!fT=@#1A5V)Ls@}V?l;f-(o@X z(Eie2u|}BsxHGpvX^ef9qM61>X;P#sW$bq=lgMO+1I5@QqO14dc443L-U}O*-!*U# zTqNkTxI+foG8RQF zM0Nyms1?vJutu~>ju$)HA(hfWPY!)*=kK|#Fe ee^qnltur@fW@p@)cg%dyD9#_BnV$ckvG9MW6r9=s diff --git a/NodeRed/dbus-fzsonick-48tl/ext/velib_python/ve_utils.py b/NodeRed/dbus-fzsonick-48tl/ext/velib_python/ve_utils.py deleted file mode 100644 index f5a2f85a0..000000000 --- a/NodeRed/dbus-fzsonick-48tl/ext/velib_python/ve_utils.py +++ /dev/null @@ -1,276 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -import sys -from traceback import print_exc -from os import _exit as os_exit -from os import statvfs -from subprocess import check_output, CalledProcessError -import logging -import dbus -logger = logging.getLogger(__name__) - -VEDBUS_INVALID = dbus.Array([], signature=dbus.Signature('i'), variant_level=1) - -class NoVrmPortalIdError(Exception): - pass - -# Use this function to make sure the code quits on an unexpected exception. Make sure to use it -# when using GLib.idle_add and also GLib.timeout_add. -# Without this, the code will just keep running, since GLib does not stop the mainloop on an -# exception. -# Example: GLib.idle_add(exit_on_error, myfunc, arg1, arg2) -def exit_on_error(func, *args, **kwargs): - try: - return func(*args, **kwargs) - except: - try: - print ('exit_on_error: there was an exception. Printing stacktrace will be tried and then exit') - print_exc() - except: - pass - - # sys.exit() is not used, since that throws an exception, which does not lead to a program - # halt when used in a dbus callback, see connection.py in the Python/Dbus libraries, line 230. - os_exit(1) - - -__vrm_portal_id = None -def get_vrm_portal_id(): - # The original definition of the VRM Portal ID is that it is the mac - # address of the onboard- ethernet port (eth0), stripped from its colons - # (:) and lower case. This may however differ between platforms. On Venus - # the task is therefore deferred to /sbin/get-unique-id so that a - # platform specific method can be easily defined. - # - # If /sbin/get-unique-id does not exist, then use the ethernet address - # of eth0. This also handles the case where velib_python is used as a - # package install on a Raspberry Pi. - # - # On a Linux host where the network interface may not be eth0, you can set - # the VRM_IFACE environment variable to the correct name. - - global __vrm_portal_id - - if __vrm_portal_id: - return __vrm_portal_id - - portal_id = None - - # First try the method that works if we don't have a data partition. This - # will fail when the current user is not root. - try: - portal_id = check_output("/sbin/get-unique-id").decode("utf-8", "ignore").strip() - if not portal_id: - raise NoVrmPortalIdError("get-unique-id returned blank") - __vrm_portal_id = portal_id - return portal_id - except CalledProcessError: - # get-unique-id returned non-zero - raise NoVrmPortalIdError("get-unique-id returned non-zero") - except OSError: - # File doesn't exist, use fallback - pass - - # Fall back to getting our id using a syscall. Assume we are on linux. - # Allow the user to override what interface is used using an environment - # variable. - import fcntl, socket, struct, os - - iface = os.environ.get('VRM_IFACE', 'eth0').encode('ascii') - s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) - try: - info = fcntl.ioctl(s.fileno(), 0x8927, struct.pack('256s', iface[:15])) - except IOError: - raise NoVrmPortalIdError("ioctl failed for eth0") - - __vrm_portal_id = info[18:24].hex() - return __vrm_portal_id - - -# See VE.Can registers - public.docx for definition of this conversion -def convert_vreg_version_to_readable(version): - def str_to_arr(x, length): - a = [] - for i in range(0, len(x), length): - a.append(x[i:i+length]) - return a - - x = "%x" % version - x = x.upper() - - if len(x) == 5 or len(x) == 3 or len(x) == 1: - x = '0' + x - - a = str_to_arr(x, 2); - - # remove the first 00 if there are three bytes and it is 00 - if len(a) == 3 and a[0] == '00': - a.remove(0); - - # if we have two or three bytes now, and the first character is a 0, remove it - if len(a) >= 2 and a[0][0:1] == '0': - a[0] = a[0][1]; - - result = '' - for item in a: - result += ('.' if result != '' else '') + item - - - result = 'v' + result - - return result - - -def get_free_space(path): - result = -1 - - try: - s = statvfs(path) - result = s.f_frsize * s.f_bavail # Number of free bytes that ordinary users - except Exception as ex: - logger.info("Error while retrieving free space for path %s: %s" % (path, ex)) - - return result - - -def _get_sysfs_machine_name(): - try: - with open('/sys/firmware/devicetree/base/model', 'r') as f: - return f.read().rstrip('\x00') - except IOError: - pass - - return None - -# Returns None if it cannot find a machine name. Otherwise returns the string -# containing the name -def get_machine_name(): - # First try calling the venus utility script - try: - return check_output("/usr/bin/product-name").strip().decode('UTF-8') - except (CalledProcessError, OSError): - pass - - # Fall back to sysfs - name = _get_sysfs_machine_name() - if name is not None: - return name - - # Fall back to venus build machine name - try: - with open('/etc/venus/machine', 'r', encoding='UTF-8') as f: - return f.read().strip() - except IOError: - pass - - return None - - -def get_product_id(): - """ Find the machine ID and return it. """ - - # First try calling the venus utility script - try: - return check_output("/usr/bin/product-id").strip().decode('UTF-8') - except (CalledProcessError, OSError): - pass - - # Fall back machine name mechanism - name = _get_sysfs_machine_name() - return { - 'Color Control GX': 'C001', - 'Venus GX': 'C002', - 'Octo GX': 'C006', - 'EasySolar-II': 'C007', - 'MultiPlus-II': 'C008', - 'Maxi GX': 'C009', - 'Cerbo GX': 'C00A' - }.get(name, 'C003') # C003 is Generic - - -# Returns False if it cannot open the file. Otherwise returns its rstripped contents -def read_file(path): - content = False - - try: - with open(path, 'r') as f: - content = f.read().rstrip() - except Exception as ex: - logger.debug("Error while reading %s: %s" % (path, ex)) - - return content - - -def wrap_dbus_value(value): - if value is None: - return VEDBUS_INVALID - if isinstance(value, float): - return dbus.Double(value, variant_level=1) - if isinstance(value, bool): - return dbus.Boolean(value, variant_level=1) - if isinstance(value, int): - try: - return dbus.Int32(value, variant_level=1) - except OverflowError: - return dbus.Int64(value, variant_level=1) - if isinstance(value, str): - return dbus.String(value, variant_level=1) - if isinstance(value, list): - if len(value) == 0: - # If the list is empty we cannot infer the type of the contents. So assume unsigned integer. - # A (signed) integer is dangerous, because an empty list of signed integers is used to encode - # an invalid value. - return dbus.Array([], signature=dbus.Signature('u'), variant_level=1) - return dbus.Array([wrap_dbus_value(x) for x in value], variant_level=1) - if isinstance(value, dict): - # Wrapping the keys of the dictionary causes D-Bus errors like: - # 'arguments to dbus_message_iter_open_container() were incorrect, - # assertion "(type == DBUS_TYPE_ARRAY && contained_signature && - # *contained_signature == DBUS_DICT_ENTRY_BEGIN_CHAR) || (contained_signature == NULL || - # _dbus_check_is_valid_signature (contained_signature))" failed in file ...' - return dbus.Dictionary({(k, wrap_dbus_value(v)) for k, v in value.items()}, variant_level=1) - return value - - -dbus_int_types = (dbus.Int32, dbus.UInt32, dbus.Byte, dbus.Int16, dbus.UInt16, dbus.UInt32, dbus.Int64, dbus.UInt64) - - -def unwrap_dbus_value(val): - """Converts D-Bus values back to the original type. For example if val is of type DBus.Double, - a float will be returned.""" - if isinstance(val, dbus_int_types): - return int(val) - if isinstance(val, dbus.Double): - return float(val) - if isinstance(val, dbus.Array): - v = [unwrap_dbus_value(x) for x in val] - return None if len(v) == 0 else v - if isinstance(val, (dbus.Signature, dbus.String)): - return str(val) - # Python has no byte type, so we convert to an integer. - if isinstance(val, dbus.Byte): - return int(val) - if isinstance(val, dbus.ByteArray): - return "".join([bytes(x) for x in val]) - if isinstance(val, (list, tuple)): - return [unwrap_dbus_value(x) for x in val] - if isinstance(val, (dbus.Dictionary, dict)): - # Do not unwrap the keys, see comment in wrap_dbus_value - return dict([(x, unwrap_dbus_value(y)) for x, y in val.items()]) - if isinstance(val, dbus.Boolean): - return bool(val) - return val - -# When supported, only name owner changes for the the given namespace are reported. This -# prevents spending cpu time at irrelevant changes, like scripts accessing the bus temporarily. -def add_name_owner_changed_receiver(dbus, name_owner_changed, namespace="com.victronenergy"): - # support for arg0namespace is submitted upstream, but not included at the time of - # writing, Venus OS does support it, so try if it works. - if namespace is None: - dbus.add_signal_receiver(name_owner_changed, signal_name='NameOwnerChanged') - else: - try: - dbus.add_signal_receiver(name_owner_changed, - signal_name='NameOwnerChanged', arg0namespace=namespace) - except TypeError: - dbus.add_signal_receiver(name_owner_changed, signal_name='NameOwnerChanged') diff --git a/NodeRed/dbus-fzsonick-48tl/ext/velib_python/vedbus.py b/NodeRed/dbus-fzsonick-48tl/ext/velib_python/vedbus.py deleted file mode 100644 index 6171a2101..000000000 --- a/NodeRed/dbus-fzsonick-48tl/ext/velib_python/vedbus.py +++ /dev/null @@ -1,614 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- - -import dbus.service -import logging -import traceback -import os -import weakref -from collections import defaultdict -from ve_utils import wrap_dbus_value, unwrap_dbus_value - -# vedbus contains three classes: -# VeDbusItemImport -> use this to read data from the dbus, ie import -# VeDbusItemExport -> use this to export data to the dbus (one value) -# VeDbusService -> use that to create a service and export several values to the dbus - -# Code for VeDbusItemImport is copied from busitem.py and thereafter modified. -# All projects that used busitem.py need to migrate to this package. And some -# projects used to define there own equivalent of VeDbusItemExport. Better to -# use VeDbusItemExport, or even better the VeDbusService class that does it all for you. - -# TODOS -# 1 check for datatypes, it works now, but not sure if all is compliant with -# com.victronenergy.BusItem interface definition. See also the files in -# tests_and_examples. And see 'if type(v) == dbus.Byte:' on line 102. Perhaps -# something similar should also be done in VeDbusBusItemExport? -# 2 Shouldn't VeDbusBusItemExport inherit dbus.service.Object? -# 7 Make hard rules for services exporting data to the D-Bus, in order to make tracking -# changes possible. Does everybody first invalidate its data before leaving the bus? -# And what about before taking one object away from the bus, instead of taking the -# whole service offline? -# They should! And after taking one value away, do we need to know that someone left -# the bus? Or we just keep that value in invalidated for ever? Result is that we can't -# see the difference anymore between an invalidated value and a value that was first on -# the bus and later not anymore. See comments above VeDbusItemImport as well. -# 9 there are probably more todos in the code below. - -# Some thoughts with regards to the data types: -# -# Text from: http://dbus.freedesktop.org/doc/dbus-python/doc/tutorial.html#data-types -# --- -# Variants are represented by setting the variant_level keyword argument in the -# constructor of any D-Bus data type to a value greater than 0 (variant_level 1 -# means a variant containing some other data type, variant_level 2 means a variant -# containing a variant containing some other data type, and so on). If a non-variant -# is passed as an argument but introspection indicates that a variant is expected, -# it'll automatically be wrapped in a variant. -# --- -# -# Also the different dbus datatypes, such as dbus.Int32, and dbus.UInt32 are a subclass -# of Python int. dbus.String is a subclass of Python standard class unicode, etcetera -# -# So all together that explains why we don't need to explicitly convert back and forth -# between the dbus datatypes and the standard python datatypes. Note that all datatypes -# in python are objects. Even an int is an object. - -# The signature of a variant is 'v'. - -# Export ourselves as a D-Bus service. -class VeDbusService(object): - def __init__(self, servicename, bus=None): - # dict containing the VeDbusItemExport objects, with their path as the key. - self._dbusobjects = {} - self._dbusnodes = {} - self._ratelimiters = [] - self._dbusname = None - - # dict containing the onchange callbacks, for each object. Object path is the key - self._onchangecallbacks = {} - - # Connect to session bus whenever present, else use the system bus - self._dbusconn = bus or (dbus.SessionBus() if 'DBUS_SESSION_BUS_ADDRESS' in os.environ else dbus.SystemBus()) - - # make the dbus connection available to outside, could make this a true property instead, but ach.. - self.dbusconn = self._dbusconn - - # Register ourselves on the dbus, trigger an error if already in use (do_not_queue) - self._dbusname = dbus.service.BusName(servicename, self._dbusconn, do_not_queue=True) - - # Add the root item that will return all items as a tree - self._dbusnodes['/'] = VeDbusRootExport(self._dbusconn, '/', self) - - logging.info("registered ourselves on D-Bus as %s" % servicename) - - # To force immediate deregistering of this dbus service and all its object paths, explicitly - # call __del__(). - def __del__(self): - for node in list(self._dbusnodes.values()): - node.__del__() - self._dbusnodes.clear() - for item in list(self._dbusobjects.values()): - item.__del__() - self._dbusobjects.clear() - if self._dbusname: - self._dbusname.__del__() # Forces call to self._bus.release_name(self._name), see source code - self._dbusname = None - - def get_name(self): - return self._dbusname.get_name() - - # @param callbackonchange function that will be called when this value is changed. First parameter will - # be the path of the object, second the new value. This callback should return - # True to accept the change, False to reject it. - def add_path(self, path, value, description="", writeable=False, - onchangecallback=None, gettextcallback=None, valuetype=None, itemtype=None): - - if onchangecallback is not None: - self._onchangecallbacks[path] = onchangecallback - - itemtype = itemtype or VeDbusItemExport - item = itemtype(self._dbusconn, path, value, description, writeable, - self._value_changed, gettextcallback, deletecallback=self._item_deleted, valuetype=valuetype) - - spl = path.split('/') - for i in range(2, len(spl)): - subPath = '/'.join(spl[:i]) - if subPath not in self._dbusnodes and subPath not in self._dbusobjects: - self._dbusnodes[subPath] = VeDbusTreeExport(self._dbusconn, subPath, self) - self._dbusobjects[path] = item - logging.debug('added %s with start value %s. Writeable is %s' % (path, value, writeable)) - - # Add the mandatory paths, as per victron dbus api doc - def add_mandatory_paths(self, processname, processversion, connection, - deviceinstance, productid, productname, firmwareversion, hardwareversion, connected): - self.add_path('/Mgmt/ProcessName', processname) - self.add_path('/Mgmt/ProcessVersion', processversion) - self.add_path('/Mgmt/Connection', connection) - - # Create rest of the mandatory objects - self.add_path('/DeviceInstance', deviceinstance) - self.add_path('/ProductId', productid) - self.add_path('/ProductName', productname) - self.add_path('/FirmwareVersion', firmwareversion) - self.add_path('/HardwareVersion', hardwareversion) - self.add_path('/Connected', connected) - - # Callback function that is called from the VeDbusItemExport objects when a value changes. This function - # maps the change-request to the onchangecallback given to us for this specific path. - def _value_changed(self, path, newvalue): - if path not in self._onchangecallbacks: - return True - - return self._onchangecallbacks[path](path, newvalue) - - def _item_deleted(self, path): - self._dbusobjects.pop(path) - for np in list(self._dbusnodes.keys()): - if np != '/': - for ip in self._dbusobjects: - if ip.startswith(np + '/'): - break - else: - self._dbusnodes[np].__del__() - self._dbusnodes.pop(np) - - def __getitem__(self, path): - return self._dbusobjects[path].local_get_value() - - def __setitem__(self, path, newvalue): - self._dbusobjects[path].local_set_value(newvalue) - - def __delitem__(self, path): - self._dbusobjects[path].__del__() # Invalidates and then removes the object path - assert path not in self._dbusobjects - - def __contains__(self, path): - return path in self._dbusobjects - - def __enter__(self): - l = ServiceContext(self) - self._ratelimiters.append(l) - return l - - def __exit__(self, *exc): - # pop off the top one and flush it. If with statements are nested - # then each exit flushes its own part. - if self._ratelimiters: - self._ratelimiters.pop().flush() - -class ServiceContext(object): - def __init__(self, parent): - self.parent = parent - self.changes = {} - - def __getitem__(self, path): - return self.parent[path] - - def __setitem__(self, path, newvalue): - c = self.parent._dbusobjects[path]._local_set_value(newvalue) - if c is not None: - self.changes[path] = c - - def flush(self): - if self.changes: - self.parent._dbusnodes['/'].ItemsChanged(self.changes) - -class TrackerDict(defaultdict): - """ Same as defaultdict, but passes the key to default_factory. """ - def __missing__(self, key): - self[key] = x = self.default_factory(key) - return x - -class VeDbusRootTracker(object): - """ This tracks the root of a dbus path and listens for PropertiesChanged - signals. When a signal arrives, parse it and unpack the key/value changes - into traditional events, then pass it to the original eventCallback - method. """ - def __init__(self, bus, serviceName): - self.importers = defaultdict(weakref.WeakSet) - self.serviceName = serviceName - self._match = bus.get_object(serviceName, '/', introspect=False).connect_to_signal( - "ItemsChanged", weak_functor(self._items_changed_handler)) - - def __del__(self): - self._match.remove() - self._match = None - - def add(self, i): - self.importers[i.path].add(i) - - def _items_changed_handler(self, items): - if not isinstance(items, dict): - return - - for path, changes in items.items(): - try: - v = changes['Value'] - except KeyError: - continue - - try: - t = changes['Text'] - except KeyError: - t = str(unwrap_dbus_value(v)) - - for i in self.importers.get(path, ()): - i._properties_changed_handler({'Value': v, 'Text': t}) - -""" -Importing basics: - - If when we power up, the D-Bus service does not exist, or it does exist and the path does not - yet exist, still subscribe to a signal: as soon as it comes online it will send a signal with its - initial value, which VeDbusItemImport will receive and use to update local cache. And, when set, - call the eventCallback. - - If when we power up, save it - - When using get_value, know that there is no difference between services (or object paths) that don't - exist and paths that are invalid (= empty array, see above). Both will return None. In case you do - really want to know ifa path exists or not, use the exists property. - - When a D-Bus service leaves the D-Bus, it will first invalidate all its values, and send signals - with that update, and only then leave the D-Bus. (or do we need to subscribe to the NameOwnerChanged- - signal!?!) To be discussed and make sure. Not really urgent, since all existing code that uses this - class already subscribes to the NameOwnerChanged signal, and subsequently removes instances of this - class. - -Read when using this class: -Note that when a service leaves that D-Bus without invalidating all its exported objects first, for -example because it is killed, VeDbusItemImport doesn't have a clue. So when using VeDbusItemImport, -make sure to also subscribe to the NamerOwnerChanged signal on bus-level. Or just use dbusmonitor, -because that takes care of all of that for you. -""" -class VeDbusItemImport(object): - def __new__(cls, bus, serviceName, path, eventCallback=None, createsignal=True): - instance = object.__new__(cls) - - # If signal tracking should be done, also add to root tracker - if createsignal: - if "_roots" not in cls.__dict__: - cls._roots = TrackerDict(lambda k: VeDbusRootTracker(bus, k)) - - return instance - - ## Constructor - # @param bus the bus-object (SESSION or SYSTEM). - # @param serviceName the dbus-service-name (string), for example 'com.victronenergy.battery.ttyO1' - # @param path the object-path, for example '/Dc/V' - # @param eventCallback function that you want to be called on a value change - # @param createSignal only set this to False if you use this function to one time read a value. When - # leaving it to True, make sure to also subscribe to the NameOwnerChanged signal - # elsewhere. See also note some 15 lines up. - def __init__(self, bus, serviceName, path, eventCallback=None, createsignal=True): - # TODO: is it necessary to store _serviceName and _path? Isn't it - # stored in the bus_getobjectsomewhere? - self._serviceName = serviceName - self._path = path - self._match = None - # TODO: _proxy is being used in settingsdevice.py, make a getter for that - self._proxy = bus.get_object(serviceName, path, introspect=False) - self.eventCallback = eventCallback - - assert eventCallback is None or createsignal == True - if createsignal: - self._match = self._proxy.connect_to_signal( - "PropertiesChanged", weak_functor(self._properties_changed_handler)) - self._roots[serviceName].add(self) - - # store the current value in _cachedvalue. When it doesn't exists set _cachedvalue to - # None, same as when a value is invalid - self._cachedvalue = None - try: - v = self._proxy.GetValue() - except dbus.exceptions.DBusException: - pass - else: - self._cachedvalue = unwrap_dbus_value(v) - - def __del__(self): - if self._match is not None: - self._match.remove() - self._match = None - self._proxy = None - - def _refreshcachedvalue(self): - self._cachedvalue = unwrap_dbus_value(self._proxy.GetValue()) - - ## Returns the path as a string, for example '/AC/L1/V' - @property - def path(self): - return self._path - - ## Returns the dbus service name as a string, for example com.victronenergy.vebus.ttyO1 - @property - def serviceName(self): - return self._serviceName - - ## Returns the value of the dbus-item. - # the type will be a dbus variant, for example dbus.Int32(0, variant_level=1) - # this is not a property to keep the name consistant with the com.victronenergy.busitem interface - # returns None when the property is invalid - def get_value(self): - return self._cachedvalue - - ## Writes a new value to the dbus-item - def set_value(self, newvalue): - r = self._proxy.SetValue(wrap_dbus_value(newvalue)) - - # instead of just saving the value, go to the dbus and get it. So we have the right type etc. - if r == 0: - self._refreshcachedvalue() - - return r - - ## Resets the item to its default value - def set_default(self): - self._proxy.SetDefault() - self._refreshcachedvalue() - - ## Returns the text representation of the value. - # For example when the value is an enum/int GetText might return the string - # belonging to that enum value. Another example, for a voltage, GetValue - # would return a float, 12.0Volt, and GetText could return 12 VDC. - # - # Note that this depends on how the dbus-producer has implemented this. - def get_text(self): - return self._proxy.GetText() - - ## Returns true of object path exists, and false if it doesn't - @property - def exists(self): - # TODO: do some real check instead of this crazy thing. - r = False - try: - r = self._proxy.GetValue() - r = True - except dbus.exceptions.DBusException: - pass - - return r - - ## callback for the trigger-event. - # @param eventCallback the event-callback-function. - @property - def eventCallback(self): - return self._eventCallback - - @eventCallback.setter - def eventCallback(self, eventCallback): - self._eventCallback = eventCallback - - ## Is called when the value of the imported bus-item changes. - # Stores the new value in our local cache, and calls the eventCallback, if set. - def _properties_changed_handler(self, changes): - if "Value" in changes: - changes['Value'] = unwrap_dbus_value(changes['Value']) - self._cachedvalue = changes['Value'] - if self._eventCallback: - # The reason behind this try/except is to prevent errors silently ending up the an error - # handler in the dbus code. - try: - self._eventCallback(self._serviceName, self._path, changes) - except: - traceback.print_exc() - os._exit(1) # sys.exit() is not used, since that also throws an exception - - -class VeDbusTreeExport(dbus.service.Object): - def __init__(self, bus, objectPath, service): - dbus.service.Object.__init__(self, bus, objectPath) - self._service = service - logging.debug("VeDbusTreeExport %s has been created" % objectPath) - - def __del__(self): - # self._get_path() will raise an exception when retrieved after the call to .remove_from_connection, - # so we need a copy. - path = self._get_path() - if path is None: - return - self.remove_from_connection() - logging.debug("VeDbusTreeExport %s has been removed" % path) - - def _get_path(self): - if len(self._locations) == 0: - return None - return self._locations[0][1] - - def _get_value_handler(self, path, get_text=False): - logging.debug("_get_value_handler called for %s" % path) - r = {} - px = path - if not px.endswith('/'): - px += '/' - for p, item in self._service._dbusobjects.items(): - if p.startswith(px): - v = item.GetText() if get_text else wrap_dbus_value(item.local_get_value()) - r[p[len(px):]] = v - logging.debug(r) - return r - - @dbus.service.method('com.victronenergy.BusItem', out_signature='v') - def GetValue(self): - value = self._get_value_handler(self._get_path()) - return dbus.Dictionary(value, signature=dbus.Signature('sv'), variant_level=1) - - @dbus.service.method('com.victronenergy.BusItem', out_signature='v') - def GetText(self): - return self._get_value_handler(self._get_path(), True) - - def local_get_value(self): - return self._get_value_handler(self.path) - -class VeDbusRootExport(VeDbusTreeExport): - @dbus.service.signal('com.victronenergy.BusItem', signature='a{sa{sv}}') - def ItemsChanged(self, changes): - pass - - @dbus.service.method('com.victronenergy.BusItem', out_signature='a{sa{sv}}') - def GetItems(self): - return { - path: { - 'Value': wrap_dbus_value(item.local_get_value()), - 'Text': item.GetText() } - for path, item in self._service._dbusobjects.items() - } - - -class VeDbusItemExport(dbus.service.Object): - ## Constructor of VeDbusItemExport - # - # Use this object to export (publish), values on the dbus - # Creates the dbus-object under the given dbus-service-name. - # @param bus The dbus object. - # @param objectPath The dbus-object-path. - # @param value Value to initialize ourselves with, defaults to None which means Invalid - # @param description String containing a description. Can be called over the dbus with GetDescription() - # @param writeable what would this do!? :). - # @param callback Function that will be called when someone else changes the value of this VeBusItem - # over the dbus. First parameter passed to callback will be our path, second the new - # value. This callback should return True to accept the change, False to reject it. - def __init__(self, bus, objectPath, value=None, description=None, writeable=False, - onchangecallback=None, gettextcallback=None, deletecallback=None, - valuetype=None): - dbus.service.Object.__init__(self, bus, objectPath) - self._onchangecallback = onchangecallback - self._gettextcallback = gettextcallback - self._value = value - self._description = description - self._writeable = writeable - self._deletecallback = deletecallback - self._type = valuetype - - # To force immediate deregistering of this dbus object, explicitly call __del__(). - def __del__(self): - # self._get_path() will raise an exception when retrieved after the - # call to .remove_from_connection, so we need a copy. - path = self._get_path() - if path == None: - return - if self._deletecallback is not None: - self._deletecallback(path) - self.remove_from_connection() - logging.debug("VeDbusItemExport %s has been removed" % path) - - def _get_path(self): - if len(self._locations) == 0: - return None - return self._locations[0][1] - - ## Sets the value. And in case the value is different from what it was, a signal - # will be emitted to the dbus. This function is to be used in the python code that - # is using this class to export values to the dbus. - # set value to None to indicate that it is Invalid - def local_set_value(self, newvalue): - changes = self._local_set_value(newvalue) - if changes is not None: - self.PropertiesChanged(changes) - - def _local_set_value(self, newvalue): - if self._value == newvalue: - return None - - self._value = newvalue - return { - 'Value': wrap_dbus_value(newvalue), - 'Text': self.GetText() - } - - def local_get_value(self): - return self._value - - # ==== ALL FUNCTIONS BELOW THIS LINE WILL BE CALLED BY OTHER PROCESSES OVER THE DBUS ==== - - ## Dbus exported method SetValue - # Function is called over the D-Bus by other process. It will first check (via callback) if new - # value is accepted. And it is, stores it and emits a changed-signal. - # @param value The new value. - # @return completion-code When successful a 0 is return, and when not a -1 is returned. - @dbus.service.method('com.victronenergy.BusItem', in_signature='v', out_signature='i') - def SetValue(self, newvalue): - if not self._writeable: - return 1 # NOT OK - - newvalue = unwrap_dbus_value(newvalue) - - # If value type is enforced, cast it. If the type can be coerced - # python will do it for us. This allows ints to become floats, - # or bools to become ints. Additionally also allow None, so that - # a path may be invalidated. - if self._type is not None and newvalue is not None: - try: - newvalue = self._type(newvalue) - except (ValueError, TypeError): - return 1 # NOT OK - - if newvalue == self._value: - return 0 # OK - - # call the callback given to us, and check if new value is OK. - if (self._onchangecallback is None or - (self._onchangecallback is not None and self._onchangecallback(self.__dbus_object_path__, newvalue))): - - self.local_set_value(newvalue) - return 0 # OK - - return 2 # NOT OK - - ## Dbus exported method GetDescription - # - # Returns the a description. - # @param language A language code (e.g. ISO 639-1 en-US). - # @param length Lenght of the language string. - # @return description - @dbus.service.method('com.victronenergy.BusItem', in_signature='si', out_signature='s') - def GetDescription(self, language, length): - return self._description if self._description is not None else 'No description given' - - ## Dbus exported method GetValue - # Returns the value. - # @return the value when valid, and otherwise an empty array - @dbus.service.method('com.victronenergy.BusItem', out_signature='v') - def GetValue(self): - return wrap_dbus_value(self._value) - - ## Dbus exported method GetText - # Returns the value as string of the dbus-object-path. - # @return text A text-value. '---' when local value is invalid - @dbus.service.method('com.victronenergy.BusItem', out_signature='s') - def GetText(self): - if self._value is None: - return '---' - - # Default conversion from dbus.Byte will get you a character (so 'T' instead of '84'), so we - # have to convert to int first. Note that if a dbus.Byte turns up here, it must have come from - # the application itself, as all data from the D-Bus should have been unwrapped by now. - if self._gettextcallback is None and type(self._value) == dbus.Byte: - return str(int(self._value)) - - if self._gettextcallback is None and self.__dbus_object_path__ == '/ProductId': - return "0x%X" % self._value - - if self._gettextcallback is None: - return str(self._value) - - return self._gettextcallback(self.__dbus_object_path__, self._value) - - ## The signal that indicates that the value has changed. - # Other processes connected to this BusItem object will have subscribed to the - # event when they want to track our state. - @dbus.service.signal('com.victronenergy.BusItem', signature='a{sv}') - def PropertiesChanged(self, changes): - pass - -## This class behaves like a regular reference to a class method (eg. self.foo), but keeps a weak reference -## to the object which method is to be called. -## Use this object to break circular references. -class weak_functor: - def __init__(self, f): - self._r = weakref.ref(f.__self__) - self._f = weakref.ref(f.__func__) - - def __call__(self, *args, **kargs): - r = self._r() - f = self._f() - if r == None or f == None: - return - f(r, *args, **kargs) diff --git a/NodeRed/dbus-fzsonick-48tl/start.sh b/NodeRed/dbus-fzsonick-48tl/start.sh deleted file mode 100755 index d818ffc57..000000000 --- a/NodeRed/dbus-fzsonick-48tl/start.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -. /opt/victronenergy/serial-starter/run-service.sh - -app=/opt/victronenergy/dbus-fzsonick-48tl/dbus-fzsonick-48tl.py -args="$tty" -start $args diff --git a/csharp/App/VrmGrabber/Controller_test.cs b/csharp/App/VrmGrabber/Controller_test.cs new file mode 100644 index 000000000..40213effd --- /dev/null +++ b/csharp/App/VrmGrabber/Controller_test.cs @@ -0,0 +1,311 @@ +using CliWrap; +using HandlebarsDotNet; +using InnovEnergy.App.VrmGrabber.Database; +using InnovEnergy.Lib.Utils; +using Microsoft.AspNetCore.Mvc; +using VrmInstallation = InnovEnergy.Lib.Victron.VictronVRM.Installation; + +namespace InnovEnergy.App.VrmGrabber; + +public record InstallationToHtmlInterface( + String Name, + String Ip, + Int64 Vrm, + String Identifier, + String Serial, + String EscapedName, + String Online, + String LastSeen, + String NumBatteries, + String BatteryVersion, + String BatteryUpdateStatus, + String ServerIp = "10.2.0.1", //TODO MAKE ME DYNAMIC + String FirmwareVersion = "AF09", //Todo automatically grab newest version? + String NodeRedFiles = "NodeRedFiles" + ); + +[Controller] +public class Controller : ControllerBase +{ + + //Todo automatically grab newest version? + private const String FirmwareVersion = "AF09"; + + + [HttpGet] + [Route("/")] + [Produces("text/html")] + public ActionResult Index() + { + const String source = @" + + +
+ + + + + + + + + + + + + + + + + {{#inst}} + {{> installations}} + {{/inst}} + +
Name This site is updated once per day!GuiVRMGrafanaIdentifierLast SeenSerial#BatteriesFirmware-VersionUpdateLast Update StatusUpload Node Red Files
+
"; + + + + const String partialSource = @"{{Name}} + {{online}} {{Ip}} + VRM + Grafana + {{Identifier}} + {{LastSeen}} + {{Serial}} + {{NumBatteries}} + {{BatteryVersion}} + ⬆️{{FirmwareVersion}} + {{BatteryUpdateStatus}} + ⬆️{{NodeRedFiles}} + "; + + var installationsInDb = Db.Installations.OrderBy(i => i.Name, StringComparer.OrdinalIgnoreCase).ToList(); + if (installationsInDb.Count == 0) return new ContentResult + { + ContentType = "text/html", + Content = "

Please wait page is still loading

" + }; + + Handlebars.RegisterTemplate("installations", partialSource); + var template = Handlebars.Compile(source); + var installsForHtml = installationsInDb.Select(i => new InstallationToHtmlInterface( + i.Name, + i.Ip, + i.Vrm, + i.Identifier, + i.Serial, + i.EscapedName, + i.Online, + DateTimeOffset.FromUnixTimeSeconds(Convert.ToInt64(i.LastSeen)).ToString(), + i.NumberOfBatteries, + i.BatteryFirmwareVersion, + i.BatteryUpdateStatus)); + + var data = new + { + inst = installsForHtml, + }; + + var result = template(data); + + return new ContentResult + { + ContentType = "text/html", + Content = result + }; + } + + + [HttpGet("UpdateBatteryFirmware/{installationIp}")] + public async Task UpdateBatteryFirmware(String installationIp) + { + //We need the DeviceName of the battery (ttyUSB?) + var pathToBattery = await Db.ExecuteBufferedAsyncCommandOnIp(installationIp, "dbus-send --system --dest=com.victronenergy.system --type=method_call --print-reply /ServiceMapping/com_victronenergy_battery_1 com.victronenergy.BusItem.GetText"); + + var split = pathToBattery.Split('"'); + var split2 = pathToBattery.Split(' '); + + if (split.Length < 2 || split2.Length < 1) + { + Console.WriteLine(pathToBattery + " Split failed "); + return "Update failed"; + } + if (split[1] == "Failed" || split2[0] == "Error") return "Update failed"; + + + + await SendNewBatteryFirmware(installationIp); + var batteryTtyName = split[1].Split(".").Last(); + var localCommand = "echo start"; + var installation = Db.Installations.First(installation => installation.Ip == installationIp); + installation.BatteryUpdateStatus = "Running"; + Db.Update(installation: installation); + var batteryIdsResult = await Db.ExecuteBufferedAsyncCommandOnIp(installationIp, $"dbus-send --system --dest=com.victronenergy.battery.{batteryTtyName} --type=method_call --print-reply / com.victronenergy.BusItem.GetText | grep -E -o '_Battery/[0-9]+/' | grep -E -o '[0-9]+'| sort -u"); + var batteryIds = batteryIdsResult.Split("\n").ToList(); + batteryIds.Pop(); + + foreach (var batteryId in batteryIds) + { + localCommand = localCommand.Append( + $" && /opt/innovenergy/scripts/upload-bms-firmware {batteryTtyName} {batteryId} /opt/innovenergy/bms-firmware/{FirmwareVersion}.bin"); + } + #pragma warning disable CS4014 + // Console.WriteLine(localCommand); + Db.ExecuteBufferedAsyncCommandOnIp(installationIp, localCommand) + .ContinueWith(async t => + { + Console.WriteLine(t.Result); + installation.BatteryUpdateStatus = "Complete"; + // installation.BatteryFirmwareVersion = FirmwareVersion; + Db.Update(installation: installation); + var vrmInst = await FindVrmInstallationByIp(installation.Ip!); + await UpdateVrmTagsToNewFirmware(installationIp); + await Db.UpdateAlarms(vrmInst); + }); + #pragma warning restore CS4014 + return "Battery update is successfully initiated, it will take around 15 minutes to complete! You can close this page now."; + } + + private static async Task UpdateVrmTagsToNewFirmware(String installationIp) + { + var vrmInstallation = await FindVrmInstallationByIp(installationIp); + var tags = await vrmInstallation.GetTags(); + + async void RemoveTag(String t) => await vrmInstallation.RemoveTags(t); + + tags.Where(tag => tag.StartsWith("FM-")) + .Do(RemoveTag); + + await vrmInstallation.AddTags("FM-" + FirmwareVersion); + } + + private static async Task FindVrmInstallationByIp(String installationIp) + { + var installationId = Db.Installations.Where(i => i.Ip == installationIp).Select(i => i.Vrm).First(); + var vrmAccount = await Db.GetVrmAccount(); + return await vrmAccount.GetInstallation(installationId!); + } + + private static async Task SendNewBatteryFirmware(String installationIp) + { + await Cli.Wrap("rsync") + .WithArguments($@"-r --relative bms-firmware/{FirmwareVersion}.bin") + .AppendArgument($@"root@{installationIp}:/opt/innovenergy") + .ExecuteAsync(); + } + // [HttpGet(nameof(GetInstallation))] + // [UnconditionalSuppressMessage("Trimming", "IL2026:Members annotated with 'RequiresUnreferencedCodeAttribute' require dynamic access otherwise can break functionality when trimming application code", Justification = "")] + // public Object GetInstallation(UInt64 serialNumber) + // { + // var instList = Db.InstallationsAndDetails.Values.ToList(); + // foreach (var detailList in instList.Select((value, index) => new { Value = value, Index = index})) + // { + // if (detailList.Value.All(detail => detail.Json["idSite"]?.GetValue() != serialNumber)) continue; + // var retour = Db.InstallationsAndDetails.Keys.ToList()[detailList.Index].Json; + // retour["details"] = JsonSerializer.Deserialize(JsonSerializer.Serialize(detailList.Value.Select(d => d.Json).ToArray())); + // return retour; + // } + // + // return new NotFoundResult(); + // } + + // remove the original ones???????? + [HttpPost("UploadNodeRedFiles/{installationIp}")] + public async Task UploadNodeRedFiles(String installationIp) + { + // Define the mapping of files to remote locations + var fileLocationMappings = new Dictionary + { + { "flows.json", "/opt/data/nodered/.node-red/" }, + { "settings-user.js", "/opt/data/nodered/.node-red/" }, + { "rc.local", "/data/" }, + { "dbus-fzsonick-48tl", "/data/"} + }; + + var nodeRedFilesFolder = Path.Combine(Directory.GetCurrentDirectory(), "NodeRedFiles"); + if (!Directory.Exists(nodeRedFilesFolder)) + { + return BadRequest("NodeRedFiles folder does not exist."); + } + + var tasks = fileLocationMappings.Select(async mapping => + { + var fileName = mapping.Key; + var remoteLocation = mapping.Value; + + var filePath = Path.Combine(nodeRedFilesFolder, fileName); + if (!System.IO.File.Exists(filePath)) + { + throw new FileNotFoundException($"File {fileName} not found in {nodeRedFilesFolder}."); + } + + // Execute the SCP command to upload the file + await Cli.Wrap("rsync") + .WithArguments($@"-r {filePath}") + .AppendArgument($@"root@{installationIp}:{remoteLocation}") + .ExecuteAsync(); + }); + + try + { + await Task.WhenAll(tasks); + return Ok("All files uploaded successfully."); + } + catch (Exception ex) + { + return StatusCode(500, $"An error occurred while uploading files: {ex.Message}"); + } + } +} + diff --git a/csharp/App/VrmGrabber/VrmGrabber.sln b/csharp/App/VrmGrabber/VrmGrabber.sln new file mode 100644 index 000000000..3e0482092 --- /dev/null +++ b/csharp/App/VrmGrabber/VrmGrabber.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.5.002.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VrmGrabber", "VrmGrabber.csproj", "{A3BDD9AD-F065-444E-9C2E-F777810E3BF9}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A3BDD9AD-F065-444E-9C2E-F777810E3BF9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A3BDD9AD-F065-444E-9C2E-F777810E3BF9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A3BDD9AD-F065-444E-9C2E-F777810E3BF9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A3BDD9AD-F065-444E-9C2E-F777810E3BF9}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {274A19A1-A0B6-4EAF-BCF6-475F7C511EF3} + EndGlobalSection +EndGlobal diff --git a/firmware/opt/innovenergy/scripts/upload-bms-firmware-python2 b/firmware/opt/innovenergy/scripts/upload-bms-firmware-python2 new file mode 100644 index 000000000..5b3de8617 --- /dev/null +++ b/firmware/opt/innovenergy/scripts/upload-bms-firmware-python2 @@ -0,0 +1,302 @@ +#!/usr/bin/python2 -u +# coding=utf-8 + +import os +import struct +from time import sleep + +import serial +from os import system + +from pymodbus.client.sync import ModbusSerialClient as Modbus +from pymodbus.exceptions import ModbusIOException +from pymodbus.pdu import ModbusResponse +from os.path import dirname, abspath +from sys import path, argv, exit + +path.append(dirname(dirname(abspath(__file__)))) + +PAGE_SIZE = 0x100 +HALF_PAGE = PAGE_SIZE / 2 +WRITE_ENABLE = [1] +SERIAL_STARTER_DIR = '/opt/victronenergy/serial-starter/' +FIRMWARE_VERSION_REGISTER = 1054 + +ERASE_FLASH_REGISTER = 0x2084 +RESET_REGISTER = 0x2087 + + +# trick the pycharm type-checker into thinking Callable is in scope, not used at runtime +# noinspection PyUnreachableCode +if False: + from typing import List, NoReturn, Iterable, Optional + + +class LockTTY(object): + + def __init__(self, tty): + # type: (str) -> None + self.tty = tty + + def __enter__(self): + system(SERIAL_STARTER_DIR + 'stop-tty.sh ' + self.tty) + return self + + def __exit__(self, exc_type, exc_val, exc_tb): + system(SERIAL_STARTER_DIR + 'start-tty.sh ' + self.tty) + + +def calc_stm32_crc_round(crc, data): + # type: (int, int) -> int + crc = crc ^ data + for _ in range(32): + xor = (crc & 0x80000000) != 0 + crc = (crc & 0x7FFFFFFF) << 1 # clear bit 31 because python ints have "infinite" bits + if xor: + crc = crc ^ 0x04C11DB7 + + return crc + + +def calc_stm32_crc(data): + # type: (Iterable[int]) -> int + crc = 0xFFFFFFFF + + for dw in data: + crc = calc_stm32_crc_round(crc, dw) + + return crc + + +def init_modbus(tty): + # type: (str) -> Modbus + + return Modbus( + port='/dev/' + tty, + method='rtu', + baudrate=115200, + stopbits=1, + bytesize=8, + timeout=0.15, # seconds + parity=serial.PARITY_ODD) + + +def failed(response): + # type: (ModbusResponse) -> bool + + return response.function_code > 0x80 + + +def clear_flash(modbus, slave_address): + # type: (Modbus, int) -> bool + + print ('erasing flash...') + + write_response = modbus.write_registers(address=0x2084, values=[1], unit=slave_address) + + if failed(write_response): + print('erasing flash FAILED') + return False + + flash_countdown = 17 + while flash_countdown > 0: + read_response = modbus.read_holding_registers(address=0x2085, count=1, unit=slave_address) + + if failed(read_response): + print('erasing flash FAILED') + return False + + if read_response.registers[0] != flash_countdown: + flash_countdown = read_response.registers[0] + + msg = str(100 * (16 - flash_countdown) / 16) + '%' + print '\r{0} '.format(msg), + + print('done!') + + return True + + +# noinspection PyShadowingBuiltins +def bytes_to_words(bytes): + # type: (str) -> List[int] + return list(struct.unpack('>' + len(bytes)/2 * 'H', bytes)) + + +def send_half_page_1(modbus, slave_address, data, page): + # type: (Modbus, int, str, int) -> NoReturn + + first_half = [page] + bytes_to_words(data[:HALF_PAGE]) + write_first_half = modbus.write_registers(0x2000, first_half, unit=slave_address) + + if failed(write_first_half): + raise Exception("Failed to write page " + str(page)) + + +def send_half_page_2(modbus, slave_address, data, page): + # type: (Modbus, int, str, int) -> NoReturn + + registers = bytes_to_words(data[HALF_PAGE:]) + calc_crc(page, data) + WRITE_ENABLE + result = modbus.write_registers(0x2041, registers, unit=slave_address) + + if failed(result): + raise Exception("Failed to write page " + str(page)) + + +def get_fw_name(fw_path): + # type: (str) -> str + return fw_path.split('/')[-1].split('.')[0] + + +def upload_fw(modbus, slave_id, fw_path, fw_name): + # type: (Modbus, int, str, str) -> NoReturn + + with open(fw_path, "rb") as f: + + size = os.fstat(f.fileno()).st_size + n_pages = size / PAGE_SIZE + + print 'uploading firmware ' + fw_name + ' to BMS ...' + + for page in range(0, n_pages): + + page_data = f.read(PAGE_SIZE) + + msg = "page " + str(page + 1) + '/' + str(n_pages) + ' ' + str(100 * page / n_pages + 1) + '%' + print '\r{0} '.format(msg), + + if is_page_empty(page_data): + continue + + send_half_page_1(modbus, slave_id, page_data, page) + send_half_page_2(modbus, slave_id, page_data, page) + + +def is_page_empty(page): + # type: (str) -> bool + return page.count('\xff') == len(page) + + +def reset_bms(modbus, slave_id): + # type: (Modbus, int) -> bool + + print ('resetting BMS...') + + result = modbus.write_registers(RESET_REGISTER, [1], unit=slave_id) + + # expecting a ModbusIOException (timeout) + # BMS can no longer reply because it is already reset + success = isinstance(result, ModbusIOException) + + if success: + print('done') + else: + print('FAILED to reset battery!') + + return success + + +def calc_crc(page, data): + # type: (int, str) -> List[int] + + crc = calc_stm32_crc([page] + bytes_to_words(data)) + crc_bytes = struct.pack('>L', crc) + + return bytes_to_words(crc_bytes) + + +def identify_battery(modbus, slave_id): + # type: (Modbus, int) -> Optional[str] + + target = 'battery #' + str(slave_id) + ' at ' + modbus.port + + try: + + print('contacting ' + target + ' ...') + + response = modbus.read_input_registers(address=FIRMWARE_VERSION_REGISTER, count=1, unit=slave_id) + fw = '{0:0>4X}'.format(response.registers[0]) + + print('found battery with firmware ' + fw) + + return fw + + except: + print('failed to communicate with ' + target + ' !') + return None + + +def print_usage(): + print ('Usage: ' + __file__ + ' ') + print ('Example: ' + __file__ + ' ttyUSB0 2 A08C.bin') + + +def parse_cmdline_args(argv): + # type: (List[str]) -> (str, str, str, str) + + def fail_with(msg): + print(msg) + print_usage() + exit(1) + + if len(argv) < 1: + fail_with('missing argument for tty device') + + if len(argv) < 2: + fail_with('missing argument for battery ID') + + if len(argv) < 3: + fail_with('missing argument for firmware') + + return argv[0], int(argv[1]), argv[2], get_fw_name(argv[2]) + + +def verify_firmware(modbus, battery_id, fw_name): + # type: (Modbus, int, str) -> NoReturn + + fw_verify = identify_battery(modbus, battery_id) + + if fw_verify == fw_name: + print 'SUCCESS' + else: + print 'FAILED to verify uploaded firmware!' + if fw_verify is not None: + print 'expected firmware version ' + fw_name + ' but got ' + fw_verify + + +def wait_for_bms_reboot(): + # type: () -> NoReturn + + # wait 20s for the battery to reboot + + print 'waiting for BMS to reboot...' + + for t in range(20, 0, -1): + print '\r{0} '.format(t), + sleep(1) + + print '0' + + +def main(argv): + # type: (List[str]) -> NoReturn + + tty, battery_id, fw_path, fw_name = parse_cmdline_args(argv) + + with LockTTY(tty), init_modbus(tty) as modbus: + + if identify_battery(modbus, battery_id) is None: + return + + clear_flash(modbus, battery_id) + upload_fw(modbus, battery_id, fw_path, fw_name) + + if not reset_bms(modbus, battery_id): + return + + wait_for_bms_reboot() + + verify_firmware(modbus, battery_id, fw_name) + + +main(argv[1:]) \ No newline at end of file diff --git a/firmware/opt/innovenergy/scripts/upload-bms-firmware-python3 b/firmware/opt/innovenergy/scripts/upload-bms-firmware-python3 new file mode 100755 index 000000000..e341d7f64 --- /dev/null +++ b/firmware/opt/innovenergy/scripts/upload-bms-firmware-python3 @@ -0,0 +1,303 @@ +#!/usr/bin/python2 -u +# coding=utf-8 + +import os +import struct +from time import sleep + +import serial +from os import system + +from pymodbus.client.sync import ModbusSerialClient as Modbus +from pymodbus.exceptions import ModbusIOException +from pymodbus.pdu import ModbusResponse +from os.path import dirname, abspath +from sys import path, argv, exit + +path.append(dirname(dirname(abspath(__file__)))) + +PAGE_SIZE = 0x100 +HALF_PAGE = PAGE_SIZE / 2 +WRITE_ENABLE = [1] +SERIAL_STARTER_DIR = '/opt/victronenergy/serial-starter/' +FIRMWARE_VERSION_REGISTER = 1054 + +ERASE_FLASH_REGISTER = 0x2084 +RESET_REGISTER = 0x2087 + + +# trick the pycharm type-checker into thinking Callable is in scope, not used at runtime +# noinspection PyUnreachableCode +if False: + from typing import List, NoReturn, Iterable, Optional + + +class LockTTY(object): + + def __init__(self, tty): + # type: (str) -> None + self.tty = tty + + def __enter__(self): + system(SERIAL_STARTER_DIR + 'stop-tty.sh ' + self.tty) + return self + + def __exit__(self, exc_type, exc_val, exc_tb): + system(SERIAL_STARTER_DIR + 'start-tty.sh ' + self.tty) + + +def calc_stm32_crc_round(crc, data): + # type: (int, int) -> int + crc = crc ^ data + for _ in range(32): + xor = (crc & 0x80000000) != 0 + crc = (crc & 0x7FFFFFFF) << 1 # clear bit 31 because python ints have "infinite" bits + if xor: + crc = crc ^ 0x04C11DB7 + + return crc + + +def calc_stm32_crc(data): + # type: (Iterable[int]) -> int + crc = 0xFFFFFFFF + + for dw in data: + crc = calc_stm32_crc_round(crc, dw) + + return crc + + +def init_modbus(tty): + # type: (str) -> Modbus + + return Modbus( + port='/dev/' + tty, + method='rtu', + baudrate=115200, + stopbits=1, + bytesize=8, + timeout=0.15, # seconds + parity=serial.PARITY_ODD) + + +def failed(response): + # type: (ModbusResponse) -> bool + + # Todo 'ModbusIOException' object has no attribute 'function_code' + return response.function_code > 0x80 + + +def clear_flash(modbus, slave_address): + # type: (Modbus, int) -> bool + + print ('erasing flash...') + + write_response = modbus.write_registers(address=0x2084, values=[1], unit=slave_address) + + if failed(write_response): + print('erasing flash FAILED') + return False + + flash_countdown = 17 + while flash_countdown > 0: + read_response = modbus.read_holding_registers(address=0x2085, count=1, unit=slave_address) + + if failed(read_response): + print('erasing flash FAILED') + return False + + if read_response.registers[0] != flash_countdown: + flash_countdown = read_response.registers[0] + + msg = str(100 * (16 - flash_countdown) / 16) + '%' + print('\r{0} '.format(msg), end=' ') + + print('done!') + + return True + + +# noinspection PyShadowingBuiltins +def bytes_to_words(bytes): + # type: (str) -> List[int] + return list(struct.unpack('>' + len(bytes)/2 * 'H', bytes)) + + +def send_half_page_1(modbus, slave_address, data, page): + # type: (Modbus, int, str, int) -> NoReturn + + first_half = [page] + bytes_to_words(data[:HALF_PAGE]) + write_first_half = modbus.write_registers(0x2000, first_half, unit=slave_address) + + if failed(write_first_half): + raise Exception("Failed to write page " + str(page)) + + +def send_half_page_2(modbus, slave_address, data, page): + # type: (Modbus, int, str, int) -> NoReturn + + registers = bytes_to_words(data[HALF_PAGE:]) + calc_crc(page, data) + WRITE_ENABLE + result = modbus.write_registers(0x2041, registers, unit=slave_address) + + if failed(result): + raise Exception("Failed to write page " + str(page)) + + +def get_fw_name(fw_path): + # type: (str) -> str + return fw_path.split('/')[-1].split('.')[0] + + +def upload_fw(modbus, slave_id, fw_path, fw_name): + # type: (Modbus, int, str, str) -> NoReturn + + with open(fw_path, "rb") as f: + + size = os.fstat(f.fileno()).st_size + n_pages = size / PAGE_SIZE + + print('uploading firmware ' + fw_name + ' to BMS ...') + + for page in range(0, n_pages): + + page_data = f.read(PAGE_SIZE) + + msg = "page " + str(page + 1) + '/' + str(n_pages) + ' ' + str(100 * page / n_pages + 1) + '%' + print('\r{0} '.format(msg), end=' ') + + if is_page_empty(page_data): + continue + + send_half_page_1(modbus, slave_id, page_data, page) + send_half_page_2(modbus, slave_id, page_data, page) + + +def is_page_empty(page): + # type: (str) -> bool + return page.count('\xff') == len(page) + + +def reset_bms(modbus, slave_id): + # type: (Modbus, int) -> bool + + print ('resetting BMS...') + + result = modbus.write_registers(RESET_REGISTER, [1], unit=slave_id) + + # expecting a ModbusIOException (timeout) + # BMS can no longer reply because it is already reset + success = isinstance(result, ModbusIOException) + + if success: + print('done') + else: + print('FAILED to reset battery!') + + return success + + +def calc_crc(page, data): + # type: (int, str) -> List[int] + + crc = calc_stm32_crc([page] + bytes_to_words(data)) + crc_bytes = struct.pack('>L', crc) + + return bytes_to_words(crc_bytes) + + +def identify_battery(modbus, slave_id): + # type: (Modbus, int) -> Optional[str] + + target = 'battery #' + str(slave_id) + ' at ' + modbus.port + + try: + + print(('contacting ' + target + ' ...')) + + response = modbus.read_input_registers(address=FIRMWARE_VERSION_REGISTER, count=1, unit=slave_id) + fw = '{0:0>4X}'.format(response.registers[0]) + + print(('found battery with firmware ' + fw)) + + return fw + + except: + print(('failed to communicate with ' + target + ' !')) + return None + + +def print_usage(): + print(('Usage: ' + __file__ + ' ')) + print(('Example: ' + __file__ + ' ttyUSB0 2 A08C.bin')) + + +def parse_cmdline_args(argv): + # type: (List[str]) -> (str, str, str, str) + + def fail_with(msg): + print(msg) + print_usage() + exit(1) + + if len(argv) < 1: + fail_with('missing argument for tty device') + + if len(argv) < 2: + fail_with('missing argument for battery ID') + + if len(argv) < 3: + fail_with('missing argument for firmware') + + return argv[0], int(argv[1]), argv[2], get_fw_name(argv[2]) + + +def verify_firmware(modbus, battery_id, fw_name): + # type: (Modbus, int, str) -> NoReturn + + fw_verify = identify_battery(modbus, battery_id) + + if fw_verify == fw_name: + print('SUCCESS') + else: + print('FAILED to verify uploaded firmware!') + if fw_verify is not None: + print('expected firmware version ' + fw_name + ' but got ' + fw_verify) + + +def wait_for_bms_reboot(): + # type: () -> NoReturn + + # wait 20s for the battery to reboot + + print('waiting for BMS to reboot...') + + for t in range(20, 0, -1): + print('\r{0} '.format(t), end=' ') + sleep(1) + + print('0') + + +def main(argv): + # type: (List[str]) -> NoReturn + + tty, battery_id, fw_path, fw_name = parse_cmdline_args(argv) + + with LockTTY(tty), init_modbus(tty) as modbus: + + if identify_battery(modbus, battery_id) is None: + return + + clear_flash(modbus, battery_id) + upload_fw(modbus, battery_id, fw_path, fw_name) + + if not reset_bms(modbus, battery_id): + return + + wait_for_bms_reboot() + + verify_firmware(modbus, battery_id, fw_name) + + +main(argv[1:]) \ No newline at end of file diff --git a/typescript/VrmSync/dist/main.js b/typescript/VrmSync/dist/main.js index 74204661d..b755fdbbc 100644 --- a/typescript/VrmSync/dist/main.js +++ b/typescript/VrmSync/dist/main.js @@ -3978,7 +3978,8 @@ var require_node_domexception = __commonJS({ var import_node_fs, import_node_domexception, stat, BlobDataItem; var init_from = __esm({ "node_modules/fetch-blob/from.js"() { - import_node_fs = require("node:fs"); + // import_node_fs = require("node:fs"); + import_node_fs = require("fs"); import_node_domexception = __toESM(require_node_domexception(), 1); init_file(); init_fetch_blob(); @@ -13683,11 +13684,18 @@ var require_linq = __commonJS({ }); // node_modules/node-fetch/src/index.js -var import_node_http2 = __toESM(require("node:http"), 1); -var import_node_https = __toESM(require("node:https"), 1); -var import_node_zlib = __toESM(require("node:zlib"), 1); -var import_node_stream2 = __toESM(require("node:stream"), 1); -var import_node_buffer2 = require("node:buffer"); +// var import_node_http2 = __toESM(require("node:http"), 1); +// var import_node_https = __toESM(require("node:https"), 1); +// var import_node_zlib = __toESM(require("node:zlib"), 1); +// var import_node_stream2 = __toESM(require("node:stream"), 1); +// var import_node_buffer2 = require("node:buffer"); + +var import_node_http2 = __toESM(require("http"), 1); +var import_node_https = __toESM(require("https"), 1); +var import_node_zlib = __toESM(require("zlib"), 1); +var import_node_stream2 = __toESM(require("stream"), 1); +var import_node_buffer2 = require("buffer"); + // node_modules/data-uri-to-buffer/dist/index.js function dataUriToBuffer(uri) { @@ -13729,9 +13737,13 @@ function dataUriToBuffer(uri) { var dist_default = dataUriToBuffer; // node_modules/node-fetch/src/body.js -var import_node_stream = __toESM(require("node:stream"), 1); -var import_node_util = require("node:util"); -var import_node_buffer = require("node:buffer"); +// var import_node_stream = __toESM(require("node:stream"), 1); +// var import_node_util = require("node:util"); +// var import_node_buffer = require("node:buffer"); +var import_node_stream = __toESM(require("stream"), 1); +var import_node_util = require("util"); +var import_node_buffer = require("buffer"); + init_fetch_blob(); init_esm_min(); @@ -13991,8 +14003,10 @@ var writeToStream = async (dest, { body }) => { }; // node_modules/node-fetch/src/headers.js -var import_node_util2 = require("node:util"); -var import_node_http = __toESM(require("node:http"), 1); +// var import_node_util2 = require("node:util"); +// var import_node_http = __toESM(require("node:http"), 1); +var import_node_util2 = require("util"); +var import_node_http = __toESM(require("http"), 1); var validateHeaderName = typeof import_node_http.default.validateHeaderName === "function" ? import_node_http.default.validateHeaderName : (name) => { if (!/^[\^`\-\w!#$%&'*+.|~]+$/.test(name)) { const error2 = new TypeError(`Header name must be a valid HTTP token [${name}]`); @@ -14245,8 +14259,10 @@ Object.defineProperties(Response.prototype, { }); // node_modules/node-fetch/src/request.js -var import_node_url = require("node:url"); -var import_node_util3 = require("node:util"); +// var import_node_url = require("node:url"); +// var import_node_util3 = require("node:util"); +var import_node_url = require("url"); +var import_node_util3 = require("util"); // node_modules/node-fetch/src/utils/get-search.js var getSearch = (parsedURL) => { @@ -14259,7 +14275,8 @@ var getSearch = (parsedURL) => { }; // node_modules/node-fetch/src/utils/referrer.js -var import_node_net = require("node:net"); +// var import_node_net = require("node:net"); +var import_node_net = require("net"); function stripURLForUseAsAReferrer(url, originOnly = false) { if (url == null) { return "no-referrer"; @@ -15043,20 +15060,29 @@ async function getAllDataFromVrm() { const nbMppts = devices.count((d) => d.name === "Solar Charger"); return { name: installation.name, - inverter: inverter?.productName ?? "unknown", - inverterFw: inverter?.firmwareVersion ?? "unknown", + // inverter: inverter?.productName ?? "unknown", + inverter: (inverter && inverter.productName) ? inverter.productName : "unknown", + // inverterFw: inverter?.firmwareVersion ?? "unknown", + inverterFw: (inverter && inverter.firmwareVersion) ? inverter.firmwareVersion : "unknown", identifier: installation.identifier, hasMains: installation.hasMains > 0, hasGenerator: installation.hasGenerator > 0, nbMppts, nbPvInverters, - firmware: gateway?.firmwareVersion ?? "unknown", - autoUpdate: gateway?.autoUpdate ?? "unknown", - updateTo: gateway?.updateTo ?? "unknown", - lastConnection: gateway?.lastConnection ?? 0, - lastPowerUpOrRestart: gateway?.lastPowerUpOrRestart ?? 0, - machineSerialNumber: gateway?.machineSerialNumber ?? "unknown", - controllerType: gateway?.productName ?? "unknown", + // firmware: gateway?.firmwareVersion ?? "unknown", + // autoUpdate: gateway?.autoUpdate ?? "unknown", + // updateTo: gateway?.updateTo ?? "unknown", + // lastConnection: gateway?.lastConnection ?? 0, + // lastPowerUpOrRestart: gateway?.lastPowerUpOrRestart ?? 0, + // machineSerialNumber: gateway?.machineSerialNumber ?? "unknown", + // controllerType: gateway?.productName ?? "unknown", + firmware: (gateway && gateway.firmwareVersion) ? gateway.firmwareVersion : "unknown", + autoUpdate: (gateway && gateway.autoUpdate) ? gateway.autoUpdate : "unknown", + updateTo: (gateway && gateway.updateTo) ? gateway.updateTo : "unknown", + lastConnection: (gateway && gateway.lastConnection) ? gateway.lastConnection : 0, + lastPowerUpOrRestart: (gateway && gateway.lastPowerUpOrRestart) ? gateway.lastPowerUpOrRestart : 0, + machineSerialNumber: (gateway && gateway.machineSerialNumber) ? gateway.machineSerialNumber : "unknown", + controllerType: (gateway && gateway.productName) ? gateway.productName : "unknown", vrmLink: `vrm.victronenergy.com/installation/${installation.idSite}`, accessLevel: installation.accessLevel, syscreated: installation.syscreated, @@ -15068,12 +15094,29 @@ async function getAllDataFromVrm() { }; } } +// function getVpnIpFromHttp(vpnName) { +// return fetch(`${vpnIp}/vpn/${vpnName}`).then((r2) => r2.text()).then((t2) => t2.match(rxIp)?.firstOrDefault()?.replace("ifconfig-push", "").trim() ?? ""); +// } + function getVpnIpFromHttp(vpnName) { - return fetch(`${vpnIp}/vpn/${vpnName}`).then((r2) => r2.text()).then((t2) => t2.match(rxIp)?.firstOrDefault()?.replace("ifconfig-push", "").trim() ?? ""); + return fetch(`${vpnIp}/vpn/${vpnName}`) + .then((r2) => r2.text()) + .then((t2) => { + const match = t2.match(rxIp); + return match && match.length > 0 ? match[0].replace("ifconfig-push", "").trim() : ""; + }); } +// function getVpnIpFromFs(vpnName) { +// return import_fs3.default.readFileSync(`${ccdDir}/${vpnName}`, "utf-8").match(rxIp)?.firstOrDefault()?.replace("ifconfig-push", "").trim() ?? ""; +// } +const fs = require('fs'); + function getVpnIpFromFs(vpnName) { - return import_fs3.default.readFileSync(`${ccdDir}/${vpnName}`, "utf-8").match(rxIp)?.firstOrDefault()?.replace("ifconfig-push", "").trim() ?? ""; + const fileContent = fs.readFileSync(`${ccdDir}/${vpnName}`, "utf-8"); + const match = fileContent.match(rxIp); + return match && match.length > 0 ? match[0].replace("ifconfig-push", "").trim() : ""; } + function getVpnOnlineStatusFromHttp() { return fetch(`${vpnIp}/vpnstatus.txt`).then((r2) => r2.text()).then((s2) => s2.split("\n")); } @@ -15207,7 +15250,9 @@ var usage = { "default value": "if 'field' is omitted it defaults to 'name'" }; function handleRequest(request) { - const url = request?.url; + // const url = request?.url; + const url = request && request.url; + if (isUndefined(url)) return []; if (url === "/") @@ -15216,10 +15261,12 @@ function handleRequest(request) { const [installations, field] = filterInstallations(where5); if (select6 === "*") return installations.toArray(); - if ((select6 ?? field) === "name") + // if ((select6 ?? field) === "name") + if ((select6 || field) === "name") return installations.select((i2) => i2.name).toArray(); const record = {}; - installations.toArray().forEach((i2) => record[i2.name] = getField(i2, select6 ?? field)); + // installations.toArray().forEach((i2) => record[i2.name] = getField(i2, select6 ?? field)); + installations.toArray().forEach((i2) => record[i2.name] = getField(i2, select6 !== null && select6 !== undefined ? select6 : field)); return record; } function serve(request, response) { diff --git a/typescript/VrmSync/package-lock.json b/typescript/VrmSync/package-lock.json index 46647dfcf..8902f1cc6 100644 --- a/typescript/VrmSync/package-lock.json +++ b/typescript/VrmSync/package-lock.json @@ -1,13 +1,12 @@ { - "name": "IeApi", + "name": "VrmSync", "lockfileVersion": 2, "requires": true, "packages": { "": { "dependencies": { "esbuild": "^0.14.23", - "linq-to-typescript": "^10.0.0", - "rxjs": "^7.5.5" + "linq-to-typescript": "^10.0.0" }, "devDependencies": { "@types/node": "^17.0.21", @@ -413,12 +412,13 @@ } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, + "license": "MIT", "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" @@ -1121,10 +1121,11 @@ } }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -1327,6 +1328,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } @@ -1388,18 +1390,6 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -1466,10 +1456,11 @@ } }, "node_modules/node-fetch": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.0.tgz", - "integrity": "sha512-8xeimMwMItMw8hRrOl3C9/xzU49HV/yE6ORew/l+dxWimO5A4Ra8ld2rerlJvc/O7et5Z1zrWsPX43v1QBjCxw==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", "dev": true, + "license": "MIT", "dependencies": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", @@ -1667,27 +1658,12 @@ "queue-microtask": "^1.2.2" } }, - "node_modules/rxjs": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz", - "integrity": "sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/rxjs/node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, "node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -1772,6 +1748,7 @@ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -1877,10 +1854,11 @@ } }, "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -1890,12 +1868,6 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true } }, "dependencies": { @@ -2161,12 +2133,12 @@ } }, "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "requires": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" } }, "callsites": { @@ -2590,9 +2562,9 @@ } }, "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "requires": { "to-regex-range": "^5.0.1" @@ -2794,15 +2766,6 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, "merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -2847,9 +2810,9 @@ "dev": true }, "node-fetch": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.0.tgz", - "integrity": "sha512-8xeimMwMItMw8hRrOl3C9/xzU49HV/yE6ORew/l+dxWimO5A4Ra8ld2rerlJvc/O7et5Z1zrWsPX43v1QBjCxw==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", "dev": true, "requires": { "data-uri-to-buffer": "^4.0.0", @@ -2967,29 +2930,11 @@ "queue-microtask": "^1.2.2" } }, - "rxjs": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz", - "integrity": "sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==", - "requires": { - "tslib": "^2.1.0" - }, - "dependencies": { - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - } - } - }, "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true }, "shebang-command": { "version": "2.0.0", @@ -3118,9 +3063,9 @@ } }, "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true }, "wrappy": { @@ -3128,12 +3073,6 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true } } } diff --git a/typescript/VrmSync/vrmData.json b/typescript/VrmSync/vrmData.json index 9099f3036..52419a375 100644 --- a/typescript/VrmSync/vrmData.json +++ b/typescript/VrmSync/vrmData.json @@ -1,159 +1,759 @@ [ { - "name": "_ IBN tbd Weisshaubt, Neunkirch/SH | Lutz Bodenmüller AG (2022-00070)", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "490", - "identifier": "48e7da8755b5", + "name": "_ IBN _Kinderhospiz, CH | Aerni Elektro AG (AB2400049)", + "inverter": "MultiPlus-II 48/10000/140-100/100", + "inverterFw": "510", + "identifier": "c0619ab2eb76", "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 0, - "firmware": "v2.73~r6", + "firmware": "v2.73~r12", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1650964098, - "lastPowerUpOrRestart": 1650892218, - "machineSerialNumber": "HQ2139N6ZPZ", - "type": "Cerbo GX", - "vrmLink": "vrm.victronenergy.com/installation/171797", + "lastConnection": 1716961187, + "lastPowerUpOrRestart": 1716889426, + "machineSerialNumber": "HQ22423RADP", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/440727", "accessLevel": 1, - "syscreated": 1650888746, + "syscreated": 1716881499, "vrmOnline": true, - "alarm": false, - "vpnIp": "10.2.2.7", - "vpnName": "HQ2139N6ZPZ", + "alarm": true, + "vpnIp": "", + "vpnName": "", "vpnOnline": false }, { - "name": "_IBN Aeberhard, ZÜ/ | Bouygues E&S In Tec Schweiz AG (2021-00216)", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "490", - "identifier": "102c6bc2aef8", - "hasMains": false, - "hasGenerator": false, - "nbMppts": 0, - "nbPvInverters": 0, - "firmware": "v2.73~r6", - "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1644392989, - "lastPowerUpOrRestart": 1644392834, - "machineSerialNumber": "HQ2118Q44GV", - "type": "Cerbo GX", - "vrmLink": "vrm.victronenergy.com/installation/154680", - "accessLevel": 1, - "syscreated": 1644338258, - "vrmOnline": true, - "alarm": false, - "vpnIp": "10.2.1.193", - "vpnName": "HQ2118Q44GV", - "vpnOnline": false - }, - { - "name": "_IBN Aegerter, Rombach/AG | kabeltechnik swiss ag (2021-00145)", + "name": "_ IBN 12336205 / Steiner / Im Bank, CH | A. Lehmann Elektro AG (AB2400040) SN20240047", "inverter": "MultiPlus-II 48/5000/70-48", - "inverterFw": "485", - "identifier": "0479b7aebbc0", + "inverterFw": "506", + "identifier": "c0619ab1dc97", "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 0, - "firmware": "v2.73~r6", + "firmware": "v2.73~r12", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1634136660, - "lastPowerUpOrRestart": 1634122506, - "machineSerialNumber": "HQ2101925N3", - "type": "Venus GX", - "vrmLink": "vrm.victronenergy.com/installation/132507", + "lastConnection": 1716978785, + "lastPowerUpOrRestart": 1716967839, + "machineSerialNumber": "HQ221796ERF", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/441196", "accessLevel": 1, - "syscreated": 1634052108, + "syscreated": 1716963522, "vrmOnline": true, "alarm": false, - "vpnIp": "10.2.1.134", - "vpnName": "HQ2101925N3", + "vpnIp": "", + "vpnName": "", "vpnOnline": false }, { - "name": "_IBN Alther, Wil/SG | B. Stillhart Dach + Fassaden AG (2022-00039)", + "name": "_ IBN 12980 Baeriswyl, CH | Allenbach Holzbau und Solartechnik AG (AB2400013) SN20230205", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "490", - "identifier": "48e7da8753e7", - "hasMains": false, - "hasGenerator": false, - "nbMppts": 0, - "nbPvInverters": 0, - "firmware": "v2.73~r6", - "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1648198051, - "lastPowerUpOrRestart": 1648140989, - "machineSerialNumber": "HQ2139MQWDW", - "type": "Cerbo GX", - "vrmLink": "vrm.victronenergy.com/installation/164219", - "accessLevel": 1, - "syscreated": 1648138349, - "vrmOnline": true, - "alarm": false, - "vpnIp": "10.2.1.234", - "vpnName": "HQ2139MQWDW", - "vpnOnline": false - }, - { - "name": "_IBN Arx, Niederbuchsiten/SO | von arx systems ag (2022-00005)", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "490", - "identifier": "48e7da890793", + "inverterFw": "506", + "identifier": "c0619ab38867", "hasMains": true, "hasGenerator": false, - "nbMppts": 0, - "nbPvInverters": 0, - "firmware": "v2.73~r6", + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r12", "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1645619912, - "lastPowerUpOrRestart": 1645613370, - "machineSerialNumber": "HQ2139HY2AU", - "type": "Cerbo GX", - "vrmLink": "vrm.victronenergy.com/installation/157594", + "updateTo": "Testing", + "lastConnection": 1718620059, + "lastPowerUpOrRestart": 1718284414, + "machineSerialNumber": "HQ22479TMR9", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/353393", "accessLevel": 1, - "syscreated": 1645609146, + "syscreated": 1695803519, "vrmOnline": true, "alarm": false, - "vpnIp": "10.2.1.208", - "vpnName": "HQ2139HY2AU", + "vpnIp": "", + "vpnName": "", "vpnOnline": false }, { - "name": "_IBN Aschlimann, Johanna | Bouygues E&S In Tec Schweiz AG (2022-00059", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "490", - "identifier": "00e93aac3437", - "hasMains": false, - "hasGenerator": false, - "nbMppts": 0, - "nbPvInverters": 0, - "firmware": "v2.73~r6", - "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1649075841, - "lastPowerUpOrRestart": 1648818734, - "machineSerialNumber": "HQ2139PGQMG", - "type": "Cerbo GX", - "vrmLink": "vrm.victronenergy.com/installation/166409", - "accessLevel": 1, - "syscreated": 1648817942, - "vrmOnline": true, - "alarm": false, - "vpnIp": "10.2.1.241", - "vpnName": "HQ2139PGQMG", - "vpnOnline": false - }, - { - "name": "_IBN aws, Bazenheid/SG | AWS Aolar AG (2022-00073)", + "name": "_ IBN 13041, CH | Allenbach Holzbau und Solarrechnik AG (AB2300048)", "inverter": "MultiPlus-II 48/5000/70-48", - "inverterFw": "494", - "identifier": "48e7da892947", + "inverterFw": "502", + "identifier": "c0619ab1d1b8", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 3, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1686151457, + "lastPowerUpOrRestart": 1686151324, + "machineSerialNumber": "HQ22172QUTT", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/312099", + "accessLevel": 1, + "syscreated": 1686140060, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.4.16", + "vpnName": "HQ22172QUTT", + "vpnOnline": false + }, + { + "name": "_ IBN 137-01 Reshöft, Riepsdorf/DE | Reinstein GmbH (2022-00511)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab157a7", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1678178024, + "lastPowerUpOrRestart": 1678170522, + "machineSerialNumber": "HQ2211KEVCG", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/275462", + "accessLevel": 1, + "syscreated": 1678114720, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.121", + "vpnName": "HQ2211KEVCG", + "vpnOnline": false + }, + { + "name": "_ IBN 20220500039_Tanner Lukas, CH | Elektro Lieberherr AG (AB2400064) SN20240059", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "508", + "identifier": "c0619ab38272", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1716369889, + "lastPowerUpOrRestart": 1716360196, + "machineSerialNumber": "HQ2247VPTEU", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/438029", + "accessLevel": 1, + "syscreated": 1716295563, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "_ IBN 230668, CH | A + Elektro AG (AB23002489) SN20230192", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab38130", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1693899162, + "lastPowerUpOrRestart": 1693839982, + "machineSerialNumber": "HQ2247YN2KU", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/345572", + "accessLevel": 1, + "syscreated": 1693833626, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "_ IBN 230669 Geiger Norbert, CH | A + Elektro AG (AB2300249) SN20230193", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab3835a", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1693919871, + "lastPowerUpOrRestart": 1693913669, + "machineSerialNumber": "HQ2247ZCUY3", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/345854", + "accessLevel": 1, + "syscreated": 1693909681, + "vrmOnline": true, + "alarm": true, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "_ IBN 2415181105 7 Schenk, Thun CH | GLB Thun / Oberland (AB2400071) SN20240061", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "506", + "identifier": "c0619ab383ad", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1716900752, + "lastPowerUpOrRestart": 1716898440, + "machineSerialNumber": "HQ2247EGTR6", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/440807", + "accessLevel": 1, + "syscreated": 1716891587, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "_ IBN 37203 PV Burger Markus, CH | Beoelektriker AG (AB2400050) SN20240050", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "506", + "identifier": "c0619ab3924b", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1716280375, + "lastPowerUpOrRestart": 1716276860, + "machineSerialNumber": "HQ22479FDYF", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/437872", + "accessLevel": 1, + "syscreated": 1716276283, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "_ IBN AW24/001294 | Schmachtl GmbH (AB2400057) SN20240007", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "508", + "identifier": "c0619ab38273", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1706007461, + "lastPowerUpOrRestart": 1706001220, + "machineSerialNumber": "HQ22477MPGW", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/393005", + "accessLevel": 1, + "syscreated": 1705999846, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "_ IBN BAER (SEM) Österreich | Elektrotechnik Schimpl (AB2400072) SN20240065", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "506", + "identifier": "c0619ab383af", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718006788, + "lastPowerUpOrRestart": 1718004508, + "machineSerialNumber": "HQ2247WJA49", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/443999", + "accessLevel": 1, + "syscreated": 1717580990, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "_ IBN Bartsch, Berlin DE | Optema Kasseedorf (20230228)", + "inverter": "MultiPlus-II 48/10000/140-100/100", + "inverterFw": "508", + "identifier": "c0619ab2e9af", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1707314584, + "lastPowerUpOrRestart": 1707296105, + "machineSerialNumber": "HQ2242UFPWV", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/397496", + "accessLevel": 1, + "syscreated": 1707124794, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "_ IBN Bitz, Uetendorf CH | Elektro Gertsch AG (AB2400039) SN20240040", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "506", + "identifier": "c0619ab38699", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1712754197, + "lastPowerUpOrRestart": 1712749649, + "machineSerialNumber": "HQ224732R7P", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/357487", + "accessLevel": 1, + "syscreated": 1696841272, + "vrmOnline": true, + "alarm": true, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "_ IBN Bossyns, Kalken/BL | Auton Energy BV (2022-00339.3)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "481", + "identifier": "48e7da87e5ad", + "hasMains": false, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1680082838, + "lastPowerUpOrRestart": 1679924856, + "machineSerialNumber": "HQ2149E4HZA", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/207424", + "accessLevel": 1, + "syscreated": 1661779655, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.135", + "vpnName": "HQ2149E4HZA", + "vpnOnline": false + }, + { + "name": "_ IBN Bossyns, Kalken/BL | Auton Energy BV (2022-00339.4)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "48e7da85f0c1", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v3.10", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1711369623, + "lastPowerUpOrRestart": 1711134477, + "machineSerialNumber": "HQ2149CZUJR", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/207428", + "accessLevel": 1, + "syscreated": 1661780025, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.136", + "vpnName": "HQ2149CZUJR", + "vpnOnline": true + }, + { + "name": "_ IBN Braun, Brunnen/SZ/CH | Alex Gemperle AG (2022-00184)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "498", + "identifier": "102c6bc2b18a", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 1, + "firmware": "v2.73~r10", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620058, + "lastPowerUpOrRestart": 1695386274, + "machineSerialNumber": "HQ2118DNJ93", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/203949", + "accessLevel": 1, + "syscreated": 1660740100, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.123", + "vpnName": "HQ2118DNJ93", + "vpnOnline": true + }, + { + "name": "_ IBN Bylang, Burgistein | Flück Elektro GmbH (AB2400032) SN20240038", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "508", + "identifier": "c0619ab38237", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1712139488, + "lastPowerUpOrRestart": 1712134014, + "machineSerialNumber": "HQ2247QWX4A", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/393153", + "accessLevel": 1, + "syscreated": 1706016653, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "_ IBN Cerbo für Benin | African Solar Generation SARL (AB2300103)-1", + "inverter": "unknown", + "inverterFw": "unknown", + "identifier": "c0619ab1d18d", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1684225011, + "lastPowerUpOrRestart": 1684224805, + "machineSerialNumber": "HQ2217NUP92", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/302850", + "accessLevel": 1, + "syscreated": 1684224417, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.227", + "vpnName": "HQ2217NUP92", + "vpnOnline": false + }, + { + "name": "_ IBN Cerbo für Benin | African Solar Generation SARL (AB2300103)-2", + "inverter": "Quattro-II 48/5000/70-2x50", + "inverterFw": "506", + "identifier": "c0619ab1cf67", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1697730510, + "lastPowerUpOrRestart": 1697193016, + "machineSerialNumber": "HQ2217KW6PY", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/302855", + "accessLevel": 1, + "syscreated": 1684225167, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.228", + "vpnName": "HQ2217KW6PY", + "vpnOnline": false + }, + { + "name": "_ IBN Costa, Zwillikon/ZH | Hotz Technik GmbH (2022-00439)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "498", + "identifier": "c0619ab167e4", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620062, + "lastPowerUpOrRestart": 1700120966, + "machineSerialNumber": "HQ2211N92Z7", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/251409", + "accessLevel": 1, + "syscreated": 1672331293, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.32", + "vpnName": "HQ2211N92Z7", + "vpnOnline": true + }, + { + "name": "_ IBN CRCE | Elektrotechnik Schimpl | Österreich (AB2400025) SN20240030", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "506", + "identifier": "c0619ab38356", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620093, + "lastPowerUpOrRestart": 1718228107, + "machineSerialNumber": "HQ2247AZQ99", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/410689", + "accessLevel": 1, + "syscreated": 1710245583, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "_ IBN DAP, CH | Joachim Lohner (AB2300254) SN20230194", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab38b41", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620049, + "lastPowerUpOrRestart": 1705569834, + "machineSerialNumber": "HQ2247HWU9Q", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/345955", + "accessLevel": 1, + "syscreated": 1693922991, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "_ IBN Diakoniestation Niedernhausen, Henry CH | Daniel Gebert Technik Gebert (AB2400066) SN20240053", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "506", + "identifier": "c0619ab393ad", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1716294017, + "lastPowerUpOrRestart": 1716287237, + "machineSerialNumber": "HQ2247YNVJ4", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/437941", + "accessLevel": 1, + "syscreated": 1716284994, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "_ IBN Fabisch, Kambs DE | Optema - Ronald Koch (AB2300091)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab2d911", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1684848465, + "lastPowerUpOrRestart": 1684847865, + "machineSerialNumber": "HQ22427QJ9X", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/305864", + "accessLevel": 1, + "syscreated": 1684842907, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.239", + "vpnName": "HQ22427QJ9X", + "vpnOnline": false + }, + { + "name": "_ IBN Faso, Köln/DE | Antenna Foundation (2022-00039)-04", + "inverter": "unknown", + "inverterFw": "unknown", + "identifier": "c0619ab1cd03", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1676387218, + "lastPowerUpOrRestart": 1676387128, + "machineSerialNumber": "HQ2217KVECQ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/267505", + "accessLevel": 1, + "syscreated": 1676386922, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.85", + "vpnName": "HQ2217KVECQ", + "vpnOnline": false + }, + { + "name": "_ IBN Faso, Köln/DE | Antenna Foundation (2022-00039)-05", + "inverter": "unknown", + "inverterFw": "unknown", + "identifier": "c0619ab1ceca", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1676388001, + "lastPowerUpOrRestart": 1676387613, + "machineSerialNumber": "HQ2217MJXHU", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/267513", + "accessLevel": 1, + "syscreated": 1676387407, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.86", + "vpnName": "HQ2217MJXHU", + "vpnOnline": false + }, + { + "name": "_ IBN HH48, CH | eTruck GmbH (AB2300330) SN20240032", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "506", + "identifier": "c0619ab38279", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1710938175, + "lastPowerUpOrRestart": 1710924895, + "machineSerialNumber": "HQ2247ZFNWG", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/413817", + "accessLevel": 1, + "syscreated": 1710924640, + "vrmOnline": true, + "alarm": true, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "_ IBN Hintermann, Vella/GR | Solpic AG (2022-00496)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab165b6", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 3, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1676909055, + "lastPowerUpOrRestart": 1676905628, + "machineSerialNumber": "HQ221199JEK", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/269709", + "accessLevel": 1, + "syscreated": 1676887700, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.96", + "vpnName": "HQ221199JEK", + "vpnOnline": false + }, + { + "name": "_ IBN House of Joker Jeans 2, Bönnigheim/DE | Natura Solar (AB2300265)", + "inverter": "MultiPlus-II 48/10000/140-100/100", + "inverterFw": "506", + "identifier": "c0619ab1d1c7", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1695798001, + "lastPowerUpOrRestart": 1695797547, + "machineSerialNumber": "HQ22173NDW9", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/351713", + "accessLevel": 1, + "syscreated": 1695363081, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.192", + "vpnName": "HQ22173NDW9", + "vpnOnline": false + }, + { + "name": "_ IBN Innovenergy, ZH/CH (Test)", + "inverter": "unknown", + "inverterFw": "unknown", + "identifier": "48e7da868793", "hasMains": false, "hasGenerator": false, "nbMppts": 0, @@ -161,21 +761,873 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1649753623, - "lastPowerUpOrRestart": 1649679218, - "machineSerialNumber": "HQ2139EPERH", - "type": "Cerbo GX", - "vrmLink": "vrm.victronenergy.com/installation/167643", + "lastConnection": 1661839396, + "lastPowerUpOrRestart": 1661839333, + "machineSerialNumber": "HQ2149DVGZV", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/207582", "accessLevel": 1, - "syscreated": 1649260630, + "syscreated": 1661839122, "vrmOnline": true, "alarm": false, - "vpnIp": "10.2.1.244", - "vpnName": "HQ2139EPERH", + "vpnIp": "10.2.2.139", + "vpnName": "HQ2149DVGZV", "vpnOnline": false }, + { + "name": "_ IBN Klenk Kälberbronn, DE | Otto Klenk GmbH (2022-00333)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "498", + "identifier": "48e7da858bd1", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r10", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1709650248, + "lastPowerUpOrRestart": 1709646767, + "machineSerialNumber": "HQ2150HHMKQ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/227664", + "accessLevel": 1, + "syscreated": 1666710585, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.2.209", + "vpnName": "HQ2150HHMKQ", + "vpnOnline": false + }, + { + "name": "_ IBN Komm Schmidt, DE / Koch Elektro und Photovoltaikanlagen GmbH (AB2400090) SN20240068", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "508", + "identifier": "c0619ab1dc33", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718107824, + "lastPowerUpOrRestart": 1718097804, + "machineSerialNumber": "HQ22174GYYP", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/446244", + "accessLevel": 1, + "syscreated": 1718092762, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "_ IBN Kreuzberger, Auenstein/AG | H. Frei Elektro AG (2022-00329)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "497", + "identifier": "48e7da89739f", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r8", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1665409326, + "lastPowerUpOrRestart": 1665403101, + "machineSerialNumber": "HQ2148HYCVF", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/221504", + "accessLevel": 1, + "syscreated": 1665387645, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.2.186", + "vpnName": "HQ2148HYCVF", + "vpnOnline": false + }, + { + "name": "_ IBN Kriegisch, Langenzersdorf/ÖS | GetroniX e.U. (2022-00476)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "498", + "identifier": "c0619ab16767", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1678898124, + "lastPowerUpOrRestart": 1678894525, + "machineSerialNumber": "HQ2211C63RF", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/256888", + "accessLevel": 1, + "syscreated": 1673972747, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.55", + "vpnName": "HQ2211C63RF", + "vpnOnline": false + }, + { + "name": "_ IBN Kurth, Aeschi CH | ELECTRIO AG ( AB2400051) SN20240048", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "506", + "identifier": "c0619ab1dd97", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1717489516, + "lastPowerUpOrRestart": 1717487991, + "machineSerialNumber": "HQ22196NE3P", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/443522", + "accessLevel": 1, + "syscreated": 1717487998, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "_ IBN Marti Schönried/BE | Marti Technik AG (AB2300167)", + "inverter": "MultiPlus-II 48/10000/140-100/100", + "inverterFw": "502", + "identifier": "c0619ab1dc2d", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620079, + "lastPowerUpOrRestart": 1700683337, + "machineSerialNumber": "HQ221733UXR", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/312747", + "accessLevel": 1, + "syscreated": 1686230567, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.4.19", + "vpnName": "HQ221733UXR", + "vpnOnline": true + }, + { + "name": "_ IBN Mästinger, Lenzerheide CH | Florin Elektro AG (AB2400058) SN20240058", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "508", + "identifier": "c0619ab3827c", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1716800818, + "lastPowerUpOrRestart": 1716799403, + "machineSerialNumber": "HQ2247JTXZA", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/440352", + "accessLevel": 1, + "syscreated": 1716796720, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "_ IBN Material/ZH | Scherrer Gebäudehüllen AG (AB2300242) SN20230145", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1dcb9", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1692022002, + "lastPowerUpOrRestart": 1692020321, + "machineSerialNumber": "HQ22193ZW3T", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/338422", + "accessLevel": 1, + "syscreated": 1692016351, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "_ IBN Mindach, CH | PV Total GmbH CO. KG (AB2300310) SN20230224", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "506", + "identifier": "c0619ab38901", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718190515, + "lastPowerUpOrRestart": 1718181335, + "machineSerialNumber": "HQ2247A4KVV", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/374776", + "accessLevel": 1, + "syscreated": 1701081783, + "vrmOnline": true, + "alarm": true, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "_ IBN OL Sjöströn - Tannay | ObtimalLiving SA (AB2300207) SN20230163", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab1d2bb", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1692180990, + "lastPowerUpOrRestart": 1692175019, + "machineSerialNumber": "HQ2217KNJDK", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/339042", + "accessLevel": 1, + "syscreated": 1692172292, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "_ IBN Quartu, Bazenheid/SG | AWS Solar AG (2022-00327)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "497", + "identifier": "48e7da873cc5", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r8", + "autoUpdate": "On", + "updateTo": "Testing", + "lastConnection": 1718620065, + "lastPowerUpOrRestart": 1705874274, + "machineSerialNumber": "HQ2148RKHD7", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/221522", + "accessLevel": 1, + "syscreated": 1665388988, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.2.187", + "vpnName": "HQ2148RKHD7", + "vpnOnline": true + }, + { + "name": "_ IBN Rest, Benediktbeuern | PVmotion Energiesysteme GmbH | DE (AB2400022) SN20240020", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "506", + "identifier": "c0619ab1dcee", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1706189971, + "lastPowerUpOrRestart": 1706186312, + "machineSerialNumber": "HQ22194WWKX", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/393949", + "accessLevel": 1, + "syscreated": 1706184987, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "_ IBN Röthlisberger, Bützberg CH | Kunz-Solartech GmbH (AB2400053) SN20240060", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "506", + "identifier": "c0619ab1dc32", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1716811180, + "lastPowerUpOrRestart": 1716810311, + "machineSerialNumber": "HQ221743VXD", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/440435", + "accessLevel": 1, + "syscreated": 1716809015, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "_ IBN Rudolf, Carabietta/TI | Marti Technik AG (2022-00291)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "497", + "identifier": "48e7da85caf1", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620072, + "lastPowerUpOrRestart": 1677506127, + "machineSerialNumber": "HQ2148PQHJ7", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/216596", + "accessLevel": 1, + "syscreated": 1664195966, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.168", + "vpnName": "HQ2148PQHJ7", + "vpnOnline": true + }, + { + "name": "_ IBN Runkel, Hofstetten/SO | Tims Dächer (2023-00019)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab1dc2f", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1680697241, + "lastPowerUpOrRestart": 1680696098, + "machineSerialNumber": "HQ22173XZXH", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/287208", + "accessLevel": 1, + "syscreated": 1680693501, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.3.172", + "vpnName": "HQ22173XZXH", + "vpnOnline": false + }, + { + "name": "_ IBN S: Zürcher / CH (AB2400083) SN20240062", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "508", + "identifier": "c0619ab38269", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718195678, + "lastPowerUpOrRestart": 1718188755, + "machineSerialNumber": "HQ2247FZU6F", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/446804", + "accessLevel": 1, + "syscreated": 1718187123, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "_ IBN Salidomo 9/DE | EBS Eelktrotechneik Stefan GmbH (AB2300043) (4)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab16a2b", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1682942958, + "lastPowerUpOrRestart": 1682935433, + "machineSerialNumber": "HQ22119KYRX", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/296743", + "accessLevel": 1, + "syscreated": 1682934207, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.210", + "vpnName": "HQ22119KYRX", + "vpnOnline": false + }, + { + "name": "_ IBN Salidomo 9/DE | EBS Eelktrotechneik Stefan GmbH (AB2300043) (5)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1cdbd", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1682949008, + "lastPowerUpOrRestart": 1682946882, + "machineSerialNumber": "HQ2217GFMZY", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/296788", + "accessLevel": 1, + "syscreated": 1682944475, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.212", + "vpnName": "HQ2217GFMZY", + "vpnOnline": false + }, + { + "name": "_ IBN Salidomo 9/DE | EBS Elektrotechnik Stefan GmbH (AB2300043) (1)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d0d4", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1683025565, + "lastPowerUpOrRestart": 1682952603, + "machineSerialNumber": "HQ2217N66T4", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/296768", + "accessLevel": 1, + "syscreated": 1682940800, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.211", + "vpnName": "HQ2217N66T4", + "vpnOnline": false + }, + { + "name": "_ IBN Salidomo 9/DE | EBS Elektrotechnik Stefan GmbH (AB2300043) (2)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d0a8", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1682676789, + "lastPowerUpOrRestart": 1682676332, + "machineSerialNumber": "HQ2217KZQ34", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/295892", + "accessLevel": 1, + "syscreated": 1682666289, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.207", + "vpnName": "HQ2217KZQ34", + "vpnOnline": false + }, + { + "name": "_ IBN Salidomo 9/DE | EBS Elektrotechnik Stefan GmbH (AB2300043) (3)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d0ad", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1682684294, + "lastPowerUpOrRestart": 1682683214, + "machineSerialNumber": "HQ2217PF3DX", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/295897", + "accessLevel": 1, + "syscreated": 1682667269, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.208", + "vpnName": "HQ2217PF3DX", + "vpnOnline": false + }, + { + "name": "_ IBN Schaller, Littau/LU | Alectron AG (2022-00553)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "501", + "identifier": "c0619ab165e8", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620055, + "lastPowerUpOrRestart": 1687853080, + "machineSerialNumber": "HQ2211JYWCY", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/265152", + "accessLevel": 1, + "syscreated": 1675863563, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.3.71", + "vpnName": "HQ2211JYWCY", + "vpnOnline": true + }, + { + "name": "_ IBN SOB Bahnhof Altmatt (2022-00543)", + "inverter": "unknown", + "inverterFw": "unknown", + "identifier": "c0619ab167fb", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620068, + "lastPowerUpOrRestart": 1695733614, + "machineSerialNumber": "HQ2211QC6UK", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/251524", + "accessLevel": 1, + "syscreated": 1672383215, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.29", + "vpnName": "HQ2211QC6UK", + "vpnOnline": false + }, + { + "name": "_ IBN Spaeti, Uettligen / Elektro Hegg AG ( AB2400060) SN20240054", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "508", + "identifier": "c0619ab1dc9f", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718028286, + "lastPowerUpOrRestart": 1718022584, + "machineSerialNumber": "HQ22173PEYZ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/445906", + "accessLevel": 1, + "syscreated": 1718021730, + "vrmOnline": true, + "alarm": true, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "_ IBN Stefan und Rita, Hegglin/ZG | Hotz Technik GmbH (2022-00440)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "498", + "identifier": "c0619ab07050", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718606608, + "lastPowerUpOrRestart": 1690362583, + "machineSerialNumber": "HQ21393FEZA", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/252230", + "accessLevel": 1, + "syscreated": 1672731470, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.33", + "vpnName": "HQ21393FEZA", + "vpnOnline": false + }, + { + "name": "_ IBN Stettler, Wengi/BE | Terrasystems AG (2022-00388)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "498", + "identifier": "48e7da864695", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r10", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1668585743, + "lastPowerUpOrRestart": 1668536104, + "machineSerialNumber": "HQ2211UUUNH", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/235410", + "accessLevel": 1, + "syscreated": 1668531300, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.237", + "vpnName": "HQ2211UUUNH", + "vpnOnline": false + }, + { + "name": "_ IBN Togo, Münschen/DE | Antenna Foundation (2022-00040)-01", + "inverter": "unknown", + "inverterFw": "unknown", + "identifier": "c0619ab1cd8b", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1676383772, + "lastPowerUpOrRestart": 1676383444, + "machineSerialNumber": "HQ2217WQAD3", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/267410", + "accessLevel": 1, + "syscreated": 1676380151, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.80", + "vpnName": "HQ2217WQAD3", + "vpnOnline": false + }, + { + "name": "_ IBN Togo, Münschen/DE | Antenna Foundation (2022-00040)-02", + "inverter": "unknown", + "inverterFw": "unknown", + "identifier": "c0619ab1ce1e", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1676384454, + "lastPowerUpOrRestart": 1676384307, + "machineSerialNumber": "HQ2217VFUGC", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/267460", + "accessLevel": 1, + "syscreated": 1676383955, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.81", + "vpnName": "HQ2217VFUGC", + "vpnOnline": false + }, + { + "name": "_ IBN Wendel, Luckenwalde, DE | SonneWattiv- Hirsch Consulting GmbH (AB2400047) SN20240049", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "506", + "identifier": "c0619ab3826d", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1716380537, + "lastPowerUpOrRestart": 1716380253, + "machineSerialNumber": "HQ2247WMTT4", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/438430", + "accessLevel": 1, + "syscreated": 1716368721, + "vrmOnline": true, + "alarm": true, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "_ IBN Wirth L, Riedenburg DE | Kälte Wirth GmbH (AB2400075) SN20240064", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "506", + "identifier": "c0619ab3941a", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1717510092, + "lastPowerUpOrRestart": 1717506338, + "machineSerialNumber": "HQ22476DCKN", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/443630", + "accessLevel": 1, + "syscreated": 1717502581, + "vrmOnline": true, + "alarm": true, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "_IBN 2024.0002 | EnergyOptimizer GmbH - Solarenergie (AB2300307)_SN20240010", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "508", + "identifier": "c0619ab1d15f", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1705574631, + "lastPowerUpOrRestart": 1705569304, + "machineSerialNumber": "HQ22179UC4G", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/391448", + "accessLevel": 1, + "syscreated": 1705562310, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "_IBN 21000668 Scheidegger-Moser, Alpnach Dorf/OW | SyEnergy AG (AB2300092)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab1d0aa", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1685963671, + "lastPowerUpOrRestart": 1685954685, + "machineSerialNumber": "HQ2217MF2V4", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/310959", + "accessLevel": 1, + "syscreated": 1685945288, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.4.7", + "vpnName": "HQ2217MF2V4", + "vpnOnline": false + }, + { + "name": "_IBN Andreas Czech, Mühlheim/Main/D | Daniel Gebert Technik (2022-00495)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1680a", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1683639608, + "lastPowerUpOrRestart": 1683623956, + "machineSerialNumber": "HQ2211NRM3U", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/268233", + "accessLevel": 1, + "syscreated": 1676537170, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.92", + "vpnName": "HQ2211NRM3U", + "vpnOnline": false + }, + { + "name": "_IBN Auton / Belgium / No. 2", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "496", + "identifier": "48e7da87ae47", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 3, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620056, + "lastPowerUpOrRestart": 1691676716, + "machineSerialNumber": "HQ2148NWG9J", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/188629", + "accessLevel": 1, + "syscreated": 1656321860, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.63", + "vpnName": "HQ2148NWG9J", + "vpnOnline": true + }, { "name": "_IBN Bätterkinden", + "inverter": "unknown", + "inverterFw": "unknown", "identifier": "00e93aac45d7", "hasMains": false, "hasGenerator": false, @@ -184,10 +1636,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1645119110, + "lastConnection": 1714957593, "lastPowerUpOrRestart": 1644962387, "machineSerialNumber": "HQ21399KVT9", - "type": "Cerbo GX", + "controllerType": "Cerbo GX", "vrmLink": "vrm.victronenergy.com/installation/156132", "accessLevel": 1, "syscreated": 1644962061, @@ -198,107 +1650,84 @@ "vpnOnline": false }, { - "name": "_IBN Bösiger, Matten/BE | BEO-SiNa GmbH (2021-00206)", + "name": "_IBN Bourquenoud, Charmey/FR | Easy-sun Sarl (AB2300016)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "490", - "identifier": "48e7da898067", - "hasMains": false, - "hasGenerator": false, - "nbMppts": 2, - "nbPvInverters": 0, - "firmware": "v2.73~r6", - "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1642596551, - "lastPowerUpOrRestart": 1642519749, - "machineSerialNumber": "HQ2128NWV97", - "type": "Cerbo GX", - "vrmLink": "vrm.victronenergy.com/installation/150190", - "accessLevel": 1, - "syscreated": 1642426808, - "vrmOnline": true, - "alarm": false, - "vpnIp": "10.2.1.179", - "vpnName": "HQ2128NWV97", - "vpnOnline": false - }, - { - "name": "_IBN Brunner, Jona/ZH | Solarville AG (2021-00212)", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "490", - "identifier": "48e7da8997cf", + "inverterFw": "502", + "identifier": "c0619ab1dd2b", "hasMains": false, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 0, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1642500051, - "lastPowerUpOrRestart": 1642498370, - "machineSerialNumber": "HQ2128J3RHN", - "type": "Cerbo GX", - "vrmLink": "vrm.victronenergy.com/installation/150114", + "lastConnection": 1718620083, + "lastPowerUpOrRestart": 1712840898, + "machineSerialNumber": "HQ2219FN2ER", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/293240", "accessLevel": 1, - "syscreated": 1642406712, + "syscreated": 1682081192, "vrmOnline": true, "alarm": false, - "vpnIp": "10.2.1.178", - "vpnName": "HQ2128J3RHN", - "vpnOnline": false - }, - { - "name": "_IBN Castagna, Contar/TI | Casa Castagna (2021-00207)", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "490", - "identifier": "48e7da859291", - "hasMains": false, - "hasGenerator": false, - "nbMppts": 0, - "nbPvInverters": 0, - "firmware": "v2.73~r6", - "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1651163624, - "lastPowerUpOrRestart": 1650977139, - "machineSerialNumber": "HQ2128FPAYJ", - "type": "Cerbo GX", - "vrmLink": "vrm.victronenergy.com/installation/152257", - "accessLevel": 1, - "syscreated": 1643294439, - "vrmOnline": true, - "alarm": false, - "vpnIp": "10.2.1.185", - "vpnName": "HQ2128FPAYJ", + "vpnIp": "10.2.3.199", + "vpnName": "HQ2219FN2ER", "vpnOnline": true }, { - "name": "_IBN Ebnöther, Hoffeld/SG | ie (2021-00136) | MNS 200 21 37 4 0196 | Slidomo 9 |", + "name": "_IBN Brand, Anwil CH | D. Vonarburg GmbH, Elektrounternehmung (AB2400041) SN20240039", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "485", - "identifier": "e415f6fc4668", + "inverterFw": "508", + "identifier": "c0619ab38905", "hasMains": true, "hasGenerator": false, - "nbMppts": 1, + "nbMppts": 0, "nbPvInverters": 0, - "firmware": "v2.60~ditto", + "firmware": "v2.73~r12", "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1631800742, - "lastPowerUpOrRestart": 1631800197, - "machineSerialNumber": "HQ2101U4B9M", - "type": "Venus GX", - "vrmLink": "vrm.victronenergy.com/installation/128479", + "updateTo": "Testing", + "lastConnection": 1714567426, + "lastPowerUpOrRestart": 1714544986, + "machineSerialNumber": "HQ2247J3EVV", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/391880", "accessLevel": 1, - "syscreated": 1631799631, + "syscreated": 1705648292, "vrmOnline": true, "alarm": false, - "vpnIp": "10.2.1.121", - "vpnName": "HQ2101U4B9M", + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "_IBN Ernestine-Melzer-Haus, Feucht/DE | PV Total GmbH & Co.KG (AB2300313)_SN20230225", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "507", + "identifier": "c0619ab38ac9", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718112948, + "lastPowerUpOrRestart": 1718112345, + "machineSerialNumber": "HQ2247HRF3E", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/375979", + "accessLevel": 1, + "syscreated": 1701330627, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", "vpnOnline": false }, { "name": "_IBN Ersatzteil Cameroun | Haute Ecole (2021-00135)", + "inverter": "unknown", + "inverterFw": "unknown", "identifier": "e415f6f85728", "hasMains": false, "hasGenerator": false, @@ -310,7 +1739,7 @@ "lastConnection": 1630418528, "lastPowerUpOrRestart": 1630418469, "machineSerialNumber": "HQ204663YHM", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/125855", "accessLevel": 1, "syscreated": 1630416677, @@ -321,82 +1750,7 @@ "vpnOnline": false }, { - "name": "_IBN Furian, Rabius/GR | Solpic AG (2021-00233)", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "490", - "identifier": "48e7da8959c7", - "hasMains": false, - "hasGenerator": false, - "nbMppts": 0, - "nbPvInverters": 0, - "firmware": "v2.73~r6", - "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1644418328, - "lastPowerUpOrRestart": 1644417269, - "machineSerialNumber": "HQ213924F4A", - "type": "Cerbo GX", - "vrmLink": "vrm.victronenergy.com/installation/154880", - "accessLevel": 1, - "syscreated": 1644416251, - "vrmOnline": true, - "alarm": false, - "vpnIp": "10.2.1.195", - "vpnName": "HQ213924F4A", - "vpnOnline": false - }, - { - "name": "_IBN Gartenbau, Utzigen/BE | Burkhard Elektro AG (2022-00071)", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "490", - "identifier": "48e7da886407", - "hasMains": false, - "hasGenerator": false, - "nbMppts": 3, - "nbPvInverters": 0, - "firmware": "v2.73~r6", - "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1649926376, - "lastPowerUpOrRestart": 1649917178, - "machineSerialNumber": "HQ21393FGNM", - "type": "Cerbo GX", - "vrmLink": "vrm.victronenergy.com/installation/169422", - "accessLevel": 1, - "syscreated": 1649859321, - "vrmOnline": true, - "alarm": true, - "vpnIp": "10.2.1.253", - "vpnName": "HQ21393FGNM", - "vpnOnline": false - }, - { - "name": "_IBN Gentinetta, Basel/BS | Fabian Gentinetta (2021-00209)", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "490", - "identifier": "0281230c523a", - "hasMains": true, - "hasGenerator": false, - "nbMppts": 1, - "nbPvInverters": 0, - "firmware": "v2.73~r6", - "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1643104099, - "lastPowerUpOrRestart": 1643103003, - "machineSerialNumber": "HQ21075A4ND", - "type": "MultiPlus-II GX", - "vrmLink": "vrm.victronenergy.com/installation/151662", - "accessLevel": 1, - "syscreated": 1643100809, - "vrmOnline": true, - "alarm": false, - "vpnIp": "10.2.1.183", - "vpnName": "HQ21075A4ND", - "vpnOnline": false - }, - { - "name": "_IBN GerMar / GerMar GmbH | MNS 400 21 40 4 0206 |Salidomo 18 |", + "name": "_IBN GerMar | GerMar GmbH | MNS 400 21 40 4 0206 | Salidomo 18", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "485", "identifier": "0479b7b3351f", @@ -410,7 +1764,7 @@ "lastConnection": 1633933575, "lastPowerUpOrRestart": 1633932556, "machineSerialNumber": "HQ21011P913", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/131729", "accessLevel": 1, "syscreated": 1633608076, @@ -425,92 +1779,42 @@ "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "490", "identifier": "48e7da88183f", - "hasMains": false, + "hasMains": true, "hasGenerator": false, "nbMppts": 0, - "nbPvInverters": 0, + "nbPvInverters": 1, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1650610681, - "lastPowerUpOrRestart": 1650606207, + "lastConnection": 1718620075, + "lastPowerUpOrRestart": 1660901614, "machineSerialNumber": "HQ21482HNH6", - "type": "Cerbo GX", + "controllerType": "Cerbo GX", "vrmLink": "vrm.victronenergy.com/installation/170993", "accessLevel": 1, "syscreated": 1650543723, "vrmOnline": true, - "alarm": true, + "alarm": false, "vpnIp": "10.2.2.4", "vpnName": "HQ21482HNH6", - "vpnOnline": false - }, - { - "name": "_IBN Gilgen, Schwarzenburg/BE | Breu AG (2022-00077)", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "490", - "identifier": "00e93aac4603", - "hasMains": false, - "hasGenerator": false, - "nbMppts": 0, - "nbPvInverters": 0, - "firmware": "v2.73~r6", - "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1651163610, - "lastPowerUpOrRestart": 1650895946, - "machineSerialNumber": "HQ2139A6K3C", - "type": "Cerbo GX", - "vrmLink": "vrm.victronenergy.com/installation/167146", - "accessLevel": 1, - "syscreated": 1649147284, - "vrmOnline": true, - "alarm": false, - "vpnIp": "10.2.1.243", - "vpnName": "HQ2139A6K3C", "vpnOnline": true }, { - "name": "_IBN Hilberath, DE | Elektrotechnik Berzen GmbH (2021-00151)", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "490", - "identifier": "0479b7f17889", - "hasMains": true, - "hasGenerator": false, - "nbMppts": 1, - "nbPvInverters": 0, - "firmware": "v2.73~r6", - "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1639065772, - "lastPowerUpOrRestart": 1639054253, - "machineSerialNumber": "HQ2101HICXX", - "type": "Venus GX", - "vrmLink": "vrm.victronenergy.com/installation/143807", - "accessLevel": 1, - "syscreated": 1639042294, - "vrmOnline": true, - "alarm": false, - "vpnIp": "10.2.1.173", - "vpnName": "HQ2101HICXX", - "vpnOnline": false - }, - { - "name": "_IBN Höhener, Wädenswil/ZH | EWA Elektrizitätswerk Schwyz AG (2022-00040)", + "name": "_IBN Höhener, Wädenswil/ZH/CH | EWS Elektrizitätswerk Schwyz AG (2022-00040)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "490", "identifier": "00e93aac383d", - "hasMains": false, + "hasMains": true, "hasGenerator": false, "nbMppts": 0, - "nbPvInverters": 0, + "nbPvInverters": 1, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1648643065, - "lastPowerUpOrRestart": 1648642646, + "lastConnection": 1718620090, + "lastPowerUpOrRestart": 1664363782, "machineSerialNumber": "HQ21393QQZ9", - "type": "Cerbo GX", + "controllerType": "Cerbo GX", "vrmLink": "vrm.victronenergy.com/installation/165437", "accessLevel": 1, "syscreated": 1648568165, @@ -518,663 +1822,438 @@ "alarm": false, "vpnIp": "10.2.1.236", "vpnName": "HQ21393QQZ9", - "vpnOnline": false - }, - { - "name": "_IBN Holzbau, DE | Elektro- und Gebäudetechnik Lemmle (2022-00088)", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "490", - "identifier": "48e7da88a693", - "hasMains": true, - "hasGenerator": false, - "nbMppts": 0, - "nbPvInverters": 0, - "firmware": "v2.73~r6", - "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1650521821, - "lastPowerUpOrRestart": 1650443485, - "machineSerialNumber": "HQ21397WXFY", - "type": "Cerbo GX", - "vrmLink": "vrm.victronenergy.com/installation/170518", - "accessLevel": 1, - "syscreated": 1650380322, - "vrmOnline": true, - "alarm": true, - "vpnIp": "10.2.2.1", - "vpnName": "HQ21397WXFY", - "vpnOnline": false - }, - { - "name": "_IBN Kossobutzki, Mudenbach/DE | Drik Kossobutzki (2021-00213)", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "490", - "identifier": "48e7da857daf", - "hasMains": false, - "hasGenerator": false, - "nbMppts": 2, - "nbPvInverters": 0, - "firmware": "v2.73~r6", - "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1642606042, - "lastPowerUpOrRestart": 1642604826, - "machineSerialNumber": "HQ2128NDE9X", - "type": "Cerbo GX", - "vrmLink": "vrm.victronenergy.com/installation/149822", - "accessLevel": 1, - "syscreated": 1642169306, - "vrmOnline": true, - "alarm": false, - "vpnIp": "10.2.1.180", - "vpnName": "HQ2128NDE9X", - "vpnOnline": false - }, - { - "name": "_IBN Kümin, Schattdorf/UR | EWA-energieURI AG (2021-00129) | MNS 200 21 37 4 0197 | Salidomo 9 |", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "496", - "identifier": "0479b7aeadbf", - "hasMains": true, - "hasGenerator": false, - "nbMppts": 0, - "nbPvInverters": 2, - "firmware": "v2.73~r6", - "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1651163629, - "lastPowerUpOrRestart": 1651161628, - "machineSerialNumber": "HQ2046PXCSV", - "type": "Venus GX", - "vrmLink": "vrm.victronenergy.com/installation/128444", - "accessLevel": 1, - "syscreated": 1631792297, - "vrmOnline": true, - "alarm": false, - "vpnIp": "10.2.1.119", - "vpnName": "HQ2046PXCSV", "vpnOnline": true }, { - "name": "_IBN Lingg, Uettligen/TG | Elektro Hegg AG (2022-00080)", + "name": "_IBN Höltl; DE | PV Total GmbH & Co KG (AB2300198) SN20230121", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "490", - "identifier": "48e7da88e0ad", - "hasMains": true, - "hasGenerator": false, - "nbMppts": 2, - "nbPvInverters": 0, - "firmware": "v2.73~r6", - "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1650626453, - "lastPowerUpOrRestart": 1650622299, - "machineSerialNumber": "HQ2148VVFRF", - "type": "Cerbo GX", - "vrmLink": "vrm.victronenergy.com/installation/171223", - "accessLevel": 1, - "syscreated": 1650619768, - "vrmOnline": true, - "alarm": false, - "vpnIp": "10.2.2.5", - "vpnName": "HQ2148VVFRF", - "vpnOnline": false - }, - { - "name": "_IBN Mann, DE | Daniel Gebert Technik Gebert (2022-00098)", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "490", - "identifier": "48e7da87b40b", - "hasMains": true, - "hasGenerator": false, - "nbMppts": 0, - "nbPvInverters": 0, - "firmware": "v2.73~r6", - "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1650552600, - "lastPowerUpOrRestart": 1650541080, - "machineSerialNumber": "HQ2148RFK6N", - "type": "Cerbo GX", - "vrmLink": "vrm.victronenergy.com/installation/170970", - "accessLevel": 1, - "syscreated": 1650540204, - "vrmOnline": true, - "alarm": false, - "vpnIp": "10.2.2.3", - "vpnName": "HQ2148RFK6N", - "vpnOnline": false - }, - { - "name": "_IBN Mares, Cumpadials/GR | electro cadi SA (2021-00236)", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "490", - "identifier": "102c6bc2b190", - "hasMains": false, - "hasGenerator": false, - "nbMppts": 2, - "nbPvInverters": 0, - "firmware": "v2.73~r6", - "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1644998947, - "lastPowerUpOrRestart": 1644921923, - "machineSerialNumber": "HQ2118DTKJ4", - "type": "Cerbo GX", - "vrmLink": "vrm.victronenergy.com/installation/155858", - "accessLevel": 1, - "syscreated": 1644855960, - "vrmOnline": true, - "alarm": false, - "vpnIp": "10.2.1.200", - "vpnName": "HQ2118DTKJ4", - "vpnOnline": false - }, - { - "name": "_IBN Meyer, CH | A + Elektro AG (2022-00085)", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "490", - "identifier": "102c6b64ac69", - "hasMains": true, - "hasGenerator": false, - "nbMppts": 0, - "nbPvInverters": 0, - "firmware": "v2.73~r6", - "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1649768686, - "lastPowerUpOrRestart": 1649765592, - "machineSerialNumber": "HQ21045DL1H", - "type": "Cerbo GX", - "vrmLink": "vrm.victronenergy.com/installation/169079", - "accessLevel": 1, - "syscreated": 1649764707, - "vrmOnline": true, - "alarm": false, - "vpnIp": "10.2.1.251", - "vpnName": "HQ21045DL1H", - "vpnOnline": false - }, - { - "name": "_IBN Naef, Beringen/SH | Grossmann Brauchli AG (2022-00093)", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "490", - "identifier": "102c6b861181", - "hasMains": true, - "hasGenerator": false, - "nbMppts": 0, - "nbPvInverters": 0, - "firmware": "v2.73~r6", - "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1649769018, - "lastPowerUpOrRestart": 1649766017, - "machineSerialNumber": "HQ2104QK3F8", - "type": "Cerbo GX", - "vrmLink": "vrm.victronenergy.com/installation/168853", - "accessLevel": 1, - "syscreated": 1649692137, - "vrmOnline": true, - "alarm": false, - "vpnIp": "10.2.1.250", - "vpnName": "HQ2104QK3F8", - "vpnOnline": false - }, - { - "name": "_IBN Riedi, Niederuzwil/SG | Jaeggi Gmünder Energietechnik AG (2022-00094)", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "490", - "identifier": "48e7da889583", - "hasMains": true, - "hasGenerator": false, - "nbMppts": 0, - "nbPvInverters": 0, - "firmware": "v2.73~r6", - "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1650455018, - "lastPowerUpOrRestart": 1650383875, - "machineSerialNumber": "HQ213937AJJ", - "type": "Cerbo GX", - "vrmLink": "vrm.victronenergy.com/installation/170526", - "accessLevel": 1, - "syscreated": 1650382332, - "vrmOnline": true, - "alarm": false, - "vpnIp": "10.2.2.2", - "vpnName": "HQ213937AJJ", - "vpnOnline": false - }, - { - "name": "_IBN Rindlisbacher, Allschwil/BL | STARK STROM GmbH (2022-00009)", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "494", - "identifier": "102c6b9d06b9", + "inverterFw": "502", + "identifier": "c0619ab2df6e", "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.73~r6", + "firmware": "v2.73~r12", "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1651163642, - "lastPowerUpOrRestart": 1647575777, - "machineSerialNumber": "HQ2118D6HKR", - "type": "Cerbo GX", - "vrmLink": "vrm.victronenergy.com/installation/157562", + "updateTo": "Testing", + "lastConnection": 1718620061, + "lastPowerUpOrRestart": 1708674601, + "machineSerialNumber": "HQ2242FHENV", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/321759", "accessLevel": 1, - "syscreated": 1645601364, + "syscreated": 1688115004, "vrmOnline": true, "alarm": false, - "vpnIp": "10.2.1.207", - "vpnName": "HQ2118D6HKR", - "vpnOnline": true - }, - { - "name": "_IBN Rosner, Tumegl/GR | Solpic AG (2022-00083)", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "490", - "identifier": "48e7da86bd05", - "hasMains": true, - "hasGenerator": false, - "nbMppts": 0, - "nbPvInverters": 0, - "firmware": "v2.73~r6", - "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1649944126, - "lastPowerUpOrRestart": 1649943478, - "machineSerialNumber": "HQ2128VT9YV", - "type": "Cerbo GX", - "vrmLink": "vrm.victronenergy.com/installation/169632", - "accessLevel": 1, - "syscreated": 1649927692, - "vrmOnline": true, - "alarm": true, - "vpnIp": "10.2.1.254", - "vpnName": "HQ2128VT9YV", + "vpnIp": "", + "vpnName": "", "vpnOnline": false }, { - "name": "_IBN Ryter, Interlaken/BE | Gerber AG (2022-00038)", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "490", - "identifier": "102c6b64353f", + "name": "_IBN Kamerun (AB2300191)", + "inverter": "unknown", + "inverterFw": "unknown", + "identifier": "c0619ab1dd57", "hasMains": false, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 0, - "firmware": "v2.73~r6", + "firmware": "v2.73~r12", "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1647001927, - "lastPowerUpOrRestart": 1646992478, - "machineSerialNumber": "HQ2104DZDKZ", - "type": "Cerbo GX", - "vrmLink": "vrm.victronenergy.com/installation/161084", + "updateTo": "Testing", + "lastConnection": 1707402695, + "lastPowerUpOrRestart": 1707401375, + "machineSerialNumber": "HQ22192FYN2", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/332547", "accessLevel": 1, - "syscreated": 1646990904, + "syscreated": 1690533546, "vrmOnline": true, - "alarm": true, - "vpnIp": "10.2.1.225", - "vpnName": "HQ2104DZDKZ", + "alarm": false, + "vpnIp": "", + "vpnName": "", "vpnOnline": false }, { - "name": "_IBN Schipfistrasse 7 Schattdorf/UR | EWA-energieURI AG (2022-00047)", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "490", - "identifier": "00e93aac3e17", - "hasMains": true, - "hasGenerator": false, - "nbMppts": 0, - "nbPvInverters": 1, - "firmware": "v2.73~r6", - "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1651163614, - "lastPowerUpOrRestart": 1650931287, - "machineSerialNumber": "HQ2139JG3E3", - "type": "Cerbo GX", - "vrmLink": "vrm.victronenergy.com/installation/163626", - "accessLevel": 1, - "syscreated": 1647967436, - "vrmOnline": true, - "alarm": true, - "vpnIp": "10.2.1.231", - "vpnName": "HQ2139JG3E3", - "vpnOnline": true - }, - { - "name": "_IBN Schneider, Schüpfen/BE | Guggisberg Dachtechnik AG (2022-00076)", + "name": "_IBN Komm. Stw. Bühl PV Sauwasen-20240780, DE | Batterie Center Süd GmbH (AB2400035) SN20240046", "inverter": "MultiPlus-II 48/5000/70-48", - "inverterFw": "490", - "identifier": "48e7da89e199", + "inverterFw": "506", + "identifier": "c0619ab385a5", "hasMains": true, "hasGenerator": false, - "nbMppts": 2, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1715775127, + "lastPowerUpOrRestart": 1715771089, + "machineSerialNumber": "HQ2247CKCX3", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/361210", + "accessLevel": 1, + "syscreated": 1697705747, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "_IBN Lagerhalle / Elektro- und Gebäudetechnik Lemmle/DE | (AB2300285) SN20230218", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "506", + "identifier": "c0619ab389e7", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1697700732, + "lastPowerUpOrRestart": 1697630868, + "machineSerialNumber": "HQ2247M7DFE", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/360838", + "accessLevel": 1, + "syscreated": 1697628758, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "_IBN Lobsiger+Schürch/BE | eltanorm GmbH (AB2300231) SN20230105", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d222", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1687864741, + "lastPowerUpOrRestart": 1687864705, + "machineSerialNumber": "HQ2217GPN79", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/318886", + "accessLevel": 1, + "syscreated": 1687511072, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "_IBN Martinsesch, Bad Schussenried/DE | Elektro- und Gebäudetechnik Lemmle (AB2300084) SN 20230068", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab2def4", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1686922083, + "lastPowerUpOrRestart": 1686906239, + "machineSerialNumber": "HQ2242JEJ4U", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/315406", + "accessLevel": 1, + "syscreated": 1686817013, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.4.41", + "vpnName": "HQ2242JEJ4U", + "vpnOnline": false + }, + { + "name": "_IBN Martinsesch, Bad Schussenried/DE | Elektro- und Gebäudetechnik Lemmle (AB2300084) SN 20230069", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d1a8", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1686908985, + "lastPowerUpOrRestart": 1686903821, + "machineSerialNumber": "HQ2217UQE66", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/315866", + "accessLevel": 1, + "syscreated": 1686900206, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.4.40", + "vpnName": "HQ2217UQE66", + "vpnOnline": false + }, + { + "name": "_IBN Martinsesch, Bad Schussenried/DE | Elektro- und Gebäudetechnik Lemmle (AB2300084) SN 20230069", + "inverter": "unknown", + "inverterFw": "unknown", + "identifier": "c0619ab386fd", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1695286746, + "lastPowerUpOrRestart": 1695286737, + "machineSerialNumber": "HQ22473MEVQ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/351312", + "accessLevel": 1, + "syscreated": 1695285796, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "_IBN Masseria, Cadenazzo/TI | Bouygues E&S In Tec Schweiz AG (2022-00173)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "497", + "identifier": "48e7da8896a1", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, "nbPvInverters": 0, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1649403813, - "lastPowerUpOrRestart": 1649400816, - "machineSerialNumber": "HQ213936424", - "type": "Cerbo GX", - "vrmLink": "vrm.victronenergy.com/installation/167987", + "lastConnection": 1694589913, + "lastPowerUpOrRestart": 1694588882, + "machineSerialNumber": "HQ2150JDWWA", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/193320", "accessLevel": 1, - "syscreated": 1649345965, + "syscreated": 1657638447, "vrmOnline": true, - "alarm": false, - "vpnIp": "10.2.1.248", - "vpnName": "HQ213936424", + "alarm": true, + "vpnIp": "10.2.2.80", + "vpnName": "HQ2150JDWWA", "vpnOnline": false }, { - "name": "_IBN Schwroom, Bergkirchen/DE | EBS Elektrotechnik Stefan GmbH (2022-00092)", + "name": "_IBN Material | Scherrer Gebäudehüllen AG / ZH (AB2300242) SN20230208", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "490", - "identifier": "00e93aac3463", + "inverterFw": "506", + "identifier": "c0619ab1be0f", "hasMains": true, "hasGenerator": false, - "nbMppts": 2, - "nbPvInverters": 6, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1695649149, + "lastPowerUpOrRestart": 1695644589, + "machineSerialNumber": "HQ22162CJEQ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/352637", + "accessLevel": 1, + "syscreated": 1695642700, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "_IBN Matzies / DE | UTK Lang GmbH (AB2300246) SN20230196", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "506", + "identifier": "c0619ab383a7", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620056, + "lastPowerUpOrRestart": 1711678866, + "machineSerialNumber": "HQ2247QJ2UJ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/346129", + "accessLevel": 1, + "syscreated": 1693985398, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "_IBN OL Les Martinets-Gland/VD | OptimalLiving SA (AB2300057 1/3)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d1a7", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1684316737, + "lastPowerUpOrRestart": 1684312084, + "machineSerialNumber": "HQ2217Y3ZGE", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/303310", + "accessLevel": 1, + "syscreated": 1684308315, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.230", + "vpnName": "HQ2217Y3ZGE", + "vpnOnline": false + }, + { + "name": "_IBN OL Les Martinets-Gland/VD | OptimalLiving SA (AB2300057 2/3)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1ddb1", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1684747822, + "lastPowerUpOrRestart": 1684743833, + "machineSerialNumber": "HQ2219U7DGM", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/295869", + "accessLevel": 1, + "syscreated": 1682662194, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.234", + "vpnName": "HQ2219U7DGM", + "vpnOnline": false + }, + { + "name": "_IBN OL Les Martinets-Gland/VD | OptimalLiving SA (AB2300057 3/3)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d0af", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1684760262, + "lastPowerUpOrRestart": 1684331009, + "machineSerialNumber": "HQ2217PJK43", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/303452", + "accessLevel": 1, + "syscreated": 1684324033, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.235", + "vpnName": "HQ2217PJK43", + "vpnOnline": false + }, + { + "name": "_IBN Sager, Genolier/VD | Easy-sun (2022-00172)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "497", + "identifier": "48e7da883e77", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1650544931, - "lastPowerUpOrRestart": 1649203953, - "machineSerialNumber": "HQ2139WHQNE", - "type": "Cerbo GX", - "vrmLink": "vrm.victronenergy.com/installation/163872", + "lastConnection": 1657204077, + "lastPowerUpOrRestart": 1657188517, + "machineSerialNumber": "HQ2148QNH32", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/191756", "accessLevel": 1, - "syscreated": 1648047796, + "syscreated": 1657186016, "vrmOnline": true, "alarm": false, - "vpnIp": "10.2.1.232", - "vpnName": "HQ2139WHQNE", + "vpnIp": "10.2.2.75", + "vpnName": "HQ2148QNH32", "vpnOnline": false }, { - "name": "_IBN Scotton, Lätti/BE | Feldmann & . AG (2022-00007)", + "name": "_IBN Schniederdamm, Langeoog/DE | ITK Lang GmbH (2022-00138)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "490", - "identifier": "48e7da85ce63", + "inverterFw": "502", + "identifier": "48e7da8681b3", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620059, + "lastPowerUpOrRestart": 1683758982, + "machineSerialNumber": "HQ2201PXJDJ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/183531", + "accessLevel": 1, + "syscreated": 1654678812, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.41", + "vpnName": "HQ2201PXJDJ", + "vpnOnline": true + }, + { + "name": "_IBN Stadler Heinz Brienz/BE | Elektro Bachmann AG (AB2300223) SN20230183", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "506", + "identifier": "c0619ab1d10d", "hasMains": true, "hasGenerator": false, "nbMppts": 1, "nbPvInverters": 0, - "firmware": "v2.73~r6", + "firmware": "v2.73~r12", "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1645774616, - "lastPowerUpOrRestart": 1645770498, - "machineSerialNumber": "HQ2139J9WHD", - "type": "Cerbo GX", - "vrmLink": "vrm.victronenergy.com/installation/157963", + "updateTo": "Testing", + "lastConnection": 1693474976, + "lastPowerUpOrRestart": 1693461479, + "machineSerialNumber": "HQ2217C6UT4", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/343905", "accessLevel": 1, - "syscreated": 1645717404, - "vrmOnline": true, - "alarm": false, - "vpnIp": "10.2.1.210", - "vpnName": "HQ2139J9WHD", - "vpnOnline": false - }, - { - "name": "_IBN Sommer, Uhwiesen/ZH | Scherrer Martin (2021-00239)", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "490", - "identifier": "102c6b86164d", - "hasMains": false, - "hasGenerator": false, - "nbMppts": 0, - "nbPvInverters": 0, - "firmware": "v2.73~r6", - "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1644842592, - "lastPowerUpOrRestart": 1644836113, - "machineSerialNumber": "HQ2118MV2KV", - "type": "Cerbo GX", - "vrmLink": "vrm.victronenergy.com/installation/155739", - "accessLevel": 1, - "syscreated": 1644832775, - "vrmOnline": true, - "alarm": false, - "vpnIp": "10.2.1.198", - "vpnName": "HQ2118MV2KV", - "vpnOnline": false - }, - { - "name": "_IBN Sutter, Märwil/TG | Gebr. Willi Elektro AG (2022-00028)", - "inverter": "MultiPlus-II 48/5000/70-48", - "inverterFw": "490", - "identifier": "48e7da8872fd", - "hasMains": false, - "hasGenerator": false, - "nbMppts": 0, - "nbPvInverters": 0, - "firmware": "v2.73~r6", - "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1647417799, - "lastPowerUpOrRestart": 1647417625, - "machineSerialNumber": "HQ2139P363G", - "type": "Cerbo GX", - "vrmLink": "vrm.victronenergy.com/installation/161756", - "accessLevel": 1, - "syscreated": 1647277400, - "vrmOnline": true, - "alarm": false, - "vpnIp": "10.2.1.227", - "vpnName": "HQ2139P363G", - "vpnOnline": false - }, - { - "name": "_IBN tbd | EnergyOptimizer GmbH - Solarenergie (2021-00237)", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "490", - "identifier": "48e7da8590cf", - "hasMains": true, - "hasGenerator": false, - "nbMppts": 0, - "nbPvInverters": 0, - "firmware": "v2.73~r6", - "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1644828630, - "lastPowerUpOrRestart": 1644828186, - "machineSerialNumber": "HQ21282HJWR", - "type": "Cerbo GX", - "vrmLink": "vrm.victronenergy.com/installation/155417", - "accessLevel": 1, - "syscreated": 1644590780, - "vrmOnline": true, - "alarm": false, - "vpnIp": "10.2.1.197", - "vpnName": "HQ21282HJWR", - "vpnOnline": false - }, - { - "name": "_IBN tbd, ? | A+ Elektro AG (2022-00095)", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "490", - "identifier": "48e7da87804b", - "hasMains": true, - "hasGenerator": false, - "nbMppts": 0, - "nbPvInverters": 0, - "firmware": "v2.73~r6", - "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1650634911, - "lastPowerUpOrRestart": 1650628156, - "machineSerialNumber": "HQ2148D2XNN", - "type": "Cerbo GX", - "vrmLink": "vrm.victronenergy.com/installation/171261", - "accessLevel": 1, - "syscreated": 1650627289, - "vrmOnline": true, - "alarm": false, - "vpnIp": "10.2.2.6", - "vpnName": "HQ2148D2XNN", - "vpnOnline": false - }, - { - "name": "_IBN tbd, CH | IB Wohlen AG (2022-00061)", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "490", - "identifier": "48e7da8829af", - "hasMains": false, - "hasGenerator": false, - "nbMppts": 0, - "nbPvInverters": 0, - "firmware": "v2.73~r6", - "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1649157176, - "lastPowerUpOrRestart": 1649153036, - "machineSerialNumber": "HQ2139YWUUM", - "type": "Cerbo GX", - "vrmLink": "vrm.victronenergy.com/installation/167022", - "accessLevel": 1, - "syscreated": 1649089142, - "vrmOnline": true, - "alarm": false, - "vpnIp": "10.2.1.242", - "vpnName": "HQ2139YWUUM", - "vpnOnline": false - }, - { - "name": "_IBN tbd, DE | EBS Elektrotechnik Stefan GmbH (2022-00099)", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "490", - "identifier": "48e7da87e683", - "hasMains": true, - "hasGenerator": false, - "nbMppts": 0, - "nbPvInverters": 0, - "firmware": "v2.73~r6", - "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1651059268, - "lastPowerUpOrRestart": 1650986242, - "machineSerialNumber": "HQ2139EHQ4C", - "type": "Cerbo GX", - "vrmLink": "vrm.victronenergy.com/installation/172142", - "accessLevel": 1, - "syscreated": 1650985700, - "vrmOnline": true, - "alarm": false, - "vpnIp": "10.2.2.9", - "vpnName": "HQ2139EHQ4C", - "vpnOnline": false - }, - { - "name": "_IBN tbd, DE | EBS Elektrotechnik Stefan GmbH (2022-00101)", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "490", - "identifier": "102c6b9d086a", - "hasMains": true, - "hasGenerator": false, - "nbMppts": 0, - "nbPvInverters": 0, - "firmware": "v2.73~r6", - "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1651068246, - "lastPowerUpOrRestart": 1651055004, - "machineSerialNumber": "HQ2118KRNAZ", - "type": "Cerbo GX", - "vrmLink": "vrm.victronenergy.com/installation/172345", - "accessLevel": 1, - "syscreated": 1651052713, + "syscreated": 1693394651, "vrmOnline": true, "alarm": true, - "vpnIp": "10.2.2.10", - "vpnName": "HQ2118KRNAZ", + "vpnIp": "", + "vpnName": "", "vpnOnline": false }, { - "name": "_IBN tbd, DE | EBS Elektrotechnik Stefan GmbH (2022-00102)", + "name": "_IBN tbd Weisshaubt, Neunkirch/SH | Lutz Bodenmüller AG (2022-00070)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "490", - "identifier": "48e7da85c767", - "hasMains": true, - "hasGenerator": false, - "nbMppts": 0, - "nbPvInverters": 0, - "firmware": "v2.73~r6", - "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1651163610, - "lastPowerUpOrRestart": 1651153890, - "machineSerialNumber": "HQ2148UK7R9", - "type": "Cerbo GX", - "vrmLink": "vrm.victronenergy.com/installation/172696", - "accessLevel": 1, - "syscreated": 1651152180, - "vrmOnline": true, - "alarm": false, - "vpnIp": "10.2.2.11", - "vpnName": "HQ2148UK7R9", - "vpnOnline": true - }, - { - "name": "_IBN tbd, DE | EBS Elektrotechnik Stefan GmbH (2022-00103)", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "490", - "identifier": "48e7da872851", - "hasMains": true, - "hasGenerator": false, - "nbMppts": 0, - "nbPvInverters": 0, - "firmware": "v2.73~r6", - "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1651163636, - "lastPowerUpOrRestart": 1651159073, - "machineSerialNumber": "HQ2148FZZGU", - "type": "Cerbo GX", - "vrmLink": "vrm.victronenergy.com/installation/172747", - "accessLevel": 1, - "syscreated": 1651158295, - "vrmOnline": true, - "alarm": false, - "vpnIp": "10.2.2.12", - "vpnName": "HQ2148FZZGU", - "vpnOnline": true - }, - { - "name": "_IBN tbd, DE | EBS Elektrotechnik Stefen GmbH (2022-00100)", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "490", - "identifier": "102c6b643c58", - "hasMains": true, - "hasGenerator": false, - "nbMppts": 0, - "nbPvInverters": 0, - "firmware": "v2.73~r6", - "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1650976832, - "lastPowerUpOrRestart": 1650895464, - "machineSerialNumber": "HQ20484QQA5", - "type": "Cerbo GX", - "vrmLink": "vrm.victronenergy.com/installation/171840", - "accessLevel": 1, - "syscreated": 1650894662, - "vrmOnline": true, - "alarm": false, - "vpnIp": "10.2.2.8", - "vpnName": "HQ20484QQA5", - "vpnOnline": false - }, - { - "name": "_IBN tbd, in CH | Solarchain AG (2022-00036)", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "490", - "identifier": "48e7da886489", + "identifier": "48e7da8755b5", "hasMains": false, "hasGenerator": false, "nbMppts": 0, @@ -1182,96 +2261,73 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1646987337, - "lastPowerUpOrRestart": 1646984594, - "machineSerialNumber": "HQ2139ADQ6M", - "type": "Cerbo GX", - "vrmLink": "vrm.victronenergy.com/installation/160938", + "lastConnection": 1718620087, + "lastPowerUpOrRestart": 1708048597, + "machineSerialNumber": "HQ2139N6ZPZ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/171797", "accessLevel": 1, - "syscreated": 1646926244, + "syscreated": 1650888746, "vrmOnline": true, "alarm": false, - "vpnIp": "10.2.1.224", - "vpnName": "HQ2139ADQ6M", - "vpnOnline": false + "vpnIp": "10.2.2.7", + "vpnName": "HQ2139N6ZPZ", + "vpnOnline": true }, { - "name": "_IBN tbd, Mattenheim/DE | Elektrotechnik Schmidt (2022-00016", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "490", - "identifier": "c0619ab0350c", + "name": "_IBN tbd, Kaisten/ZG/CH l Elektro Siegrist AG (2023-5003)", + "inverter": "MultiPlus-II 48/10000/140-100/100", + "inverterFw": "502", + "identifier": "c0619ab2e86b", "hasMains": true, "hasGenerator": false, - "nbMppts": 0, + "nbMppts": 3, "nbPvInverters": 0, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1646750851, - "lastPowerUpOrRestart": 1646749969, - "machineSerialNumber": "HQ2122MJGT4", - "type": "MultiPlus-II GX", - "vrmLink": "vrm.victronenergy.com/installation/160387", + "lastConnection": 1686053615, + "lastPowerUpOrRestart": 1685956809, + "machineSerialNumber": "HQ2242AHF73", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/309005", "accessLevel": 1, - "syscreated": 1646746079, + "syscreated": 1685513036, "vrmOnline": true, "alarm": false, - "vpnIp": "10.2.1.222", - "vpnName": "HQ2122MJGT4", + "vpnIp": "10.2.4.5", + "vpnName": "HQ2242AHF73", "vpnOnline": false }, { "name": "_IBN tbd, St Pierre de Clages/VS | EFISOL SA (2022-00030)", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "490", + "inverter": "MultiPlus Compact 24/2000/50-30", + "inverterFw": "508", "identifier": "48e7da87553f", - "hasMains": true, + "hasMains": false, "hasGenerator": false, - "nbMppts": 1, + "nbMppts": 2, "nbPvInverters": 0, - "firmware": "v2.73~r6", + "firmware": "v3.14", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1646642231, - "lastPowerUpOrRestart": 1646640434, + "lastConnection": 1707297573, + "lastPowerUpOrRestart": 1707297424, "machineSerialNumber": "HQ2139K4KY2", - "type": "Cerbo GX", + "controllerType": "Cerbo GX", "vrmLink": "vrm.victronenergy.com/installation/159566", "accessLevel": 1, "syscreated": 1646391527, "vrmOnline": true, - "alarm": false, + "alarm": true, "vpnIp": "10.2.1.217", "vpnName": "HQ2139K4KY2", "vpnOnline": false }, - { - "name": "_IBN Tellenbach, Pieterlen/SO | Elektro Fahrni AG (2022-00033)", - "inverter": "MultiPlus-II 48/5000/70-48", - "inverterFw": "490", - "identifier": "48e7da869825", - "hasMains": true, - "hasGenerator": false, - "nbMppts": 2, - "nbPvInverters": 0, - "firmware": "v2.73~r6", - "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1647593727, - "lastPowerUpOrRestart": 1647533967, - "machineSerialNumber": "HQ2139FARR6", - "type": "Cerbo GX", - "vrmLink": "vrm.victronenergy.com/installation/162598", - "accessLevel": 1, - "syscreated": 1647531354, - "vrmOnline": true, - "alarm": false, - "vpnIp": "10.2.1.229", - "vpnName": "HQ2139FARR6", - "vpnOnline": false - }, { "name": "_IBN Test Neue", + "inverter": "unknown", + "inverterFw": "unknown", "identifier": "3403de79441f", "hasMains": true, "hasGenerator": true, @@ -1283,7 +2339,7 @@ "lastConnection": 1633958708, "lastPowerUpOrRestart": 1633945028, "machineSerialNumber": "HQ1907JKCP6", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/132250", "accessLevel": 1, "syscreated": 1633944691, @@ -1294,35 +2350,10 @@ "vpnOnline": false }, { - "name": "_IBN Treuthardt, Hasliberg/BE | Alex Gemperle AG (2021-00205)", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "496", - "identifier": "48e7da869953", - "hasMains": true, - "hasGenerator": false, - "nbMppts": 1, - "nbPvInverters": 1, - "firmware": "v2.73~r6", - "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1651163662, - "lastPowerUpOrRestart": 1650897495, - "machineSerialNumber": "HQ2139NHVQP", - "type": "Cerbo GX", - "vrmLink": "vrm.victronenergy.com/installation/161174", - "accessLevel": 1, - "syscreated": 1647006314, - "vrmOnline": true, - "alarm": false, - "vpnIp": "10.2.1.226", - "vpnName": "HQ2139NHVQP", - "vpnOnline": true - }, - { - "name": "_IBN Widmer-Reichlin, CH | Kunz-Solartech GmbH (2022-00053)", + "name": "_IBN Walser | Aulux (2022-00049)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "490", - "identifier": "48e7da875a8d", + "identifier": "48e7da875455", "hasMains": false, "hasGenerator": false, "nbMppts": 0, @@ -1330,46 +2361,98 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1649073999, - "lastPowerUpOrRestart": 1649063319, - "machineSerialNumber": "HQ2148UF9W7", - "type": "Cerbo GX", - "vrmLink": "vrm.victronenergy.com/installation/166385", + "lastConnection": 1671868956, + "lastPowerUpOrRestart": 1671694572, + "machineSerialNumber": "HQ21393AWZD", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/165965", "accessLevel": 1, - "syscreated": 1648814557, + "syscreated": 1648707200, "vrmOnline": true, "alarm": false, - "vpnIp": "10.2.1.240", - "vpnName": "HQ2148UF9W7", + "vpnIp": "10.2.1.238", + "vpnName": "HQ21393AWZD", "vpnOnline": false }, { - "name": "_IBN Zuberbühler, Pfyn/TG | InnovEnergy (2021-00199)", + "name": "_IBN Wenz, Brunbek/D | Reinstein GmbH (2022-00558)", "inverter": "MultiPlus-II 48/5000/70-48", - "inverterFw": "490", - "identifier": "1862e4cbeaf1", - "hasMains": false, + "inverterFw": "502", + "identifier": "c0619ab16852", + "hasMains": true, "hasGenerator": false, - "nbMppts": 1, + "nbMppts": 2, "nbPvInverters": 0, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1639731027, - "lastPowerUpOrRestart": 1639678049, - "machineSerialNumber": "HQ2101C9ANU", - "type": "Venus GX", - "vrmLink": "vrm.victronenergy.com/installation/145567", + "lastConnection": 1679578771, + "lastPowerUpOrRestart": 1679577452, + "machineSerialNumber": "HQ2211KU6AU", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/281971", "accessLevel": 1, - "syscreated": 1639675778, + "syscreated": 1679561781, "vrmOnline": true, "alarm": false, - "vpnIp": "10.2.1.177", - "vpnName": "HQ2101C9ANU", + "vpnIp": "10.2.3.151", + "vpnName": "HQ2211KU6AU", + "vpnOnline": false + }, + { + "name": "_IBN Wyser, Ronchamp/F| Curaferias (20240025)", + "inverter": "MultiPlus-II 48/10000/140-100/100", + "inverterFw": "498", + "identifier": "c0619ab2d36b", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1707728106, + "lastPowerUpOrRestart": 1707722827, + "machineSerialNumber": "HQ2242PMWXW", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/399658", + "accessLevel": 1, + "syscreated": 1707642789, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "_IBN_Erweiterungsbatterie salidomo | Terrasystems AG (AB2300323)", + "inverter": "unknown", + "inverterFw": "unknown", + "identifier": "c0619ab104be", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1701937459, + "lastPowerUpOrRestart": 1701935960, + "machineSerialNumber": "HQ2204PYRKZ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/223066", + "accessLevel": 1, + "syscreated": 1665669587, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.4.96", + "vpnName": "HQ2204PYRKZ", "vpnOnline": false }, { "name": "_Test Anlage 1", + "inverter": "unknown", + "inverterFw": "unknown", "identifier": "0cb2b7c7fbee", "hasMains": false, "hasGenerator": false, @@ -1381,7 +2464,7 @@ "lastConnection": 1646037257, "lastPowerUpOrRestart": 1645111071, "machineSerialNumber": "HQ18266ZP14", - "type": "Color Control GX", + "controllerType": "Color Control GX", "vrmLink": "vrm.victronenergy.com/installation/112352", "accessLevel": 1, "syscreated": 1623155454, @@ -1393,6 +2476,8 @@ }, { "name": "_Test Venus an SECOMEA", + "inverter": "unknown", + "inverterFw": "unknown", "identifier": "1cba8ca22050", "hasMains": false, "hasGenerator": false, @@ -1404,7 +2489,7 @@ "lastConnection": 1610723060, "lastPowerUpOrRestart": 1610722757, "machineSerialNumber": "HQ202449Q26", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/91933", "accessLevel": 1, "syscreated": 1610715087, @@ -1414,56 +2499,6 @@ "vpnName": "HQ202449Q26", "vpnOnline": false }, - { - "name": "-IBN Heinzelmann, Liebistorf/FR | Feldmann & Co. AG (2022-00008)", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "490", - "identifier": "48e7da87c967", - "hasMains": true, - "hasGenerator": false, - "nbMppts": 2, - "nbPvInverters": 0, - "firmware": "v2.73~r6", - "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1645712807, - "lastPowerUpOrRestart": 1645711658, - "machineSerialNumber": "HQ2128MFCVU", - "type": "Cerbo GX", - "vrmLink": "vrm.victronenergy.com/installation/157822", - "accessLevel": 1, - "syscreated": 1645691768, - "vrmOnline": true, - "alarm": true, - "vpnIp": "10.2.1.209", - "vpnName": "HQ2128MFCVU", - "vpnOnline": false - }, - { - "name": "0281224aab44", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "481", - "identifier": "0281224aab44 - USEDASREPLACEMENT", - "hasMains": false, - "hasGenerator": false, - "nbMppts": 0, - "nbPvInverters": 0, - "firmware": "v2.60~ie", - "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1620386773, - "lastPowerUpOrRestart": 1620385635, - "machineSerialNumber": "HQ205061YR8", - "type": "MultiPlus-II GX", - "vrmLink": "vrm.victronenergy.com/installation/107567", - "accessLevel": 1, - "syscreated": 1620381870, - "vrmOnline": true, - "alarm": true, - "vpnIp": "10.2.1.50", - "vpnName": "HQ205061YR8", - "vpnOnline": true - }, { "name": "0c1c5712834a", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", @@ -1479,7 +2514,7 @@ "lastConnection": 1601383947, "lastPowerUpOrRestart": 1601383936, "machineSerialNumber": "HQ2002WL7M1", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/67840", "accessLevel": 1, "syscreated": 1596633158, @@ -1489,8 +2524,60 @@ "vpnName": "HQ2002WL7M1", "vpnOnline": false }, + { + "name": "110122 Piccolo, Kaltenbach/TG | EWE Elektro AG (2022-00488)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab16881", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620110, + "lastPowerUpOrRestart": 1689753665, + "machineSerialNumber": "HQ2211TXJMX", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/268359", + "accessLevel": 1, + "syscreated": 1676548350, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.93", + "vpnName": "HQ2211TXJMX", + "vpnOnline": true + }, + { + "name": "12V System Ponpool", + "inverter": "MultiPlus 12/1200/50-16", + "inverterFw": "501", + "identifier": "0c1c57002e0b", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 3, + "nbPvInverters": 1, + "firmware": "v3.40~10", + "autoUpdate": "Check", + "updateTo": "Release-candidate", + "lastConnection": 1718620062, + "lastPowerUpOrRestart": 1714913931, + "machineSerialNumber": "HQ2005WB4BQ", + "controllerType": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/135789", + "accessLevel": 1, + "syscreated": 1635576052, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.234", + "vpnName": "HQ2005WB4BQ", + "vpnOnline": false + }, { "name": "1cba8c98a6c4", + "inverter": "unknown", + "inverterFw": "unknown", "identifier": "1cba8c98a6c4 - USEDASREPLACEMENT", "hasMains": true, "hasGenerator": true, @@ -1502,7 +2589,7 @@ "lastConnection": 1619771416, "lastPowerUpOrRestart": 1619769564, "machineSerialNumber": "HQ202414K62", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/106501", "accessLevel": 1, "syscreated": 1619769589, @@ -1512,6 +2599,131 @@ "vpnName": "HQ202414K62", "vpnOnline": true }, + { + "name": "20.130 Regensbergstrasse 312, Zürich", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "48e7da8997cf", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620079, + "lastPowerUpOrRestart": 1666791292, + "machineSerialNumber": "HQ2128J3RHN", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/150114", + "accessLevel": 1, + "syscreated": 1642406712, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.178", + "vpnName": "HQ2128J3RHN", + "vpnOnline": true + }, + { + "name": "20230756, Dinkel,Chur/GR | Hassler Energia Alternativa AG (AB2300306)_SN20230131", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d469", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620084, + "lastPowerUpOrRestart": 1716381748, + "machineSerialNumber": "HQ2217NXTW3", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/325250", + "accessLevel": 1, + "syscreated": 1688990727, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "222403, Steiner - Lyss/BE | Feldmann & Co. AG (AB2300078)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab2e517", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620117, + "lastPowerUpOrRestart": 1693988839, + "machineSerialNumber": "HQ2242MPHWE", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/343112", + "accessLevel": 1, + "syscreated": 1693219707, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.254", + "vpnName": "HQ2242MPHWE", + "vpnOnline": true + }, + { + "name": "2309/1301_HERZ", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab3f647", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620098, + "lastPowerUpOrRestart": 1700662681, + "machineSerialNumber": "HQ2250HZNXZ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/347599", + "accessLevel": 1, + "syscreated": 1694364971, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "23092-Pochon-Leipzig Dompierre/Fr | Stauffacher Charpentes SA (AB2300312)_SN20230110", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d2b9", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620080, + "lastPowerUpOrRestart": 1709801786, + "machineSerialNumber": "HQ2217GHMEK", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/317855", + "accessLevel": 1, + "syscreated": 1687347316, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, { "name": "38d2694408a3", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", @@ -1527,7 +2739,7 @@ "lastConnection": 1602503838, "lastPowerUpOrRestart": 1602141143, "machineSerialNumber": "HQ2024BUQ7V", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/73552", "accessLevel": 1, "syscreated": 1601384893, @@ -1538,32 +2750,59 @@ "vpnOnline": true }, { - "name": "48e7da875455", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "490", - "identifier": "48e7da875455", - "hasMains": true, + "name": "48e7da8a0a27", + "inverter": "unknown", + "inverterFw": "unknown", + "identifier": "48e7da8a0a27", + "hasMains": false, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 0, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1648715254, - "lastPowerUpOrRestart": 1648708223, - "machineSerialNumber": "HQ21393AWZD", - "type": "Cerbo GX", - "vrmLink": "vrm.victronenergy.com/installation/165965", + "lastConnection": 1662457034, + "lastPowerUpOrRestart": 1662456674, + "machineSerialNumber": "HQ22083FKMM", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/201290", "accessLevel": 1, - "syscreated": 1648707200, + "syscreated": 1659951713, "vrmOnline": true, "alarm": false, - "vpnIp": "10.2.1.238", - "vpnName": "HQ21393AWZD", + "vpnIp": "10.2.2.147", + "vpnName": "HQ22083FKMM", + "vpnOnline": false + }, + { + "name": "551024035/Basel-Wollbachstrasse 30_Passerini | b+s Elektro Telematik AG (AB2400043) SN20240011)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "508", + "identifier": "c0619ab3817f", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620071, + "lastPowerUpOrRestart": 1718139163, + "machineSerialNumber": "HQ22476N3Y6", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/390748", + "accessLevel": 1, + "syscreated": 1705399791, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", "vpnOnline": false }, { "name": "7804733f0d92", + "inverter": "unknown", + "inverterFw": "unknown", "identifier": "7804733f0d92", "hasMains": true, "hasGenerator": true, @@ -1575,7 +2814,7 @@ "lastConnection": 1634806411, "lastPowerUpOrRestart": 1634806401, "machineSerialNumber": "HQ1945QCIA2", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/62073", "accessLevel": 1, "syscreated": 1591695691, @@ -1585,22 +2824,72 @@ "vpnName": "HQ1945QCIA2", "vpnOnline": false }, + { + "name": "AA-SF-SOL Brennstoffzelle, Bern/BE | (2020-00030)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "474", + "identifier": "02816caa6760", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v3.10", + "autoUpdate": "Check", + "updateTo": "Release-candidate", + "lastConnection": 1718620063, + "lastPowerUpOrRestart": 1716894608, + "machineSerialNumber": "HQ1939BB724", + "controllerType": "MultiPlus-II GX", + "vrmLink": "vrm.victronenergy.com/installation/64144", + "accessLevel": 1, + "syscreated": 1593528013, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "AA-SF-SOL EE-Labor, Bern/BE | (2019-00007)", + "inverter": "MultiPlus-II 48/3000/35-32 (50A ext sensor)", + "inverterFw": "510", + "identifier": "0cb2b7c5564c", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.60~r4", + "autoUpdate": "On", + "updateTo": "Official release", + "lastConnection": 1716891615, + "lastPowerUpOrRestart": 1716884354, + "machineSerialNumber": "unknown", + "controllerType": "Color Control GX", + "vrmLink": "vrm.victronenergy.com/installation/33161", + "accessLevel": 0, + "syscreated": 1552401793, + "vrmOnline": false, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, { "name": "Abächerli, Hinwil/ZH | eConnect GmbH (2019-00078)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "459", + "inverterFw": "502", "identifier": "7c669d48ca7b", "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163657, - "lastPowerUpOrRestart": 1650526688, + "lastConnection": 1718620064, + "lastPowerUpOrRestart": 1695803589, "machineSerialNumber": "HQ1927TEV8U", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/52669", "accessLevel": 1, "syscreated": 1580556656, @@ -1625,7 +2914,7 @@ "lastConnection": 1623679168, "lastPowerUpOrRestart": 1623678450, "machineSerialNumber": "HQ2042PSWQN", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/112966", "accessLevel": 1, "syscreated": 1623412845, @@ -1635,6 +2924,181 @@ "vpnName": "HQ2042PSWQN", "vpnOnline": false }, + { + "name": "Aeberhard, Zürich/ZH/CH | Bouygues E&S In Tec Schweiz AG (2021-00216)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "102c6bc2aef8", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620122, + "lastPowerUpOrRestart": 1666137520, + "machineSerialNumber": "HQ2118Q44GV", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/154680", + "accessLevel": 1, + "syscreated": 1644338258, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.193", + "vpnName": "HQ2118Q44GV", + "vpnOnline": true + }, + { + "name": "Aeberli, Schlatt/TG| Roost + Aeberli AG (2022-00160)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "48e7da8955cb", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 3, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620070, + "lastPowerUpOrRestart": 1709628456, + "machineSerialNumber": "HQ2201UQHEU", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/187804", + "accessLevel": 1, + "syscreated": 1656000265, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.61", + "vpnName": "HQ2201UQHEU", + "vpnOnline": true + }, + { + "name": "Aebi, Hornussen/AG | Wunder Bau GmbH (AB2300098)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d19a", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620123, + "lastPowerUpOrRestart": 1686708634, + "machineSerialNumber": "HQ2217TWJMU", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/302424", + "accessLevel": 1, + "syscreated": 1684142726, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.3.225", + "vpnName": "HQ2217TWJMU", + "vpnOnline": true + }, + { + "name": "Aegerter, Rombach/AG/CH | kabeltechnik swiss ag (2021-00145)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "485", + "identifier": "0479b7aebbc0", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620071, + "lastPowerUpOrRestart": 1710238666, + "machineSerialNumber": "HQ2101925N3", + "controllerType": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/132507", + "accessLevel": 1, + "syscreated": 1634052108, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.1.134", + "vpnName": "HQ2101925N3", + "vpnOnline": true + }, + { + "name": "Aepli, Gossau/SG | Hablüztel AG (2022-00397)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab165cd", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620100, + "lastPowerUpOrRestart": 1687785587, + "machineSerialNumber": "HQ2211DUH2F", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/240183", + "accessLevel": 1, + "syscreated": 1669634649, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.2.248", + "vpnName": "HQ2211DUH2F", + "vpnOnline": true + }, + { + "name": "Aeschbacher, Lanzenneunforn/TG | EWE Elektro AG (2022-00282)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab096c5", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620111, + "lastPowerUpOrRestart": 1681739032, + "machineSerialNumber": "HQ21489XUFF", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/290715", + "accessLevel": 1, + "syscreated": 1681546758, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.194", + "vpnName": "HQ21489XUFF", + "vpnOnline": true + }, + { + "name": "Aeschlimann, Nennigkofen/SO/CH | Bouygues E&S In Tec Schweiz AG (2022-00059)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "500", + "identifier": "c0619ab070bc", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1717155330, + "lastPowerUpOrRestart": 1716471307, + "machineSerialNumber": "HQ2139PGQMG", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/241671", + "accessLevel": 1, + "syscreated": 1669895986, + "vrmOnline": false, + "alarm": false, + "vpnIp": "10.2.1.241", + "vpnName": "HQ2139PGQMG", + "vpnOnline": false + }, { "name": "Aeschlimann, Schwarzenegg/BE | InnovEnergy (2018-00001)", "inverter": "MultiGrid 48/3000/35-50", @@ -1642,15 +3106,15 @@ "identifier": "9884e38d476b", "hasMains": true, "hasGenerator": false, - "nbMppts": 1, + "nbMppts": 2, "nbPvInverters": 0, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163655, - "lastPowerUpOrRestart": 1639029631, + "lastConnection": 1718620106, + "lastPowerUpOrRestart": 1717567327, "machineSerialNumber": "HQ1738IEZSR", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/22020", "accessLevel": 1, "syscreated": 1529071727, @@ -1658,32 +3122,32 @@ "alarm": false, "vpnIp": "10.2.0.130", "vpnName": "HQ1738IEZSR", - "vpnOnline": false + "vpnOnline": true }, { - "name": "Affentranger, Buttisholz/LU | Alectron AG (2018-00006)", + "name": "Affentranger, Buttisholz/LU/CH (2018-00006)", "inverter": "MultiGrid 48/3000/35-50", "inverterFw": "413", "identifier": "508cb1cca580", - "hasMains": false, + "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, "firmware": "v2.60~r4", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1649255334, - "lastPowerUpOrRestart": 1641504832, + "lastConnection": 1718620117, + "lastPowerUpOrRestart": 1708411962, "machineSerialNumber": "HQ1734ZJ13C", - "type": "Color Control GX", + "controllerType": "Color Control GX", "vrmLink": "vrm.victronenergy.com/installation/71405", "accessLevel": 1, "syscreated": 1599597990, - "vrmOnline": false, + "vrmOnline": true, "alarm": false, "vpnIp": "10.2.1.8", "vpnName": "HQ1734ZJ13C", - "vpnOnline": false + "vpnOnline": true }, { "name": "Affolter, Port/BE | eltanorm GmbH (2021-00196)", @@ -1693,14 +3157,14 @@ "hasMains": true, "hasGenerator": false, "nbMppts": 0, - "nbPvInverters": 2, + "nbPvInverters": 1, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163658, - "lastPowerUpOrRestart": 1647277929, + "lastConnection": 1718620076, + "lastPowerUpOrRestart": 1660901666, "machineSerialNumber": "HQ2110UD9XL", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/142446", "accessLevel": 1, "syscreated": 1638452456, @@ -1711,35 +3175,35 @@ "vpnOnline": true }, { - "name": "AI10 REACT H2020Ireland (2021-00071.3)", + "name": "AH, Bonn/DE | IL sun+ | Innovative Energy-Lösungen (2022-00175)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "494", - "identifier": "028160fd4400", + "inverterFw": "502", + "identifier": "48e7da86328b", "hasMains": false, "hasGenerator": false, - "nbMppts": 1, + "nbMppts": 2, "nbPvInverters": 0, - "firmware": "v2.73~r6", - "autoUpdate": "Off", + "firmware": "v2.73~r12", + "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163663, - "lastPowerUpOrRestart": 1651150283, - "machineSerialNumber": "HQ2050VUYBZ", - "type": "MultiPlus-II GX", - "vrmLink": "vrm.victronenergy.com/installation/112836", + "lastConnection": 1718620075, + "lastPowerUpOrRestart": 1709714119, + "machineSerialNumber": "HQ2201G2H2T", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/195311", "accessLevel": 1, - "syscreated": 1623344508, - "vrmOnline": true, + "syscreated": 1658223797, + "vrmOnline": false, "alarm": false, - "vpnIp": "10.2.1.67", - "vpnName": "HQ2050VUYBZ", + "vpnIp": "10.2.2.87", + "vpnName": "HQ2201G2H2T", "vpnOnline": true }, { - "name": "AI12 REACT H2020Ireland (2021-00071.2)", + "name": "AI10 REACT H2020, -/-/Ireland | REACT (2021-00071.3)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "494", - "identifier": "0281ab5140f5", + "inverterFw": "502", + "identifier": "028160fd4400", "hasMains": false, "hasGenerator": false, "nbMppts": 1, @@ -1747,23 +3211,48 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163640, - "lastPowerUpOrRestart": 1650367756, - "machineSerialNumber": "HQ2050IDGL2", - "type": "MultiPlus-II GX", + "lastConnection": 1718613199, + "lastPowerUpOrRestart": 1712247887, + "machineSerialNumber": "HQ2050VUYBZ", + "controllerType": "MultiPlus-II GX", + "vrmLink": "vrm.victronenergy.com/installation/112836", + "accessLevel": 1, + "syscreated": 1623344508, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.67", + "vpnName": "HQ2050VUYBZ", + "vpnOnline": false + }, + { + "name": "AI12 REACT H2020 AF", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "481", + "identifier": "c0619ab33962", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620097, + "lastPowerUpOrRestart": 1714560897, + "machineSerialNumber": "HQ2244WXPU7", + "controllerType": "Cerbo GX", "vrmLink": "vrm.victronenergy.com/installation/112820", "accessLevel": 1, "syscreated": 1623338462, "vrmOnline": true, - "alarm": false, - "vpnIp": "10.2.1.66", - "vpnName": "HQ2050IDGL2", + "alarm": true, + "vpnIp": "10.2.4.176", + "vpnName": "HQ2244WXPU7", "vpnOnline": true }, { - "name": "AI8 REACT H2020Ireland (2021-00071.1)", + "name": "AI8 REACT H2020, -/-/Ireland | REACT (2021-00071.1)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "494", + "inverterFw": "497", "identifier": "028149ee7573", "hasMains": false, "hasGenerator": false, @@ -1772,10 +3261,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163631, - "lastPowerUpOrRestart": 1649766857, + "lastConnection": 1718620112, + "lastPowerUpOrRestart": 1709308284, "machineSerialNumber": "HQ20503L3SA", - "type": "MultiPlus-II GX", + "controllerType": "MultiPlus-II GX", "vrmLink": "vrm.victronenergy.com/installation/112622", "accessLevel": 1, "syscreated": 1623250320, @@ -1786,7 +3275,7 @@ "vpnOnline": true }, { - "name": "AI9 REACT H2020Ireland (2021-00071.4)", + "name": "AI9 REACT H2020, -/-/Ireland | REACT (2021-00071.4)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "482", "identifier": "028172247dc5", @@ -1797,10 +3286,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163625, - "lastPowerUpOrRestart": 1649773698, + "lastConnection": 1718620073, + "lastPowerUpOrRestart": 1704012770, "machineSerialNumber": "HQ2050KMJU3", - "type": "MultiPlus-II GX", + "controllerType": "MultiPlus-II GX", "vrmLink": "vrm.victronenergy.com/installation/112851", "accessLevel": 1, "syscreated": 1623352363, @@ -1813,19 +3302,19 @@ { "name": "Albert, Benzenschwil/AG | Michael Albert (2021-00179)", "inverter": "MultiPlus-II 48/5000/70-48", - "inverterFw": "490", + "inverterFw": "502", "identifier": "0479b7b3272a", "hasMains": true, "hasGenerator": false, "nbMppts": 0, - "nbPvInverters": 1, - "firmware": "v2.73~r6", + "nbPvInverters": 0, + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163622, - "lastPowerUpOrRestart": 1647449453, + "lastConnection": 1718620100, + "lastPowerUpOrRestart": 1701939503, "machineSerialNumber": "HQ2101DVBFC", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/139428", "accessLevel": 1, "syscreated": 1637254757, @@ -1838,19 +3327,19 @@ { "name": "Albl, Winterthur/ZH | Senero AG (2022-00002)", "inverter": "MultiPlus-II 48/10000/140-100/100", - "inverterFw": "494", + "inverterFw": "502", "identifier": "48e7da870c7f", - "hasMains": false, + "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 3, - "firmware": "v2.73~r6", + "firmware": "v2.73~r12", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163649, - "lastPowerUpOrRestart": 1650384466, + "lastConnection": 1718620079, + "lastPowerUpOrRestart": 1706258060, "machineSerialNumber": "HQ2148ENDZG", - "type": "Cerbo GX", + "controllerType": "Cerbo GX", "vrmLink": "vrm.victronenergy.com/installation/168345", "accessLevel": 1, "syscreated": 1649437978, @@ -1858,7 +3347,7 @@ "alarm": false, "vpnIp": "10.2.1.252", "vpnName": "HQ2148ENDZG", - "vpnOnline": true + "vpnOnline": false }, { "name": "Allenbach, Achseten/BE | Elektro Gyger AG (2022-00011)", @@ -1872,10 +3361,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163669, - "lastPowerUpOrRestart": 1649745226, + "lastConnection": 1718620080, + "lastPowerUpOrRestart": 1660901620, "machineSerialNumber": "HQ2139NTNKE", - "type": "Cerbo GX", + "controllerType": "Cerbo GX", "vrmLink": "vrm.victronenergy.com/installation/159288", "accessLevel": 1, "syscreated": 1646303257, @@ -1885,6 +3374,106 @@ "vpnName": "HQ2139NTNKE", "vpnOnline": true }, + { + "name": "Alp Oberberg, Hehlen", + "inverter": "Quattro 48/5000/70-2x100", + "inverterFw": "497", + "identifier": "0479b7b309a5", + "hasMains": false, + "hasGenerator": true, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620088, + "lastPowerUpOrRestart": 1717231668, + "machineSerialNumber": "HQ21017GYYY", + "controllerType": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/187386", + "accessLevel": 1, + "syscreated": 1655906057, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.60", + "vpnName": "HQ21017GYYY", + "vpnOnline": true + }, + { + "name": "Alther, Wil/SG | B. Stillhart Dach + Fassaden AG (2022-00039)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "500", + "identifier": "48e7da8753e7", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620100, + "lastPowerUpOrRestart": 1702691394, + "machineSerialNumber": "HQ2139MQWDW", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/164219", + "accessLevel": 1, + "syscreated": 1648138349, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.234", + "vpnName": "HQ2139MQWDW", + "vpnOnline": true + }, + { + "name": "Amacher, Buochs/NW | Bouygues E&S In Tec Schweiz AG (2022-00225)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da86fba5", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620094, + "lastPowerUpOrRestart": 1716886122, + "machineSerialNumber": "HQ2148ET2P3", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/203182", + "accessLevel": 1, + "syscreated": 1660551408, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.117", + "vpnName": "HQ2148ET2P3", + "vpnOnline": true + }, + { + "name": "Ambühl, Hergiswil/NW | asons ag (2022-00548)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab2e5e5", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620100, + "lastPowerUpOrRestart": 1691083675, + "machineSerialNumber": "HQ2242Q646X", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/273562", + "accessLevel": 1, + "syscreated": 1677681689, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.117", + "vpnName": "HQ2242Q646X", + "vpnOnline": true + }, { "name": "Amigazzi, Langwiesen/ZH | Vivo Solar GmbH (2021-00027)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", @@ -1897,10 +3486,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163664, - "lastPowerUpOrRestart": 1647277657, + "lastConnection": 1718620104, + "lastPowerUpOrRestart": 1707998892, "machineSerialNumber": "HQ20228WE1H", - "type": "MultiPlus-II GX", + "controllerType": "MultiPlus-II GX", "vrmLink": "vrm.victronenergy.com/installation/87708", "accessLevel": 1, "syscreated": 1606919856, @@ -1910,22 +3499,272 @@ "vpnName": "HQ20228WE1H", "vpnOnline": true }, + { + "name": "Ammann Ernst/AR | A+Elektro AG (AB2300250) SN20230195", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab3803a", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620124, + "lastPowerUpOrRestart": 1717485384, + "machineSerialNumber": "HQ2247FVMAV", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/345525", + "accessLevel": 1, + "syscreated": 1693827145, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Amstutz, Stans/NW | SyEnergy AG (2022-00427)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab10534", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620116, + "lastPowerUpOrRestart": 1687177155, + "machineSerialNumber": "HQ2204Q2VQY", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/244028", + "accessLevel": 1, + "syscreated": 1670427938, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.10", + "vpnName": "HQ2204Q2VQY", + "vpnOnline": true + }, + { + "name": "Anke, Balterswil/TG | EWE Elektro AG (2022-00392)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da888ded", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 3, + "nbPvInverters": 0, + "firmware": "v2.73~r10", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620129, + "lastPowerUpOrRestart": 1684159188, + "machineSerialNumber": "HQ2148DXWVU", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/235539", + "accessLevel": 1, + "syscreated": 1668588418, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.238", + "vpnName": "HQ2148DXWVU", + "vpnOnline": true + }, + { + "name": "Annaheim, Effretikon /ZH | Senero AG (2022-00144)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "498", + "identifier": "48e7da87437f", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r10", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620085, + "lastPowerUpOrRestart": 1668086907, + "machineSerialNumber": "HQ2148V3KFH", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/184069", + "accessLevel": 1, + "syscreated": 1654788910, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.44", + "vpnName": "HQ2148V3KFH", + "vpnOnline": true + }, + { + "name": "Anneler, Aadorf/TG/CH | EWE Elektro AG (2022-00292)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "498", + "identifier": "48e7da882697", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 3, + "nbPvInverters": 0, + "firmware": "v2.73~r9", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620095, + "lastPowerUpOrRestart": 1689748713, + "machineSerialNumber": "HQ2201JHZCV", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/223053", + "accessLevel": 1, + "syscreated": 1665668909, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.2.196", + "vpnName": "HQ2201JHZCV", + "vpnOnline": true + }, + { + "name": "Arab, Allschwil/BL | Tim s Dächer GmbH (AB2300051)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab1d1a9", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620109, + "lastPowerUpOrRestart": 1685951635, + "machineSerialNumber": "HQ2217T2XJK", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/299941", + "accessLevel": 1, + "syscreated": 1683627199, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.219", + "vpnName": "HQ2217T2XJK", + "vpnOnline": true + }, + { + "name": "Aschwanden, Winterthur/ZH | Senero AG (2022-00057)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "497", + "identifier": "48e7da871211", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620106, + "lastPowerUpOrRestart": 1660901619, + "machineSerialNumber": "HQ214827YJU", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/178478", + "accessLevel": 1, + "syscreated": 1653040531, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.24", + "vpnName": "HQ214827YJU", + "vpnOnline": true + }, + { + "name": "ASG International GmbH (2022-00100)-1 (NGA)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab348a2", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620103, + "lastPowerUpOrRestart": 1708234618, + "machineSerialNumber": "HQ2245FGXTC", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/278967", + "accessLevel": 1, + "syscreated": 1678863297, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.136", + "vpnName": "HQ2245FGXTC", + "vpnOnline": true + }, + { + "name": "ASG International GmbH (2022-00100)-2 (MRA)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab1dd88", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620129, + "lastPowerUpOrRestart": 1718167663, + "machineSerialNumber": "HQ22193TV7H", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/278973", + "accessLevel": 1, + "syscreated": 1678864603, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.3.137", + "vpnName": "HQ22193TV7H", + "vpnOnline": true + }, + { + "name": "Auton Energy Werkplaats - Test Salt 160A", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "500", + "identifier": "c0619ab1d6bb", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1707124872, + "lastPowerUpOrRestart": 1706593804, + "machineSerialNumber": "HQ2217W2DR3", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/395074", + "accessLevel": 1, + "syscreated": 1706521541, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, { "name": "Bachmann, Hütten/ZH | Schibli AG (2020-00087)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "475", "identifier": "0c1c570043f5", - "hasMains": true, + "hasMains": false, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 0, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163652, - "lastPowerUpOrRestart": 1646145482, + "lastConnection": 1718620131, + "lastPowerUpOrRestart": 1706947754, "machineSerialNumber": "HQ2005SD35K", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/73926", "accessLevel": 1, "syscreated": 1601618035, @@ -1935,22 +3774,72 @@ "vpnName": "HQ2005SD35K", "vpnOnline": true }, + { + "name": "Bader Salome | ES Elektro Seftigen AG | CH ( AB2400023 ) SN20240004", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1c077", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620090, + "lastPowerUpOrRestart": 1716797533, + "machineSerialNumber": "HQ2216MQRFT", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/390535", + "accessLevel": 1, + "syscreated": 1705330912, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Bader, Thun|/Flück Elektro GmbH (2022-00492)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da87acbb", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620094, + "lastPowerUpOrRestart": 1698045076, + "machineSerialNumber": "HQ2211EDXKH", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/264477", + "accessLevel": 1, + "syscreated": 1675756558, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.67", + "vpnName": "HQ2211EDXKH", + "vpnOnline": true + }, { "name": "Baier, Seligenstadt/DE | EEG Autark GmbH (2021-00161)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "485", "identifier": "028121b39ba5", - "hasMains": true, + "hasMains": false, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163655, - "lastPowerUpOrRestart": 1647278508, + "lastConnection": 1718620111, + "lastPowerUpOrRestart": 1660901582, "machineSerialNumber": "HQ2107XFI4D", - "type": "MultiPlus-II GX", + "controllerType": "MultiPlus-II GX", "vrmLink": "vrm.victronenergy.com/installation/135499", "accessLevel": 1, "syscreated": 1635432278, @@ -1960,29 +3849,279 @@ "vpnName": "HQ2107XFI4D", "vpnOnline": true }, + { + "name": "Balmer, Genolier/VD/CH | OptimalLiving SA (2022-00257)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "500", + "identifier": "48e7da874fa5", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620107, + "lastPowerUpOrRestart": 1696596175, + "machineSerialNumber": "HQ22019U9E4", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/205642", + "accessLevel": 1, + "syscreated": 1661249656, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.127", + "vpnName": "HQ22019U9E4", + "vpnOnline": true + }, + { + "name": "Balmer, Niedergösgen/SO | b+s Elektro Telematik AG (2022-00508)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab10531", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620112, + "lastPowerUpOrRestart": 1701499566, + "machineSerialNumber": "HQ2204Q7EVC", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/246112", + "accessLevel": 1, + "syscreated": 1670930645, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.18", + "vpnName": "HQ2204Q7EVC", + "vpnOnline": true + }, + { + "name": "Bankwitz, Steinmaur/ZH/CH | Bouygues E & S In Tec Schweiz AG (2022-00223)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "500", + "identifier": "48e7da8a124f", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v3.32", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620121, + "lastPowerUpOrRestart": 1717495877, + "machineSerialNumber": "HQ2148FYEYC", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/203277", + "accessLevel": 1, + "syscreated": 1660567415, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.118", + "vpnName": "HQ2148FYEYC", + "vpnOnline": true + }, + { + "name": "Bänziger, Frauenfeld/TG | EWE Elektro AG (2022-00455)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab16941", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620105, + "lastPowerUpOrRestart": 1677860880, + "machineSerialNumber": "HQ2211RDV7X", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/254461", + "accessLevel": 1, + "syscreated": 1673369097, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.46", + "vpnName": "HQ2211RDV7X", + "vpnOnline": true + }, + { + "name": "Barthélémy-Brabec, Genolier/VD / OptimalLiving SA (2022-00479)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab2e107", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620093, + "lastPowerUpOrRestart": 1681820598, + "machineSerialNumber": "HQ2242ZMNDE", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/259268", + "accessLevel": 1, + "syscreated": 1674548106, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.61", + "vpnName": "HQ2242ZMNDE", + "vpnOnline": true + }, { "name": "Bärtschi, Wolhusen/LU | Alectron AG (2020-00074)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "475", "identifier": "f8369bff8e08", - "hasMains": true, + "hasMains": false, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163665, - "lastPowerUpOrRestart": 1649690767, + "lastConnection": 1697373836, + "lastPowerUpOrRestart": 1697303939, "machineSerialNumber": "HQ2021XNSKY", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/70247", "accessLevel": 1, "syscreated": 1598606371, - "vrmOnline": true, + "vrmOnline": false, "alarm": false, "vpnIp": "10.2.0.211", "vpnName": "HQ2021XNSKY", + "vpnOnline": false + }, + { + "name": "Batterij Provincie Gelderland Steunpunt Ruurlo", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "498", + "identifier": "48e7da885ff9", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620102, + "lastPowerUpOrRestart": 1667906992, + "machineSerialNumber": "HQ2148D7MT9", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/207400", + "accessLevel": 1, + "syscreated": 1661776573, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.133", + "vpnName": "HQ2148D7MT9", + "vpnOnline": true + }, + { + "name": "Baumann, Rüti Schwellbrunn/AR | Rutz+Partner Elektro AG (AB2300157) SN20230103", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab2e209", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620088, + "lastPowerUpOrRestart": 1695365164, + "machineSerialNumber": "HQ2242DHVCT", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/315858", + "accessLevel": 1, + "syscreated": 1686899276, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.4.42", + "vpnName": "HQ2242DHVCT", + "vpnOnline": true + }, + { + "name": "Baumeler, Schüpfheim/LU | ALVA Systems AG ( 2022-00354)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "500", + "identifier": "48e7da8742ab", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620134, + "lastPowerUpOrRestart": 1701695723, + "machineSerialNumber": "HQ2148FH7CW", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/230441", + "accessLevel": 1, + "syscreated": 1667376843, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.217", + "vpnName": "HQ2148FH7CW", + "vpnOnline": true + }, + { + "name": "Baumgartner, Lüchingen/SG | Hasler Solar AG (2023-00013)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab16877", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620107, + "lastPowerUpOrRestart": 1686685492, + "machineSerialNumber": "HQ2211VEYZA", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/279655", + "accessLevel": 1, + "syscreated": 1678974426, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.143", + "vpnName": "HQ2211VEYZA", + "vpnOnline": true + }, + { + "name": "Baumgartner, Wegenstetten/AG | kabeltechnik swiss ag (2022-00302)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da8787cf", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620132, + "lastPowerUpOrRestart": 1707140624, + "machineSerialNumber": "HQ2148YZK7Y", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/219568", + "accessLevel": 1, + "syscreated": 1664895147, + "vrmOnline": false, + "alarm": false, + "vpnIp": "10.2.2.181", + "vpnName": "HQ2148YZK7Y", "vpnOnline": true }, { @@ -1990,17 +4129,17 @@ "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "494", "identifier": "48e7da87cf3f", - "hasMains": true, + "hasMains": false, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163659, - "lastPowerUpOrRestart": 1650373447, + "lastConnection": 1718620085, + "lastPowerUpOrRestart": 1660901722, "machineSerialNumber": "HQ2139NJEM3", - "type": "Cerbo GX", + "controllerType": "Cerbo GX", "vrmLink": "vrm.victronenergy.com/installation/156576", "accessLevel": 1, "syscreated": 1645115615, @@ -2010,22 +4149,72 @@ "vpnName": "HQ2139NJEM3", "vpnOnline": true }, + { + "name": "Beck, Schaan/FL | Kaiser Anstalt(2022-00297)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da858449", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620078, + "lastPowerUpOrRestart": 1706023268, + "machineSerialNumber": "HQ21484J2G6", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/217071", + "accessLevel": 1, + "syscreated": 1664286458, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.171", + "vpnName": "HQ21484J2G6", + "vpnOnline": true + }, + { + "name": "Beer, Oey/BE | Röthlisberger Elektro AG (2022-00307)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "500", + "identifier": "c0619ab09969", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620091, + "lastPowerUpOrRestart": 1698745877, + "machineSerialNumber": "HQ2148NPD2H", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/238785", + "accessLevel": 1, + "syscreated": 1669281788, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.176", + "vpnName": "HQ2148NPD2H", + "vpnOnline": true + }, { "name": "Benguerel, Sutz/BE | InnovEnergy (2019-00048)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "459", "identifier": "0cae7d54bcf3", - "hasMains": false, + "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 0, - "firmware": "v2.60~ditto", + "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163670, - "lastPowerUpOrRestart": 1645713590, + "lastConnection": 1718620123, + "lastPowerUpOrRestart": 1711034432, "machineSerialNumber": "HQ1907ZS4BI", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/44456", "accessLevel": 1, "syscreated": 1569405240, @@ -2035,6 +4224,106 @@ "vpnName": "HQ1907ZS4BI", "vpnOnline": true }, + { + "name": "Berger, Balsthal SO/CH | von arx systems ag (2022-00371)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "500", + "identifier": "c0619ab09674", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620114, + "lastPowerUpOrRestart": 1669335070, + "machineSerialNumber": "HQ214862PVD", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/238962", + "accessLevel": 1, + "syscreated": 1669297846, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.218", + "vpnName": "HQ214862PVD", + "vpnOnline": true + }, + { + "name": "Berger, Büsserach/SO/CH | KWenergy GmbH (2022-00130)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da8a19eb", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620081, + "lastPowerUpOrRestart": 1692185533, + "machineSerialNumber": "HQ22019UEY6", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/182172", + "accessLevel": 1, + "syscreated": 1654183407, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.36", + "vpnName": "HQ22019UEY6", + "vpnOnline": true + }, + { + "name": "Bergfeldstrasse 9 Poing Eberwerk (2020-00076)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "475", + "identifier": "f8369bf607ec", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620139, + "lastPowerUpOrRestart": 1718160677, + "machineSerialNumber": "HQ2005XWTDQ", + "controllerType": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/73003", + "accessLevel": 1, + "syscreated": 1600935404, + "vrmOnline": false, + "alarm": false, + "vpnIp": "10.2.0.225", + "vpnName": "HQ2005XWTDQ", + "vpnOnline": true + }, + { + "name": "Bergrestaurant Siebenbrünnen / Lenk | BE (B. Allemann ) KD-BST-2021-00091", + "inverter": "Quattro 48/8000/110-2x100 rev2", + "inverterFw": "485", + "identifier": "c0619ab11ac5", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620122, + "lastPowerUpOrRestart": 1690082688, + "machineSerialNumber": "HQ2206CKCVH", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/201842", + "accessLevel": 1, + "syscreated": 1660114860, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.4.92", + "vpnName": "HQ2206CKCVH", + "vpnOnline": true + }, { "name": "Bertrams, Schafisheim/AG | STARK STROM GmbH (2021-00092)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", @@ -2047,10 +4336,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163661, - "lastPowerUpOrRestart": 1643881976, + "lastConnection": 1718620085, + "lastPowerUpOrRestart": 1689283845, "machineSerialNumber": "HQ2019ES6C4", - "type": "MultiPlus-II GX", + "controllerType": "MultiPlus-II GX", "vrmLink": "vrm.victronenergy.com/installation/118765", "accessLevel": 1, "syscreated": 1626284888, @@ -2063,24 +4352,24 @@ { "name": "Berwert, Sachseln/OW | Werth AG (2019-00034)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "474", + "inverterFw": "502", "identifier": "f045da7bfb0b", "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.66~rc5", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163660, - "lastPowerUpOrRestart": 1645024141, + "lastConnection": 1718620096, + "lastPowerUpOrRestart": 1710492181, "machineSerialNumber": "HQ190387WH6", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/41333", "accessLevel": 1, "syscreated": 1565157148, "vrmOnline": true, - "alarm": false, + "alarm": true, "vpnIp": "10.2.0.106", "vpnName": "HQ190387WH6", "vpnOnline": true @@ -2091,16 +4380,16 @@ "inverterFw": "481", "identifier": "94e36dceb98c", "hasMains": true, - "hasGenerator": true, + "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163662, - "lastPowerUpOrRestart": 1646765218, + "lastConnection": 1718620087, + "lastPowerUpOrRestart": 1660901666, "machineSerialNumber": "HQ2042DC5X5", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/109391", "accessLevel": 1, "syscreated": 1621497454, @@ -2119,13 +4408,13 @@ "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 2, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", - "updateTo": "Testing", - "lastConnection": 1651163644, - "lastPowerUpOrRestart": 1648708303, + "updateTo": "Official release", + "lastConnection": 1718620109, + "lastPowerUpOrRestart": 1717420195, "machineSerialNumber": "HQ19079XRJB", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/41707", "accessLevel": 1, "syscreated": 1565701356, @@ -2135,47 +4424,147 @@ "vpnName": "HQ19079XRJB", "vpnOnline": true }, + { + "name": "Beuret, Le Locle/NE | Helion Energy AG (AB2300042)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab2e446", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620083, + "lastPowerUpOrRestart": 1713647930, + "machineSerialNumber": "HQ2242ZER22", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/313041", + "accessLevel": 1, + "syscreated": 1686296382, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.4.25", + "vpnName": "HQ2242ZER22", + "vpnOnline": true + }, + { + "name": "Bevilacqua, Neunkirch SH / vivo solar gmbh (2022-00570)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1684a", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620136, + "lastPowerUpOrRestart": 1701853565, + "machineSerialNumber": "HQ2211FAQQ2", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/278761", + "accessLevel": 1, + "syscreated": 1678806877, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.135", + "vpnName": "HQ2211FAQQ2", + "vpnOnline": true + }, { "name": "Beyeler, Meiringen/BE | InnovEnergy (2019-00018)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "494", "identifier": "38d26970cf3a", - "hasMains": true, - "hasGenerator": false, - "nbMppts": 0, - "nbPvInverters": 2, - "firmware": "v2.73~r6", - "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1651163667, - "lastPowerUpOrRestart": 1646143367, - "machineSerialNumber": "HQ1825HAIY2", - "type": "Venus GX", - "vrmLink": "vrm.victronenergy.com/installation/38754", - "accessLevel": 1, - "syscreated": 1561390754, - "vrmOnline": true, - "alarm": false, - "vpnIp": "10.2.0.151", - "vpnName": "HQ1825HAIY2", - "vpnOnline": true - }, - { - "name": "Bigler, Rupperswil/AG | Alectron AG (2019-00069)", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "494", - "identifier": "c4f3128197dc", - "hasMains": true, + "hasMains": false, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163649, - "lastPowerUpOrRestart": 1645428023, + "lastConnection": 1666013565, + "lastPowerUpOrRestart": 1666012479, + "machineSerialNumber": "HQ1825HAIY2", + "controllerType": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/38754", + "accessLevel": 1, + "syscreated": 1561390754, + "vrmOnline": false, + "alarm": false, + "vpnIp": "10.2.0.151", + "vpnName": "HQ1825HAIY2", + "vpnOnline": false + }, + { + "name": "Bezencon, Riehen/BS | b+s Elektro Telematik AG (2023-00043)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da85e3e1", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r10", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620104, + "lastPowerUpOrRestart": 1696083168, + "machineSerialNumber": "HQ2211KQUJP", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/285235", + "accessLevel": 1, + "syscreated": 1680246510, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.165", + "vpnName": "HQ2211KQUJP", + "vpnOnline": true + }, + { + "name": "Bidie, Dettighofen/TG | EWE Elektro AG (2022-00475)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "48e7da89a8a9", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620108, + "lastPowerUpOrRestart": 1699130538, + "machineSerialNumber": "HQ2211J6EVV", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/256509", + "accessLevel": 1, + "syscreated": 1673886549, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.51", + "vpnName": "HQ2211J6EVV", + "vpnOnline": true + }, + { + "name": "Bigler, Rupperswil/AG | Alectron AG (2019-00069)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c4f3128197dc", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620084, + "lastPowerUpOrRestart": 1712908675, "machineSerialNumber": "HQ19244DYFX", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/47739", "accessLevel": 1, "syscreated": 1573581154, @@ -2190,56 +4579,106 @@ "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "481", "identifier": "02812c1321d4", - "hasMains": false, + "hasMains": true, "hasGenerator": false, "nbMppts": 1, "nbPvInverters": 0, "firmware": "v2.51", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1649143402, - "lastPowerUpOrRestart": 1649134401, + "lastConnection": 1718620131, + "lastPowerUpOrRestart": 1717836250, "machineSerialNumber": "HQ2019HNVTI", - "type": "MultiPlus-II GX", + "controllerType": "MultiPlus-II GX", "vrmLink": "vrm.victronenergy.com/installation/113798", "accessLevel": 1, "syscreated": 1623860617, "vrmOnline": true, - "alarm": true, + "alarm": false, "vpnIp": "10.2.1.75", "vpnName": "HQ2019HNVTI", "vpnOnline": false }, { - "name": "Blaser, Obfelden/ZH | Hotz Technik GmbH (2022-00043)", + "name": "Bircher, Biberstein/AG | von arx systems ag (2023-00035)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "490", - "identifier": "48e7da869889", - "hasMains": true, + "inverterFw": "502", + "identifier": "c0619ab167eb", + "hasMains": false, "hasGenerator": false, - "nbMppts": 0, - "nbPvInverters": 0, - "firmware": "v2.73~r6", + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r12", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1650621287, - "lastPowerUpOrRestart": 1650620028, - "machineSerialNumber": "HQ2139JGAPY", - "type": "Cerbo GX", - "vrmLink": "vrm.victronenergy.com/installation/165417", + "lastConnection": 1718620095, + "lastPowerUpOrRestart": 1690538846, + "machineSerialNumber": "HQ2211P36KF", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/286346", "accessLevel": 1, - "syscreated": 1648564507, - "vrmOnline": false, + "syscreated": 1680526776, + "vrmOnline": true, "alarm": false, - "vpnIp": "10.2.1.235", - "vpnName": "HQ2139JGAPY", + "vpnIp": "10.2.3.168", + "vpnName": "HQ2211P36KF", + "vpnOnline": true + }, + { + "name": "Bischofberger, Oberegg/AI | A+Elektro AG (2023-00029)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab16632", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620123, + "lastPowerUpOrRestart": 1682003132, + "machineSerialNumber": "HQ2211TJMTN", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/284747", + "accessLevel": 1, + "syscreated": 1680160239, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.162", + "vpnName": "HQ2211TJMTN", + "vpnOnline": true + }, + { + "name": "Bitzan,Lohr.a.M/ DE | Strom Werner e.K (AB2300199)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d166", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620145, + "lastPowerUpOrRestart": 1716551333, + "machineSerialNumber": "HQ2217CTGYW", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/335890", + "accessLevel": 1, + "syscreated": 1691399376, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", "vpnOnline": false }, { - "name": "Blattag Bern AG, Bern/BE | Elentec GmbH (2020-00063)", - "inverter": "Quattro 48/15000/200-2x100", - "inverterFw": "476", - "identifier": "e8eb11def480", + "name": "Blaser, | Hotz Technik GmbH (2022-00043)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "48e7da85efb7", "hasMains": false, "hasGenerator": false, "nbMppts": 0, @@ -2247,10 +4686,35 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163657, - "lastPowerUpOrRestart": 1637660131, + "lastConnection": 1718620130, + "lastPowerUpOrRestart": 1660901617, + "machineSerialNumber": "HQ21497DR7P", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/182327", + "accessLevel": 1, + "syscreated": 1654243707, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.38", + "vpnName": "HQ21497DR7P", + "vpnOnline": true + }, + { + "name": "Blatter AG Bern/BE | Elentec GmbH (2020-00063)", + "inverter": "Quattro 48/15000/200-2x100", + "inverterFw": "502", + "identifier": "e8eb11def480", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620113, + "lastPowerUpOrRestart": 1687728329, "machineSerialNumber": "HQ20246BJ3W", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/72607", "accessLevel": 1, "syscreated": 1600679350, @@ -2269,13 +4733,13 @@ "hasGenerator": false, "nbMppts": 2, "nbPvInverters": 0, - "firmware": "v2.60~ditto", + "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163656, - "lastPowerUpOrRestart": 1608216338, + "lastConnection": 1718620119, + "lastPowerUpOrRestart": 1683286624, "machineSerialNumber": "HQ1933H7D74", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/54211", "accessLevel": 1, "syscreated": 1582295213, @@ -2291,20 +4755,20 @@ "inverterFw": "430", "identifier": "6064054c7212", "hasMains": true, - "hasGenerator": true, + "hasGenerator": false, "nbMppts": 5, "nbPvInverters": 0, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163672, - "lastPowerUpOrRestart": 1637081733, + "lastConnection": 1716963586, + "lastPowerUpOrRestart": 1698660760, "machineSerialNumber": "HQ173848NP5", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/27160", "accessLevel": 1, "syscreated": 1539513295, - "vrmOnline": true, + "vrmOnline": false, "alarm": false, "vpnIp": "10.2.1.155", "vpnName": "HQ173848NP5", @@ -2319,13 +4783,13 @@ "hasGenerator": false, "nbMppts": 3, "nbPvInverters": 0, - "firmware": "v2.60~r4", + "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163652, - "lastPowerUpOrRestart": 1650485992, + "lastConnection": 1718620092, + "lastPowerUpOrRestart": 1667979130, "machineSerialNumber": "HQ1825M84HE", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/31053", "accessLevel": 1, "syscreated": 1548410271, @@ -2335,6 +4799,81 @@ "vpnName": "HQ1825M84HE", "vpnOnline": true }, + { + "name": "Blum, Meyrin/GE | Helion Energy AG (2023-00022)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab2e0c1", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620118, + "lastPowerUpOrRestart": 1685527479, + "machineSerialNumber": "HQ224294VHH", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/280915", + "accessLevel": 1, + "syscreated": 1679323418, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.148", + "vpnName": "HQ224294VHH", + "vpnOnline": true + }, + { + "name": "Böcker, Batteriespeicher/DE | mcc Regelungssysteme GmbH (AB2300090)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab2ea36", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v3.32", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620121, + "lastPowerUpOrRestart": 1717506756, + "machineSerialNumber": "HQ2242KKX6A", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/306800", + "accessLevel": 1, + "syscreated": 1685008227, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.244", + "vpnName": "HQ2242KKX6A", + "vpnOnline": true + }, + { + "name": "Böhi, Dreien/SG | Elektro Iten (2022-00394)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "498", + "identifier": "c0619ab070fe", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620134, + "lastPowerUpOrRestart": 1677224410, + "machineSerialNumber": "HQ2139WW9V9", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/240312", + "accessLevel": 1, + "syscreated": 1669646621, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.250", + "vpnName": "HQ2139WW9V9", + "vpnOnline": true + }, { "name": "Boley, Hofheim am Taunus/DE | EEG Autark GmbH (2021-00132)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", @@ -2344,13 +4883,13 @@ "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.66~rc5", + "firmware": "v2.73~r6", "autoUpdate": "Check", - "updateTo": "Release-candidate", - "lastConnection": 1651163625, - "lastPowerUpOrRestart": 1636000036, + "updateTo": "Official release", + "lastConnection": 1718620113, + "lastPowerUpOrRestart": 1660901661, "machineSerialNumber": "HQ2101HW866", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/125437", "accessLevel": 1, "syscreated": 1630071784, @@ -2361,21 +4900,71 @@ "vpnOnline": true }, { - "name": "Borer, Lyss/BE | GRENERGY AG (2020-00089)", + "name": "Bolliger Bern /Elektro Hunziker AG (AB2300014)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1cec4", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620101, + "lastPowerUpOrRestart": 1711357760, + "machineSerialNumber": "HQ2217QZEAF", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/294640", + "accessLevel": 1, + "syscreated": 1682430656, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.202", + "vpnName": "HQ2217QZEAF", + "vpnOnline": true + }, + { + "name": "Bont, Hettlingen/ZH | Scherrer Gebäudehüllen AG (2022-00537)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab09ac2", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620134, + "lastPowerUpOrRestart": 1679322331, + "machineSerialNumber": "HQ2149DNKYW", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/271578", + "accessLevel": 1, + "syscreated": 1677235052, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.108", + "vpnName": "HQ2149DNKYW", + "vpnOnline": true + }, + { + "name": "Borer, Lyss/BE (2020-00089)", "inverter": "MultiPlus-II 48/5000/70-48", - "inverterFw": "481", + "inverterFw": "501", "identifier": "0c1c57019713", "hasMains": true, "hasGenerator": true, "nbMppts": 0, "nbPvInverters": 3, - "firmware": "v2.66~r5", - "autoUpdate": "On", + "firmware": "v2.73~r6", + "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163653, - "lastPowerUpOrRestart": 1648652754, + "lastConnection": 1718620114, + "lastPowerUpOrRestart": 1716963044, "machineSerialNumber": "HQ200543CY9", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/72384", "accessLevel": 1, "syscreated": 1600419917, @@ -2383,24 +4972,299 @@ "alarm": false, "vpnIp": "10.2.0.220", "vpnName": "HQ200543CY9", + "vpnOnline": false + }, + { + "name": "BOSAQ_Suriname 5 kVA-200 Ah", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab649c8", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v3.12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620101, + "lastPowerUpOrRestart": 1718369849, + "machineSerialNumber": "HQ2332GT9GW", + "controllerType": "Ekrano GX", + "vrmLink": "vrm.victronenergy.com/installation/362463", + "accessLevel": 1, + "syscreated": 1698049410, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "BOSAQ_Suriname_systeem A", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "498", + "identifier": "c0619ab3d007", + "hasMains": false, + "hasGenerator": true, + "nbMppts": 4, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1711630772, + "lastPowerUpOrRestart": 1711630533, + "machineSerialNumber": "HQ2248FCRGA", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/417146", + "accessLevel": 1, + "syscreated": 1711617635, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "BOSAQ_Systeem B-Kast 1", + "inverter": "MultiPlus-II 48/8000/110-100", + "inverterFw": "498", + "identifier": "c0619ab3cfeb", + "hasMains": false, + "hasGenerator": true, + "nbMppts": 4, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1711466138, + "lastPowerUpOrRestart": 1711463896, + "machineSerialNumber": "HQ22487FKG7", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/416315", + "accessLevel": 1, + "syscreated": 1711461308, + "vrmOnline": true, + "alarm": true, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "BOSAQ_Systeem B-Kast 2", + "inverter": "MultiPlus-II 48/8000/110-100", + "inverterFw": "498", + "identifier": "c0619ab3cfed", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 4, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1711469230, + "lastPowerUpOrRestart": 1711468387, + "machineSerialNumber": "HQ2248FCNT9", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/416379", + "accessLevel": 1, + "syscreated": 1711466799, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "BOSAQ_Systeem B-Kast 3", + "inverter": "MultiPlus-II 48/8000/110-100", + "inverterFw": "498", + "identifier": "c0619ab3d219", + "hasMains": false, + "hasGenerator": true, + "nbMppts": 4, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1711636271, + "lastPowerUpOrRestart": 1711635260, + "machineSerialNumber": "HQ2248UGNQJ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/417265", + "accessLevel": 1, + "syscreated": 1711631138, + "vrmOnline": true, + "alarm": true, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "BOSAQ_Systeem C-Kast 2", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "498", + "identifier": "c0619ab3d19a", + "hasMains": false, + "hasGenerator": true, + "nbMppts": 4, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1712237614, + "lastPowerUpOrRestart": 1712237254, + "machineSerialNumber": "HQ2248JMFDH", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/419466", + "accessLevel": 1, + "syscreated": 1712234920, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "BOSAQ_Systeem C-Kast 3", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "498", + "identifier": "c0619ab3d101", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 4, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1712225758, + "lastPowerUpOrRestart": 1712221437, + "machineSerialNumber": "HQ2248VWRDY", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/419360", + "accessLevel": 1, + "syscreated": 1712221043, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "BOSAQ_Systeem D-Kast 1", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "498", + "identifier": "c0619ab3d0fb", + "hasMains": false, + "hasGenerator": true, + "nbMppts": 4, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1712242911, + "lastPowerUpOrRestart": 1712242105, + "machineSerialNumber": "HQ2248K3M6P", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/419552", + "accessLevel": 1, + "syscreated": 1712241870, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "BOSAQ_Systeem D-Kast 2", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "498", + "identifier": "c0619ab3d0a0", + "hasMains": false, + "hasGenerator": true, + "nbMppts": 4, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1712244401, + "lastPowerUpOrRestart": 1712244066, + "machineSerialNumber": "HQ2248GRHFQ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/419567", + "accessLevel": 1, + "syscreated": 1712243453, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Bösiger, Matten/BE/CH | innovenergy (2021-00206)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da898067", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620134, + "lastPowerUpOrRestart": 1683407803, + "machineSerialNumber": "HQ2128NWV97", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/150190", + "accessLevel": 1, + "syscreated": 1642426808, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.179", + "vpnName": "HQ2128NWV97", "vpnOnline": true }, + { + "name": "Bosmans | Riehen Elektro Montandon AG/BE (AB2300262) SN20230201", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "506", + "identifier": "c0619ab38ce9", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 4, + "nbPvInverters": 2, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718272854, + "lastPowerUpOrRestart": 1718157053, + "machineSerialNumber": "HQ2247REKQU", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/350142", + "accessLevel": 1, + "syscreated": 1695035554, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, { "name": "Bosshard, Dübendorf/ZH I SoloSolar GmbH (2020-00046)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "481", + "inverterFw": "502", "identifier": "7804733f168f", "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163625, - "lastPowerUpOrRestart": 1642190339, + "lastConnection": 1718620155, + "lastPowerUpOrRestart": 1708267324, "machineSerialNumber": "HQ1945M6Y99", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/63976", "accessLevel": 1, "syscreated": 1593431731, @@ -2410,6 +5274,56 @@ "vpnName": "HQ1945M6Y99", "vpnOnline": true }, + { + "name": "Bosshart, Oberwangen/TG/CH | ELEKTRO EISENEGGER AG (2022-00265)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "498", + "identifier": "48e7da86217d", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r10", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620115, + "lastPowerUpOrRestart": 1708533760, + "machineSerialNumber": "HQ2148FV22Z", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/209368", + "accessLevel": 1, + "syscreated": 1662368494, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.145", + "vpnName": "HQ2148FV22Z", + "vpnOnline": true + }, + { + "name": "Bossyns_339.4_NEW", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab09ab4", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620120, + "lastPowerUpOrRestart": 1718612020, + "machineSerialNumber": "HQ2149CZUJR", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/311305", + "accessLevel": 1, + "syscreated": 1685989233, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.136", + "vpnName": "HQ2149CZUJR", + "vpnOnline": true + }, { "name": "Bowles, Kappel am Albis/ZH | Hotz Technik GmbH (2021-00116)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", @@ -2422,10 +5336,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163645, - "lastPowerUpOrRestart": 1647278644, + "lastConnection": 1718620159, + "lastPowerUpOrRestart": 1706432320, "machineSerialNumber": "HQ204621Z4M", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/123958", "accessLevel": 1, "syscreated": 1629297813, @@ -2436,21 +5350,171 @@ "vpnOnline": true }, { - "name": "Bremgartner, Sigigen/LU | Alectron AG (2020-00041)", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "474", - "identifier": "780473406e73", + "name": "Brändle, Herisau/AR | Hablützel AG (2022-00132)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "497", + "identifier": "48e7da8a0b1d", "hasMains": true, "hasGenerator": false, - "nbMppts": 0, + "nbMppts": 2, "nbPvInverters": 0, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163658, - "lastPowerUpOrRestart": 1649334280, + "lastConnection": 1718620112, + "lastPowerUpOrRestart": 1666697578, + "machineSerialNumber": "HQ22016PDZ3", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/181837", + "accessLevel": 1, + "syscreated": 1654094847, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.33", + "vpnName": "HQ22016PDZ3", + "vpnOnline": true + }, + { + "name": "Brändli, Heiden/CH | A + Elektro AG (2022-00301)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da899739", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620131, + "lastPowerUpOrRestart": 1716896600, + "machineSerialNumber": "HQ2206KH2PR", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/221934", + "accessLevel": 1, + "syscreated": 1665473783, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.190", + "vpnName": "HQ2206KH2PR", + "vpnOnline": true + }, + { + "name": "Bratschi, Erlenbach/BE/CH | Röthlisberger Elektro AG (2022-00270)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da86c7a1", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620153, + "lastPowerUpOrRestart": 1713769131, + "machineSerialNumber": "HQ2206DYX4W", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/210085", + "accessLevel": 1, + "syscreated": 1662557777, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.152", + "vpnName": "HQ2206DYX4W", + "vpnOnline": true + }, + { + "name": "Brawand, Ringgenberg BE | Allenbach Holzbau und Solartechnik AG (AB2300164) SN20230120", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab2e67b", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620112, + "lastPowerUpOrRestart": 1714116042, + "machineSerialNumber": "HQ2242PZN9C", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/321874", + "accessLevel": 1, + "syscreated": 1688128133, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Breiten, Sachseln/OW | DACH UND SOLAR AG (2022-00253)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "500", + "identifier": "48e7da85e26b", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620131, + "lastPowerUpOrRestart": 1686656638, + "machineSerialNumber": "HQ2148GXGNP", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/207735", + "accessLevel": 1, + "syscreated": 1661865478, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.141", + "vpnName": "HQ2148GXGNP", + "vpnOnline": true + }, + { + "name": "Breitenmoser/Jona / SG | Elektro Egli Ag (AB2300169) SN20230106", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "508", + "identifier": "c0619ab1d418", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620139, + "lastPowerUpOrRestart": 1708511882, + "machineSerialNumber": "HQ2217H9EUP", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/322731", + "accessLevel": 1, + "syscreated": 1688389540, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.4.68", + "vpnName": "HQ2217H9EUP", + "vpnOnline": true + }, + { + "name": "Bremgartner, Sigigen/LU | Alectron AG (2020-00041)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "780473406e73", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620158, + "lastPowerUpOrRestart": 1718452219, "machineSerialNumber": "HQ1945MFRT8", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/64548", "accessLevel": 1, "syscreated": 1593805775, @@ -2460,72 +5524,97 @@ "vpnName": "HQ1945MFRT8", "vpnOnline": true }, + { + "name": "Britschgi, Kerns/OW/CH | alsona ag (2022-00341)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da882b81", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620128, + "lastPowerUpOrRestart": 1711036328, + "machineSerialNumber": "HQ2201AV43G", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/225202", + "accessLevel": 1, + "syscreated": 1666174207, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.202", + "vpnName": "HQ2201AV43G", + "vpnOnline": true + }, + { + "name": "Bross, Asbach/RP/DE | EBS Elektrotechnik Stefan GmbH (2022-00103)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da872851", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620114, + "lastPowerUpOrRestart": 1714719984, + "machineSerialNumber": "HQ2148FZZGU", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/172747", + "accessLevel": 1, + "syscreated": 1651158295, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.12", + "vpnName": "HQ2148FZZGU", + "vpnOnline": true + }, { "name": "Brubacher, Seelze/DE | Optema - Ronald Koch (2021-00176)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "485", + "inverterFw": "502", "identifier": "0281eefec2ad", - "hasMains": false, + "hasMains": true, "hasGenerator": false, "nbMppts": 1, "nbPvInverters": 0, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163642, - "lastPowerUpOrRestart": 1650640035, + "lastConnection": 1718620169, + "lastPowerUpOrRestart": 1716552970, "machineSerialNumber": "HQ21071BHI8", - "type": "MultiPlus-II GX", + "controllerType": "MultiPlus-II GX", "vrmLink": "vrm.victronenergy.com/installation/138021", "accessLevel": 1, "syscreated": 1636641323, - "vrmOnline": true, + "vrmOnline": false, "alarm": false, "vpnIp": "10.2.1.154", "vpnName": "HQ21071BHI8", "vpnOnline": true }, { - "name": "Brugger in AT | JS Sonnenstrom GmbH (2022-00054)", - "inverter": "MultiPlus-II 48/5000/70-48", - "inverterFw": "490", - "identifier": "00e93aac3e1b", - "hasMains": false, - "hasGenerator": false, + "name": "Brügger, Kerzers/BE | eltanom GmbH (2021-00060)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "481", + "identifier": "94e36dceb110", + "hasMains": true, + "hasGenerator": true, "nbMppts": 0, "nbPvInverters": 0, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651149738, - "lastPowerUpOrRestart": 1649446042, - "machineSerialNumber": "HQ21399GMMR", - "type": "Cerbo GX", - "vrmLink": "vrm.victronenergy.com/installation/162040", - "accessLevel": 1, - "syscreated": 1647360369, - "vrmOnline": true, - "alarm": false, - "vpnIp": "10.2.1.228", - "vpnName": "HQ21399GMMR", - "vpnOnline": false - }, - { - "name": "Brügger, Kerzers/BE | eltanom GmbH (2021-00060)", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "481", - "identifier": "94e36dceb110", - "hasMains": false, - "hasGenerator": false, - "nbMppts": 0, - "nbPvInverters": 0, - "firmware": "v2.60~ditto", - "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1651163625, - "lastPowerUpOrRestart": 1622741594, + "lastConnection": 1718620125, + "lastPowerUpOrRestart": 1716664479, "machineSerialNumber": "HQ2042GSIB5", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/110681", "accessLevel": 1, "syscreated": 1622184558, @@ -2535,22 +5624,47 @@ "vpnName": "HQ2042GSIB5", "vpnOnline": true }, + { + "name": "Brugger, Kirchberg a.d.R/ AT | JS Sonnenstrom GmbH (2022-00054)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "00e93aac3e1b", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718439070, + "lastPowerUpOrRestart": 1710427635, + "machineSerialNumber": "HQ21399GMMR", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/162040", + "accessLevel": 1, + "syscreated": 1647360369, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.228", + "vpnName": "HQ21399GMMR", + "vpnOnline": false + }, { "name": "Brügger, Laupen/BE | energy unlimited GmbH (2020-00088)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "475", + "inverterFw": "502", "identifier": "e8eb11e308e0", "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163657, - "lastPowerUpOrRestart": 1644479163, + "lastConnection": 1718620123, + "lastPowerUpOrRestart": 1717068225, "machineSerialNumber": "HQ2024B2DIC", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/71502", "accessLevel": 1, "syscreated": 1599672804, @@ -2560,6 +5674,31 @@ "vpnName": "HQ2024B2DIC", "vpnOnline": true }, + { + "name": "Bründler, Udligenwil/LU Alectron 2022-00299", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da875b13", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620120, + "lastPowerUpOrRestart": 1706903937, + "machineSerialNumber": "HQ2148D7CJJ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/217492", + "accessLevel": 1, + "syscreated": 1664373979, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.173", + "vpnName": "HQ2148D7CJJ", + "vpnOnline": true + }, { "name": "Brunelli, Ligornetto/TI | Bouygues AG (2021-00076)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", @@ -2569,13 +5708,13 @@ "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 0, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163663, - "lastPowerUpOrRestart": 1649696465, + "lastConnection": 1718620164, + "lastPowerUpOrRestart": 1695650627, "machineSerialNumber": "HQ204685UUB", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/115214", "accessLevel": 1, "syscreated": 1624554238, @@ -2585,22 +5724,47 @@ "vpnName": "HQ204685UUB", "vpnOnline": true }, + { + "name": "Brunner, Adlikon/ZH | Meier Elektro (AB2300339)_SN20230113", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab2e62c", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620145, + "lastPowerUpOrRestart": 1708562118, + "machineSerialNumber": "HQ2242WUZPR", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/317851", + "accessLevel": 1, + "syscreated": 1687347021, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, { "name": "Brunner, Walzenhausen/AR | Swiss Photovoltaik GmbH (2021-00139)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "485", + "inverterFw": "502", "identifier": "1862e4c6fdb6", "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163674, - "lastPowerUpOrRestart": 1640097077, + "lastConnection": 1718620127, + "lastPowerUpOrRestart": 1699458740, "machineSerialNumber": "HQ2101SBCHX", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/129630", "accessLevel": 1, "syscreated": 1632408398, @@ -2610,27 +5774,52 @@ "vpnName": "HQ2101SBCHX", "vpnOnline": true }, + { + "name": "Bruno Muttenz BL/ GGS AG (AB2300155) SN20230117", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d441", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620144, + "lastPowerUpOrRestart": 1718461382, + "machineSerialNumber": "HQ2217HMC22", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/318819", + "accessLevel": 1, + "syscreated": 1687504774, + "vrmOnline": true, + "alarm": true, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, { "name": "Bücheler, Kerzers/FR | Bouygues AG (2020-00096)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "475", "identifier": "0c1c57003453", - "hasMains": false, + "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 0, - "firmware": "v2.60~ditto", + "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163644, - "lastPowerUpOrRestart": 1608224815, + "lastConnection": 1718620129, + "lastPowerUpOrRestart": 1718442716, "machineSerialNumber": "HQ2005UX2KL", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/72858", "accessLevel": 1, "syscreated": 1600850918, "vrmOnline": true, - "alarm": false, + "alarm": true, "vpnIp": "10.2.0.224", "vpnName": "HQ2005UX2KL", "vpnOnline": true @@ -2644,38 +5833,213 @@ "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.73~r6", + "firmware": "v2.73~r12", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163633, - "lastPowerUpOrRestart": 1647416220, + "lastConnection": 1718620161, + "lastPowerUpOrRestart": 1695632804, "machineSerialNumber": "HQ2104MKRLR", - "type": "Cerbo GX", + "controllerType": "Cerbo GX", "vrmLink": "vrm.victronenergy.com/installation/159156", "accessLevel": 1, "syscreated": 1646238377, "vrmOnline": true, - "alarm": false, - "vpnIp": "10.2.1.214", + "alarm": true, + "vpnIp": "10.2.4.136", "vpnName": "HQ2104MKRLR", - "vpnOnline": false + "vpnOnline": true }, { - "name": "Bürgi, Fulenbach/SO | von arx systems ag (2022-00004)", + "name": "Buffin,Crans /VD| OptimalLiving SA (AB2300109)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "490", - "identifier": "d41243d30429", + "inverterFw": "502", + "identifier": "c0619ab2dccd", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 2, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620161, + "lastPowerUpOrRestart": 1714411811, + "machineSerialNumber": "HQ2242RH2WF", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/306277", + "accessLevel": 1, + "syscreated": 1684921202, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.240", + "vpnName": "HQ2242RH2WF", + "vpnOnline": true + }, + { + "name": "Bühler, Romanshorn/TG | CE Concept Energy AG (2022-00469)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab169f9", "hasMains": false, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 0, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1648651003, - "lastPowerUpOrRestart": 1648650841, + "lastConnection": 1688273126, + "lastPowerUpOrRestart": 1677886618, + "machineSerialNumber": "HQ22117U99P", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/254073", + "accessLevel": 1, + "syscreated": 1673283463, + "vrmOnline": false, + "alarm": false, + "vpnIp": "10.2.3.44", + "vpnName": "HQ22117U99P", + "vpnOnline": false + }, + { + "name": "Bulloni, Binningen/BL | STARK STROM GmbH (2022-00314)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab09a81", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620165, + "lastPowerUpOrRestart": 1674629815, + "machineSerialNumber": "HQ21497DEJN", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/243353", + "accessLevel": 1, + "syscreated": 1670316724, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.3.5", + "vpnName": "HQ21497DEJN", + "vpnOnline": true + }, + { + "name": "Bureaux Giot & OptimalGo SA - Chavannes-de-Bogis - (AB2300287) SN20230143", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1dd87", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620173, + "lastPowerUpOrRestart": 1712818270, + "machineSerialNumber": "HQ221939XFX", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/339164", + "accessLevel": 1, + "syscreated": 1692188371, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Burger, Hondrich/BE/CH | Elektro Hunziker AG (2022-00163)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da89dcc7", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 4, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620160, + "lastPowerUpOrRestart": 1714391179, + "machineSerialNumber": "HQ2148U2WPA", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/192873", + "accessLevel": 1, + "syscreated": 1657543478, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.77", + "vpnName": "HQ2148U2WPA", + "vpnOnline": true + }, + { + "name": "Burger, Schwarzenburg/BE | Breu AG (AB2300008)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab2dcfc", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620156, + "lastPowerUpOrRestart": 1701640084, + "machineSerialNumber": "HQ2242HZDMQ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/290330", + "accessLevel": 1, + "syscreated": 1681462688, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.184", + "vpnName": "HQ2242HZDMQ", + "vpnOnline": false + }, + { + "name": "Bürgi Kestenholz/SO| Baumann Haustechnik GmbH (2023-5002)", + "inverter": "MultiPlus-II 48/10000/140-100/100", + "inverterFw": "502", + "identifier": "c0619ab1d119", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 3, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620169, + "lastPowerUpOrRestart": 1701714709, + "machineSerialNumber": "HQ22174ZHHQ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/298490", + "accessLevel": 1, + "syscreated": 1683273626, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.215", + "vpnName": "HQ22174ZHHQ", + "vpnOnline": true + }, + { + "name": "Bürgi, Fulenbach/SO | von arx systems ag (2022-00004)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "d41243d30429", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620153, + "lastPowerUpOrRestart": 1704371528, "machineSerialNumber": "HQ210432ALU", - "type": "Cerbo GX", + "controllerType": "Cerbo GX", "vrmLink": "vrm.victronenergy.com/installation/165705", "accessLevel": 1, "syscreated": 1648643459, @@ -2683,24 +6047,124 @@ "alarm": false, "vpnIp": "10.2.1.237", "vpnName": "HQ210432ALU", - "vpnOnline": false + "vpnOnline": true + }, + { + "name": "Burkhalter, Studen/BE | Solarmaa GmbH (2023-000133)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab16995", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620148, + "lastPowerUpOrRestart": 1690233216, + "machineSerialNumber": "HQ221172PWV", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/285252", + "accessLevel": 1, + "syscreated": 1680248691, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.166", + "vpnName": "HQ221172PWV", + "vpnOnline": true + }, + { + "name": "Burkhard, Arbaz | Helion Energy AG (AB2300041)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d1a6", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620160, + "lastPowerUpOrRestart": 1697061787, + "machineSerialNumber": "HQ2217R94WM", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/315062", + "accessLevel": 1, + "syscreated": 1686745242, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.4.34", + "vpnName": "HQ2217R94WM", + "vpnOnline": true + }, + { + "name": "Burkhard, Biberist/SO | Helion Energy AG (2022-00247)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "501", + "identifier": "48e7da87e9e1", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620161, + "lastPowerUpOrRestart": 1674606930, + "machineSerialNumber": "HQ214896NET", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/207453", + "accessLevel": 1, + "syscreated": 1661784033, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.137", + "vpnName": "HQ214896NET", + "vpnOnline": true + }, + { + "name": "Burkhard, Thunstetten/BE | Clevergie ag - Region Emmental (2022-00182)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da89f1d9", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620176, + "lastPowerUpOrRestart": 1683405755, + "machineSerialNumber": "HQ2201DY2FZ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/192954", + "accessLevel": 1, + "syscreated": 1657553751, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.78", + "vpnName": "HQ2201DY2FZ", + "vpnOnline": true }, { "name": "Burki, Lätti/BE | KWenergy GmbH (2020-00043)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "474", + "inverterFw": "502", "identifier": "7804734044b8", "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163650, - "lastPowerUpOrRestart": 1645778061, + "lastConnection": 1718620176, + "lastPowerUpOrRestart": 1709540877, "machineSerialNumber": "HQ1945RENFU", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/64549", "accessLevel": 1, "syscreated": 1593806543, @@ -2719,13 +6183,13 @@ "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.60~ditto", + "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163624, - "lastPowerUpOrRestart": 1608224927, + "lastConnection": 1718620158, + "lastPowerUpOrRestart": 1680531565, "machineSerialNumber": "HQ1933JF584", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/62048", "accessLevel": 1, "syscreated": 1591679631, @@ -2735,29 +6199,104 @@ "vpnName": "HQ1933JF584", "vpnOnline": true }, + { + "name": "Burri, Rüschegg/BE | Staub + Zbinden Elektro GmbH (2022-00500)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab16734", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620128, + "lastPowerUpOrRestart": 1682581557, + "machineSerialNumber": "HQ2211AJDTP", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/267179", + "accessLevel": 1, + "syscreated": 1676356514, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.79", + "vpnName": "HQ2211AJDTP", + "vpnOnline": true + }, { "name": "Buser, Möhlin/AG | Elektro Böhlen AG (2021-00087)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "481", "identifier": "1862e4c7052d", - "hasMains": false, + "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.60~ditto", + "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1649894352, - "lastPowerUpOrRestart": 1647277684, + "lastConnection": 1718620162, + "lastPowerUpOrRestart": 1660901673, "machineSerialNumber": "HQ20466YVQ9", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/117524", "accessLevel": 1, "syscreated": 1625748587, - "vrmOnline": false, + "vrmOnline": true, "alarm": false, "vpnIp": "10.2.1.84", "vpnName": "HQ20466YVQ9", + "vpnOnline": true + }, + { + "name": "c0619ab09a82", + "inverter": "unknown", + "inverterFw": "unknown", + "identifier": "c0619ab09a82", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1671452848, + "lastPowerUpOrRestart": 1671452809, + "machineSerialNumber": "HQ21497GANN", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/248426", + "accessLevel": 1, + "syscreated": 1671452406, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.21", + "vpnName": "HQ21497GANN", + "vpnOnline": true + }, + { + "name": "c0619ab1d144", + "inverter": "MultiGrid 48/3000/35-50", + "inverterFw": "430", + "identifier": "c0619ab1d144 - USEDASREPLACEMENT", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1679045326, + "lastPowerUpOrRestart": 1679043628, + "machineSerialNumber": "HQ2217VTYGR", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/267807", + "accessLevel": 1, + "syscreated": 1676456554, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.89", + "vpnName": "HQ2217VTYGR", "vpnOnline": false }, { @@ -2775,7 +6314,7 @@ "lastConnection": 1633245921, "lastPowerUpOrRestart": 1632899050, "machineSerialNumber": "HQ20424S63Q", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/112341", "accessLevel": 1, "syscreated": 1623153453, @@ -2785,6 +6324,181 @@ "vpnName": "HQ20424S63Q", "vpnOnline": false }, + { + "name": "Campell Zürich/ZH | Senero AG (2022-00358)", + "inverter": "MultiPlus-II 48/10000/140-100/100", + "inverterFw": "502", + "identifier": "c0619ab106a4", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620135, + "lastPowerUpOrRestart": 1687877522, + "machineSerialNumber": "HQ2204TNW7Q", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/264526", + "accessLevel": 1, + "syscreated": 1675761879, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.72", + "vpnName": "HQ2204TNW7Q", + "vpnOnline": true + }, + { + "name": "Canonica, Olivone/TI | Bouygues E&S In Tec Schweiz AG (2022-00224)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da89b00b", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620152, + "lastPowerUpOrRestart": 1708418504, + "machineSerialNumber": "HQ21486TGWM", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/203484", + "accessLevel": 1, + "syscreated": 1660638256, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.120", + "vpnName": "HQ21486TGWM", + "vpnOnline": true + }, + { + "name": "Cassata, Nunningen/SO | STARK STROM GmbH (2022-00526)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "501", + "identifier": "c0619ab16a22", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620133, + "lastPowerUpOrRestart": 1693292732, + "machineSerialNumber": "HQ2211AA4NT", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/267920", + "accessLevel": 1, + "syscreated": 1676466877, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.90", + "vpnName": "HQ2211AA4NT", + "vpnOnline": true + }, + { + "name": "CERBO 123 TEST", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab052ac", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1689678757, + "lastPowerUpOrRestart": 1683620912, + "machineSerialNumber": "HQ2128VWDVN", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/279315", + "accessLevel": 1, + "syscreated": 1678899305, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.139", + "vpnName": "HQ2128VWDVN", + "vpnOnline": false + }, + { + "name": "CerboGX TEST DÜBENDORF", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1bfcb", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620169, + "lastPowerUpOrRestart": 1717674241, + "machineSerialNumber": "HQ2216WDHKK", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/403402", + "accessLevel": 1, + "syscreated": 1708525029, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Cerv, Herisau/AR | Hablützel AG (2022-00131)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "48e7da878027", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 3, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620140, + "lastPowerUpOrRestart": 1712576461, + "machineSerialNumber": "HQ22019JGGF", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/183215", + "accessLevel": 1, + "syscreated": 1654594911, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.39", + "vpnName": "HQ22019JGGF", + "vpnOnline": true + }, + { + "name": "Chambre Froide Ouahigouya", + "inverter": "Quattro 48/15000/200-2x100", + "inverterFw": "497", + "identifier": "c0619ab1cdf3", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1715151353, + "lastPowerUpOrRestart": 1715147708, + "machineSerialNumber": "HQ2217GCPTW", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/267473", + "accessLevel": 1, + "syscreated": 1676384696, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.3.82", + "vpnName": "HQ2217GCPTW", + "vpnOnline": false + }, { "name": "Châtelain, La Côte-aux-Fées/NE | Easy-sun (2021-00121)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", @@ -2797,10 +6511,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163640, - "lastPowerUpOrRestart": 1643617230, + "lastConnection": 1718620155, + "lastPowerUpOrRestart": 1677859376, "machineSerialNumber": "HQ21019CSPF", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/125237", "accessLevel": 1, "syscreated": 1629983752, @@ -2813,19 +6527,19 @@ { "name": "Christ, Büsserach/SO | STARK STROM GmbH (2021-00093)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "482", + "inverterFw": "502", "identifier": "0479b7b2e06b", "hasMains": true, "hasGenerator": false, "nbMppts": 0, - "nbPvInverters": 1, - "firmware": "v2.73~r6", + "nbPvInverters": 2, + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163647, - "lastPowerUpOrRestart": 1637078599, + "lastConnection": 1718620152, + "lastPowerUpOrRestart": 1709126523, "machineSerialNumber": "HQ2046PNVHX", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/118914", "accessLevel": 1, "syscreated": 1626355042, @@ -2847,10 +6561,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163629, - "lastPowerUpOrRestart": 1643122675, + "lastConnection": 1718620171, + "lastPowerUpOrRestart": 1715627074, "machineSerialNumber": "HQ1924L3DYA", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/52662", "accessLevel": 1, "syscreated": 1580547477, @@ -2860,6 +6574,31 @@ "vpnName": "HQ1924L3DYA", "vpnOnline": true }, + { + "name": "Christen, Zollbrück/BE | Elentec GmbH (2022-00178)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "497", + "identifier": "48e7da86b84b", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620155, + "lastPowerUpOrRestart": 1662363989, + "machineSerialNumber": "HQ2150H37YU", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/193129", + "accessLevel": 1, + "syscreated": 1657614236, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.79", + "vpnName": "HQ2150H37YU", + "vpnOnline": true + }, { "name": "Christener, Zäziwil/BE | Elentec GmbH (2020-00025)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", @@ -2872,10 +6611,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163642, - "lastPowerUpOrRestart": 1643210897, + "lastConnection": 1718620158, + "lastPowerUpOrRestart": 1711236274, "machineSerialNumber": "HQ1945TPYS2", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/62128", "accessLevel": 1, "syscreated": 1591714346, @@ -2897,10 +6636,10 @@ "firmware": "v2.52", "autoUpdate": "On", "updateTo": "Official release", - "lastConnection": 1651163662, - "lastPowerUpOrRestart": 1624883769, + "lastConnection": 1718620179, + "lastPowerUpOrRestart": 1713167153, "machineSerialNumber": "HQ19071LFGE", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/44686", "accessLevel": 1, "syscreated": 1569660449, @@ -2917,40 +6656,190 @@ "identifier": "0035ff646c20", "hasMains": false, "hasGenerator": false, - "nbMppts": 1, + "nbMppts": 2, "nbPvInverters": 0, "firmware": "v2.51", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163550, - "lastPowerUpOrRestart": 1650778069, + "lastConnection": 1660579507, + "lastPowerUpOrRestart": 1660414990, "machineSerialNumber": "HQ2032MLIFN", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/93065", "accessLevel": 1, "syscreated": 1611565996, - "vrmOnline": true, + "vrmOnline": false, "alarm": false, "vpnIp": "10.2.1.17", "vpnName": "HQ2032MLIFN", "vpnOnline": false }, + { + "name": "Clever Chicken Cameroun nouveau", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "470", + "identifier": "0cb2b7b9a51b", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1680914704, + "lastPowerUpOrRestart": 1680273550, + "machineSerialNumber": "HQ2042IBQUL", + "controllerType": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/109040", + "accessLevel": 1, + "syscreated": 1621325407, + "vrmOnline": false, + "alarm": false, + "vpnIp": "10.2.1.51", + "vpnName": "HQ2042IBQUL", + "vpnOnline": false + }, + { + "name": "Commune La Rippe, La Rippe/VD | OptimalLivingSA (2300280)", + "inverter": "MultiPlus-II 48/10000/140-100/100", + "inverterFw": "506", + "identifier": "c0619ab1d15a", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 6, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718266815, + "lastPowerUpOrRestart": 1715607467, + "machineSerialNumber": "HQ22177E4FP", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/368434", + "accessLevel": 1, + "syscreated": 1699447556, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "CONTAINWATT SN0002 (Monkilowatt)", + "inverter": "Quattro 48/8000/110-2x100 rev2", + "inverterFw": "501", + "identifier": "48e7da88259d", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 6, + "nbPvInverters": 0, + "firmware": "v2.73~r10", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1675948924, + "lastPowerUpOrRestart": 1675939432, + "machineSerialNumber": "HQ2204R36AV", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/235189", + "accessLevel": 1, + "syscreated": 1668508615, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.236", + "vpnName": "HQ2204R36AV", + "vpnOnline": false + }, + { + "name": "Containwatt SN0004 (AID/CETID) Sodium", + "inverter": "Quattro 48/8000/110-2x100 rev2", + "inverterFw": "508", + "identifier": "c0619ab1d14d", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620161, + "lastPowerUpOrRestart": 1716373241, + "machineSerialNumber": "HQ22173ANCC", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/392617", + "accessLevel": 1, + "syscreated": 1705908644, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Cuny Ennetbaden| 5 Architekten AG Gerber EL(2022-00062)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "48e7da86e317", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620163, + "lastPowerUpOrRestart": 1683211214, + "machineSerialNumber": "HQ2201HXHGG", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/181573", + "accessLevel": 1, + "syscreated": 1654010527, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.32", + "vpnName": "HQ2201HXHGG", + "vpnOnline": true + }, + { + "name": "D B Charging Station Accra/GH |Foundation (2021-00105.2)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "498", + "identifier": "94e36dce7e64", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1687856386, + "lastPowerUpOrRestart": 1686933314, + "machineSerialNumber": "HQ20469IA6H", + "controllerType": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/120656", + "accessLevel": 1, + "syscreated": 1627365942, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.94", + "vpnName": "HQ20469IA6H", + "vpnOnline": false + }, { "name": "D B Provincial House Salt Battery (2021-00105)", "inverter": "Quattro 48/15000/200-2x100", "inverterFw": "481", "identifier": "0cb2b7b9f636", - "hasMains": true, + "hasMains": false, "hasGenerator": false, - "nbMppts": 5, - "nbPvInverters": 8, - "firmware": "v2.60~ditto", - "autoUpdate": "Check", + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Off", "updateTo": "Official release", - "lastConnection": 1651163633, - "lastPowerUpOrRestart": 1650973377, + "lastConnection": 1718620171, + "lastPowerUpOrRestart": 1718197891, "machineSerialNumber": "HQ2024ER4ZX", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/93077", "accessLevel": 1, "syscreated": 1611568989, @@ -2961,7 +6850,32 @@ "vpnOnline": true }, { - "name": "Debrunner, Eschenz/TG | EWE Elektro AG (2021-00125)", + "name": "Deblue, Fancous, Founex/VD | OptimalLiving SA (2022-00456)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab437dc", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620166, + "lastPowerUpOrRestart": 1710840134, + "machineSerialNumber": "HQ2302FXKNW", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/351744", + "accessLevel": 1, + "syscreated": 1695367782, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Debrunner, Eschenz/TG/CH | EWE Elektro AG (2021-00125)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "485", "identifier": "0479b7b32d63", @@ -2969,13 +6883,13 @@ "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.60~ditto", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163630, - "lastPowerUpOrRestart": 1647278476, + "lastConnection": 1718620154, + "lastPowerUpOrRestart": 1701624472, "machineSerialNumber": "HQ2101T1UN6", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/125808", "accessLevel": 1, "syscreated": 1630400679, @@ -2985,22 +6899,97 @@ "vpnName": "HQ2101T1UN6", "vpnOnline": true }, + { + "name": "Demo NF", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab09b03", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1716622487, + "lastPowerUpOrRestart": 1716607968, + "machineSerialNumber": "HQ2149E4HZA", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/284364", + "accessLevel": 1, + "syscreated": 1680082951, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.135", + "vpnName": "HQ2149E4HZA", + "vpnOnline": false + }, + { + "name": "Desalmand, Ammerzwil/AG | Feldmann & Co. AG (2022-00376)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "498", + "identifier": "48e7da884c4f", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620164, + "lastPowerUpOrRestart": 1671650530, + "machineSerialNumber": "HQ2201MYNDU", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/232963", + "accessLevel": 1, + "syscreated": 1667985064, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.228", + "vpnName": "HQ2201MYNDU", + "vpnOnline": true + }, + { + "name": "Destraz, Combremont-le-Petit/VD | Easy-sun (2022-00503)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab09a73", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620190, + "lastPowerUpOrRestart": 1689807233, + "machineSerialNumber": "HQ21496YPNM", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/270070", + "accessLevel": 1, + "syscreated": 1676969480, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.98", + "vpnName": "HQ21496YPNM", + "vpnOnline": true + }, { "name": "Diethelm, Brunnen/SZ | Alectron AG (2019-00004)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "459", + "inverterFw": "502", "identifier": "7c386655d508", "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163630, - "lastPowerUpOrRestart": 1648666047, + "lastConnection": 1718620203, + "lastPowerUpOrRestart": 1711043675, "machineSerialNumber": "HQ1837HUPTV", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/34388", "accessLevel": 1, "syscreated": 1554544954, @@ -3013,19 +7002,19 @@ { "name": "Dobler, Eppenberg/SO | kabeltechnik swiss ag (2021-00021)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "494", + "inverterFw": "502", "identifier": "0035ff9185eb", - "hasMains": false, + "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 0, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163638, - "lastPowerUpOrRestart": 1650137243, + "lastConnection": 1718620206, + "lastPowerUpOrRestart": 1714129215, "machineSerialNumber": "HQ2032ASIQA", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/100126", "accessLevel": 1, "syscreated": 1616136362, @@ -3038,44 +7027,144 @@ { "name": "Doldt, Zumikon/ZH | BS Strohmeier AG (2020-00094)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "475", + "inverterFw": "502", "identifier": "0c1c5701d7ea", "hasMains": true, - "hasGenerator": true, + "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163673, - "lastPowerUpOrRestart": 1638784671, + "lastConnection": 1712389783, + "lastPowerUpOrRestart": 1712265135, "machineSerialNumber": "HQ2005VSEVI", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/72364", "accessLevel": 1, "syscreated": 1600405215, "vrmOnline": true, - "alarm": false, + "alarm": true, "vpnIp": "10.2.0.219", "vpnName": "HQ2005VSEVI", - "vpnOnline": true + "vpnOnline": false }, { - "name": "Don Bosco, Accra/GH | Antenna Foundation (2021-00105.1)", + "name": "Doll Savognin, Savognin/GR | Elektro Savoldelli AG (AB2300208) SN20230146", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "485", - "identifier": "0cb2b7b9d7dc", + "inverterFw": "506", + "identifier": "c0619ab1d1da", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620197, + "lastPowerUpOrRestart": 1709485044, + "machineSerialNumber": "HQ2217AKQQ9", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/337525", + "accessLevel": 1, + "syscreated": 1691743284, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "DomoPrototyp M.5 (Deligreen)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "510", + "identifier": "c0619ab1d1b7", "hasMains": false, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 0, + "firmware": "v3.32", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620209, + "lastPowerUpOrRestart": 1717744062, + "machineSerialNumber": "HQ22172G7UU", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/377811", + "accessLevel": 1, + "syscreated": 1701685694, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "DomoPrototyp M.6", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "507", + "identifier": "c0619ab668c7", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v3.12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1701856962, + "lastPowerUpOrRestart": 1701694969, + "machineSerialNumber": "HQ2332HR79N", + "controllerType": "Ekrano GX", + "vrmLink": "vrm.victronenergy.com/installation/377864", + "accessLevel": 1, + "syscreated": 1701692764, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Don Bosco Venus No. 4 Kinderhaus Accra5.4)", + "inverter": "MultiPlus 48/1600/20-16", + "inverterFw": "503", + "identifier": "0479b7aeadf5", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.60~ditto", + "autoUpdate": "Check", + "updateTo": "Release-candidate", + "lastConnection": 1698313673, + "lastPowerUpOrRestart": 1698235824, + "machineSerialNumber": "HQ2101G4GAE", + "controllerType": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/120661", + "accessLevel": 1, + "syscreated": 1627368264, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.96", + "vpnName": "HQ2101G4GAE", + "vpnOnline": false + }, + { + "name": "Don Bosco, Accra Guest House/GH | Antenna Foundation (2021-00105.1)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "470", + "identifier": "0cb2b7b9d7dc", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 5, "firmware": "v2.60~ditto", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1627364823, - "lastPowerUpOrRestart": 1627364716, + "lastConnection": 1718620205, + "lastPowerUpOrRestart": 1717411473, "machineSerialNumber": "HQ2042W983G", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/120654", "accessLevel": 1, "syscreated": 1627364111, @@ -3083,74 +7172,74 @@ "alarm": false, "vpnIp": "10.2.1.93", "vpnName": "HQ2042W983G", - "vpnOnline": false + "vpnOnline": true }, { - "name": "Don Bosco, Accra/GH | Antenna Foundation (2021-00105.3)", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "485", + "name": "Don Bosco, Accra/GH | Classroom Venus 3(2021-00105.3)", + "inverter": "unknown", + "inverterFw": "unknown", "identifier": "0479b7b2d999", - "hasMains": false, + "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 0, - "firmware": "v2.60~ditto", + "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1627367074, - "lastPowerUpOrRestart": 1627367039, + "lastConnection": 1702758860, + "lastPowerUpOrRestart": 1702561034, "machineSerialNumber": "HQ2101M2UUH", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/120659", "accessLevel": 1, "syscreated": 1627366712, "vrmOnline": true, - "alarm": true, + "alarm": false, "vpnIp": "10.2.1.95", "vpnName": "HQ2101M2UUH", "vpnOnline": false }, { - "name": "Don Bosco, Accra/GH | Antenna Foundation (2021-00105.4)", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "485", - "identifier": "0479b7aeadf5", - "hasMains": false, + "name": "Doppler, Breitenbach /SO | XEEO GmbH (AB2300021)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab1cf66", + "hasMains": true, "hasGenerator": false, - "nbMppts": 0, + "nbMppts": 1, "nbPvInverters": 0, - "firmware": "v2.60~ditto", + "firmware": "v2.73~r12", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1627368817, - "lastPowerUpOrRestart": 1627368691, - "machineSerialNumber": "HQ2101G4GAE", - "type": "Venus GX", - "vrmLink": "vrm.victronenergy.com/installation/120661", + "lastConnection": 1718620175, + "lastPowerUpOrRestart": 1700189455, + "machineSerialNumber": "HQ2217KZHMD", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/295005", "accessLevel": 1, - "syscreated": 1627368264, + "syscreated": 1682502810, "vrmOnline": true, "alarm": true, - "vpnIp": "10.2.1.96", - "vpnName": "HQ2101G4GAE", - "vpnOnline": false + "vpnIp": "10.2.3.203", + "vpnName": "HQ2217KZHMD", + "vpnOnline": true }, { "name": "Doppmann, Grosswangen/LU | CKW Conex AG (2019-00029)", "inverter": "MultiPlus-II 48/3000/35-32 (50A ext sensor)", - "inverterFw": "456", + "inverterFw": "502", "identifier": "0cae7d0f5cac", "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.60~ditto", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163644, - "lastPowerUpOrRestart": 1616416973, + "lastConnection": 1718620211, + "lastPowerUpOrRestart": 1712669309, "machineSerialNumber": "HQ1837GXQAZ", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/34385", "accessLevel": 1, "syscreated": 1554539849, @@ -3170,12 +7259,12 @@ "nbMppts": 0, "nbPvInverters": 1, "firmware": "v2.60~r4", - "autoUpdate": "Off", + "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163616, - "lastPowerUpOrRestart": 1649700990, + "lastConnection": 1718620163, + "lastPowerUpOrRestart": 1700559277, "machineSerialNumber": "HQ1810SDVPK", - "type": "Color Control GX", + "controllerType": "Color Control GX", "vrmLink": "vrm.victronenergy.com/installation/27813", "accessLevel": 1, "syscreated": 1540630575, @@ -3185,6 +7274,156 @@ "vpnName": "HQ1810SDVPK", "vpnOnline": true }, + { + "name": "Dörig, Heiden/AR | A + Elektro AG (2022-00452)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab16937", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620176, + "lastPowerUpOrRestart": 1713729025, + "machineSerialNumber": "HQ2211ZCC3Y", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/253913", + "accessLevel": 1, + "syscreated": 1673258111, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.41", + "vpnName": "HQ2211ZCC3Y", + "vpnOnline": true + }, + { + "name": "Dorrhauer, Cham/ZG | Helion Energy AG (2023-00028)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab2e33f", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620213, + "lastPowerUpOrRestart": 1689680539, + "machineSerialNumber": "HQ2242MFUCC", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/289077", + "accessLevel": 1, + "syscreated": 1681217696, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.177", + "vpnName": "HQ2242MFUCC", + "vpnOnline": true + }, + { + "name": "Dosch, Savognin, Savognin/GR | Hassler Energia Alternativa AG (2022-00387)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da85e891", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620201, + "lastPowerUpOrRestart": 1708133142, + "machineSerialNumber": "HQ2211D3X2N", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/234032", + "accessLevel": 1, + "syscreated": 1668175778, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.233", + "vpnName": "HQ2211D3X2N", + "vpnOnline": true + }, + { + "name": "Dresl, Mühldorf/OB/DE | Elektrotechnik Schmidt (2022-00188)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "497", + "identifier": "48e7da873a2d", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620171, + "lastPowerUpOrRestart": 1660174167, + "machineSerialNumber": "HQ2201KNUVR", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/184963", + "accessLevel": 1, + "syscreated": 1655135390, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.47", + "vpnName": "HQ2201KNUVR", + "vpnOnline": true + }, + { + "name": "Dubs, Grüt/ZH | ch-Solar AG (2022-00576)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab2de2b", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620214, + "lastPowerUpOrRestart": 1682037976, + "machineSerialNumber": "HQ22424DZU3", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/278338", + "accessLevel": 1, + "syscreated": 1678720733, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.3.131", + "vpnName": "HQ22424DZU3", + "vpnOnline": true + }, + { + "name": "Dünchheim, Termen/VS | Baumann Haustechnik GmbH (AB2300012)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d0c0", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620209, + "lastPowerUpOrRestart": 1697170858, + "machineSerialNumber": "HQ2217ZKTWD", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/293055", + "accessLevel": 1, + "syscreated": 1682060665, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.200", + "vpnName": "HQ2217ZKTWD", + "vpnOnline": true + }, { "name": "Dürst, Burgistein/BE | Brunner + Imboden AG (2021-00057)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", @@ -3194,13 +7433,13 @@ "hasGenerator": true, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.66~rc5", + "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163626, - "lastPowerUpOrRestart": 1647278513, + "lastConnection": 1718620206, + "lastPowerUpOrRestart": 1660901669, "machineSerialNumber": "HQ2042B4A4X", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/111466", "accessLevel": 1, "syscreated": 1622639006, @@ -3219,13 +7458,13 @@ "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163624, - "lastPowerUpOrRestart": 1646123196, + "lastConnection": 1718620180, + "lastPowerUpOrRestart": 1708683821, "machineSerialNumber": "HQ1945RM5DZ", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/64863", "accessLevel": 1, "syscreated": 1594133636, @@ -3235,6 +7474,31 @@ "vpnName": "HQ1945RM5DZ", "vpnOnline": true }, + { + "name": "E-NNO, Genève | Easy-sun (2022-00195)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "497", + "identifier": "48e7da874319", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620206, + "lastPowerUpOrRestart": 1718465846, + "machineSerialNumber": "HQ214836NF2", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/195465", + "accessLevel": 1, + "syscreated": 1658246993, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.2.89", + "vpnName": "HQ214836NF2", + "vpnOnline": true + }, { "name": "e415f6f87cb7", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", @@ -3250,7 +7514,7 @@ "lastConnection": 1612799313, "lastPowerUpOrRestart": 1612798398, "machineSerialNumber": "HQ2032EDLPI", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/94838", "accessLevel": 1, "syscreated": 1612798504, @@ -3260,6 +7524,56 @@ "vpnName": "HQ2032EDLPI", "vpnOnline": true }, + { + "name": "Eberhart, Erlenbach .i.S/ BE | Röthlisberger Elektro AG (2022-00470)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1671e", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620214, + "lastPowerUpOrRestart": 1712000577, + "machineSerialNumber": "HQ2211PQNY4", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/254742", + "accessLevel": 1, + "syscreated": 1673440288, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.48", + "vpnName": "HQ2211PQNY4", + "vpnOnline": true + }, + { + "name": "Ebinger Ellikon a.d.T / ZH| M. Schlatter AG (AB2300095)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab2dccc", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 3, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620211, + "lastPowerUpOrRestart": 1695730626, + "machineSerialNumber": "HQ224239T7G", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/303386", + "accessLevel": 1, + "syscreated": 1684316708, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.3.231", + "vpnName": "HQ224239T7G", + "vpnOnline": true + }, { "name": "Ebneter, Anzonico/TI | Bouygues E&S In Tec Schweiz AG (2021-00223)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", @@ -3269,13 +7583,13 @@ "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 0, - "firmware": "v2.73~r6", + "firmware": "v2.73~r12", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163666, - "lastPowerUpOrRestart": 1647277537, + "lastConnection": 1718620216, + "lastPowerUpOrRestart": 1702548104, "machineSerialNumber": "HQ2122MQGPK", - "type": "Cerbo GX", + "controllerType": "Cerbo GX", "vrmLink": "vrm.victronenergy.com/installation/152273", "accessLevel": 1, "syscreated": 1643297686, @@ -3285,6 +7599,106 @@ "vpnName": "HQ2122MQGPK", "vpnOnline": true }, + { + "name": "Ebnöther, Hoffeld/SG/CH | InnovEnergy (2021-00136)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "e415f6fc4668", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620216, + "lastPowerUpOrRestart": 1711629949, + "machineSerialNumber": "HQ2101U4B9M", + "controllerType": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/128479", + "accessLevel": 1, + "syscreated": 1631799631, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.121", + "vpnName": "HQ2101U4B9M", + "vpnOnline": true + }, + { + "name": "Eckstein 713, Scuol/GR | Kolb AG (AB2300130) SN20230147", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab2e476", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620219, + "lastPowerUpOrRestart": 1696544399, + "machineSerialNumber": "HQ2242QZ6HC", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/327860", + "accessLevel": 1, + "syscreated": 1689587244, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "EFH Schmidli, Wollerau/SZ | ETAVIS Grossenbacher AG (2022-00405)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab10685", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620204, + "lastPowerUpOrRestart": 1694510808, + "machineSerialNumber": "HQ2204THXFR", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/254284", + "accessLevel": 1, + "syscreated": 1673345138, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.45", + "vpnName": "HQ2204THXFR", + "vpnOnline": true + }, + { + "name": "EFH Sommacal, Herisau/AR | ETAVIS Grossenbacher AG (AB2300132) SN20230100", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab2e0b4", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620182, + "lastPowerUpOrRestart": 1694502378, + "machineSerialNumber": "HQ2242YP3F9", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/316744", + "accessLevel": 1, + "syscreated": 1687160080, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.4.44", + "vpnName": "HQ2242YP3F9", + "vpnOnline": true + }, { "name": "Egli, Faulensee/BE | Elektro Hunziker AG (2020-00143)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", @@ -3294,13 +7708,13 @@ "hasGenerator": true, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.60~ditto", + "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163673, - "lastPowerUpOrRestart": 1620282322, + "lastConnection": 1718620199, + "lastPowerUpOrRestart": 1714842674, "machineSerialNumber": "HQ20245VBDE", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/88643", "accessLevel": 1, "syscreated": 1607606375, @@ -3310,6 +7724,56 @@ "vpnName": "HQ20245VBDE", "vpnOnline": true }, + { + "name": "Ehrensperger,Reutlingen/ZH | Senero AG (2022-00575)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab2dd9c", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620215, + "lastPowerUpOrRestart": 1686053741, + "machineSerialNumber": "HQ22422RRJ2", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/278555", + "accessLevel": 1, + "syscreated": 1678787214, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.3.133", + "vpnName": "HQ22422RRJ2", + "vpnOnline": true + }, + { + "name": "Ehret Lampertheim/ DE |Gebert Technik AB2300045", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1dd40", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620216, + "lastPowerUpOrRestart": 1692166198, + "machineSerialNumber": "HQ22192RR97", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/314124", + "accessLevel": 1, + "syscreated": 1686574273, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.4.24", + "vpnName": "HQ22192RR97", + "vpnOnline": true + }, { "name": "Eichenberger, Meggen/LU | Alectron AG (2019-00045)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", @@ -3322,10 +7786,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163656, - "lastPowerUpOrRestart": 1635229029, + "lastConnection": 1718620221, + "lastPowerUpOrRestart": 1660901656, "machineSerialNumber": "HQ19073PYAT", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/43618", "accessLevel": 1, "syscreated": 1568216760, @@ -3335,6 +7799,31 @@ "vpnName": "HQ19073PYAT", "vpnOnline": true }, + { + "name": "Eidenmüller, Niederroth DE | EBS Elektrotechnik Stefan GmbH (2022-00211.4)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "48e7da878f8d", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620227, + "lastPowerUpOrRestart": 1662729380, + "machineSerialNumber": "HQ2150GJRH4", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/198207", + "accessLevel": 1, + "syscreated": 1658992215, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.98", + "vpnName": "HQ2150GJRH4", + "vpnOnline": true + }, { "name": "Emmenegger, Hellbühl/LU | Alectron AG (2019-00002)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", @@ -3344,13 +7833,13 @@ "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 0, - "firmware": "v2.66~rc5", + "firmware": "v2.73~r6", "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1651163659, - "lastPowerUpOrRestart": 1639400155, + "updateTo": "Testing", + "lastConnection": 1718620225, + "lastPowerUpOrRestart": 1708609352, "machineSerialNumber": "HQ18371DV7L", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/36333", "accessLevel": 1, "syscreated": 1557900213, @@ -3361,21 +7850,46 @@ "vpnOnline": true }, { - "name": "Epp, Tagelswangen/ZH | Scherrer Gebäudehüllen AG (2020-00147)", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "475", - "identifier": "0c1c5700343e", - "hasMains": true, - "hasGenerator": true, + "name": "Engels, Wincheringen/DE | KMF Elektro UG (AB 2300050) SN20230073", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab1ce1f", + "hasMains": false, + "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.73~r6", + "firmware": "v2.73~r12", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163663, - "lastPowerUpOrRestart": 1645702723, + "lastConnection": 1718620203, + "lastPowerUpOrRestart": 1714729430, + "machineSerialNumber": "HQ2217VECGD", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/316738", + "accessLevel": 1, + "syscreated": 1687159210, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.4.43", + "vpnName": "HQ2217VECGD", + "vpnOnline": true + }, + { + "name": "Epp, Tagelswangen/ZH | Scherrer Gebäudehüllen AG (2020-00147)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "0c1c5700343e", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620225, + "lastPowerUpOrRestart": 1699259122, "machineSerialNumber": "HQ2005PA3U8", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/91574", "accessLevel": 1, "syscreated": 1610461937, @@ -3385,22 +7899,97 @@ "vpnName": "HQ2005PA3U8", "vpnOnline": true }, + { + "name": "Erb, Fulenbach/SO | von arx systems ag (2022-00295)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "500", + "identifier": "48e7da85e12d", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620208, + "lastPowerUpOrRestart": 1701350320, + "machineSerialNumber": "HQ2148HYDAE", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/217136", + "accessLevel": 1, + "syscreated": 1664294057, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.172", + "vpnName": "HQ2148HYDAE", + "vpnOnline": true + }, + { + "name": "Erni, Basel /BS| Tims Dächer (2022-00567)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "498", + "identifier": "c0619ab169e9", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718615484, + "lastPowerUpOrRestart": 1698288250, + "machineSerialNumber": "HQ22117VC3Z", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/251322", + "accessLevel": 1, + "syscreated": 1672319206, + "vrmOnline": false, + "alarm": false, + "vpnIp": "10.2.3.30", + "vpnName": "HQ22117VC3Z", + "vpnOnline": false + }, + { + "name": "Erni, Fulenbach/SO | Baumann Haustechnik GmbH (AB2300011)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1dd27", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620225, + "lastPowerUpOrRestart": 1695679251, + "machineSerialNumber": "HQ2219FUQER", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/291251", + "accessLevel": 1, + "syscreated": 1681733466, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.188", + "vpnName": "HQ2219FUQER", + "vpnOnline": true + }, { "name": "Erni, Kaisten/AG | Elektro Siegrist AG (2021-00096)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "485", + "inverterFw": "502", "identifier": "0cb2b7b9bfca", "hasMains": false, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.66~rc5", + "firmware": "v2.73~r11", "autoUpdate": "Check", - "updateTo": "Release-candidate", - "lastConnection": 1651163627, - "lastPowerUpOrRestart": 1647278364, + "updateTo": "Official release", + "lastConnection": 1718620213, + "lastPowerUpOrRestart": 1715599286, "machineSerialNumber": "HQ20461JZ9B", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/121131", "accessLevel": 1, "syscreated": 1627537478, @@ -3411,29 +8000,29 @@ "vpnOnline": true }, { - "name": "Eschle, Laufen/BL | STARK STROM GmbH (2020-00030)", + "name": "Erni, Tobel/TG | Gebr. Willi Elektro AG (2022-00118)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "474", - "identifier": "02816caa6760", + "inverterFw": "497", + "identifier": "48e7da88b141", "hasMains": false, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 0, - "firmware": "v2.66", + "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1631739668, - "lastPowerUpOrRestart": 1623253546, - "machineSerialNumber": "HQ1939BB724", - "type": "MultiPlus-II GX", - "vrmLink": "vrm.victronenergy.com/installation/64144", + "lastConnection": 1718620226, + "lastPowerUpOrRestart": 1660901614, + "machineSerialNumber": "HQ2201DVUZ9", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/181166", "accessLevel": 1, - "syscreated": 1593528013, - "vrmOnline": false, + "syscreated": 1653915260, + "vrmOnline": true, "alarm": false, - "vpnIp": "", - "vpnName": "", - "vpnOnline": false + "vpnIp": "10.2.2.30", + "vpnName": "HQ2201DVUZ9", + "vpnOnline": true }, { "name": "Eschle, Laufen/BL | STARK STROM GmbH (2021-00191)", @@ -3444,13 +8033,13 @@ "hasGenerator": false, "nbMppts": 1, "nbPvInverters": 1, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163629, - "lastPowerUpOrRestart": 1644917798, + "lastConnection": 1718620209, + "lastPowerUpOrRestart": 1687254091, "machineSerialNumber": "HQ2110TY15V", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/140689", "accessLevel": 1, "syscreated": 1637770571, @@ -3460,22 +8049,172 @@ "vpnName": "HQ2110TY15V", "vpnOnline": true }, + { + "name": "ESSHKCS", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "508", + "identifier": "2cd26bad8080", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v3.13", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620201, + "lastPowerUpOrRestart": 1702166748, + "machineSerialNumber": "unknown", + "controllerType": "MultiPlus-II GX", + "vrmLink": "vrm.victronenergy.com/installation/200828", + "accessLevel": 0, + "syscreated": 1659724168, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Ettinger, Bonn DE | IL sun+ | Innovative Energie-Lösungen (AB2400001) SN20240002", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "506", + "identifier": "c0619ab38173", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620204, + "lastPowerUpOrRestart": 1708723913, + "machineSerialNumber": "HQ2247ANET4", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/389051", + "accessLevel": 1, + "syscreated": 1704892801, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Eugster, BE | Terrasystems AG (2022-00114)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da86fcc1", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 4, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620215, + "lastPowerUpOrRestart": 1678110341, + "machineSerialNumber": "HQ2148RAVTQ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/175419", + "accessLevel": 1, + "syscreated": 1652111627, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.16", + "vpnName": "HQ2148RAVTQ", + "vpnOnline": true + }, + { + "name": "EX Hollinger, Oberwil/CH | b + s Elektro Telematik AG (2022-00309)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab09854", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1695730120, + "lastPowerUpOrRestart": 1695715060, + "machineSerialNumber": "HQ2148F9YQE", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/241291", + "accessLevel": 1, + "syscreated": 1669818647, + "vrmOnline": false, + "alarm": false, + "vpnIp": "10.2.2.155", + "vpnName": "HQ2148F9YQE", + "vpnOnline": false + }, + { + "name": "exworks, Savognin/GR | ARTHO / LUZIO ( AB2300182 )", + "inverter": "MultiPlus-II 48/10000/140-100/100", + "inverterFw": "502", + "identifier": "c0619ab2eb33", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620224, + "lastPowerUpOrRestart": 1716439446, + "machineSerialNumber": "HQ2242V776F", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/340671", + "accessLevel": 1, + "syscreated": 1692611977, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.4.116", + "vpnName": "HQ2242V776F", + "vpnOnline": true + }, + { + "name": "Faber Islisberg /AG | Elektro M. Stutz (AB2300247) SN20230127", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d270", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620219, + "lastPowerUpOrRestart": 1706370539, + "machineSerialNumber": "HQ2217HW9JA", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/324352", + "accessLevel": 1, + "syscreated": 1688717865, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, { "name": "Fähnle, Hasliberg-Reuti/BE | InnovEnergy (2017-00008)", "inverter": "MultiGrid 48/3000/35-50", "inverterFw": "474", "identifier": "04a316c4e7b4", - "hasMains": false, + "hasMains": true, "hasGenerator": false, "nbMppts": 1, "nbPvInverters": 1, "firmware": "v2.60~r4", "autoUpdate": "Check", - "updateTo": "Release-candidate", - "lastConnection": 1651163675, - "lastPowerUpOrRestart": 1650561776, + "updateTo": "Official release", + "lastConnection": 1718620229, + "lastPowerUpOrRestart": 1717445301, "machineSerialNumber": "HQ17079NXQJ", - "type": "Color Control GX", + "controllerType": "Color Control GX", "vrmLink": "vrm.victronenergy.com/installation/15822", "accessLevel": 1, "syscreated": 1510152199, @@ -3485,6 +8224,56 @@ "vpnName": "HQ17079NXQJ", "vpnOnline": true }, + { + "name": "Fankhauser, Schönenberg/ZH | sunconnect GmbH (AB2300324)_SN20230209", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab38ba7", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620225, + "lastPowerUpOrRestart": 1706920986, + "machineSerialNumber": "HQ2247D76V2", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/352529", + "accessLevel": 1, + "syscreated": 1695627581, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Fankhauser, Zwischenflüh/BE | Röthlisberger Elektro AG (2023-00018)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1dc85", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620220, + "lastPowerUpOrRestart": 1701763705, + "machineSerialNumber": "HQ2219WPFUG", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/283355", + "accessLevel": 1, + "syscreated": 1679904420, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.154", + "vpnName": "HQ2219WPFUG", + "vpnOnline": true + }, { "name": "Farner, Guntalingen-Stammheim/ZH | InnovEnergy (2018-00004)", "inverter": "MultiGrid 48/3000/35-50", @@ -3494,13 +8283,13 @@ "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 0, - "firmware": "v2.58", - "autoUpdate": "Off", + "firmware": "v2.94", + "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163636, - "lastPowerUpOrRestart": 1602511088, + "lastConnection": 1718620231, + "lastPowerUpOrRestart": 1709634178, "machineSerialNumber": "HQ1734BZUJH", - "type": "Color Control GX", + "controllerType": "Color Control GX", "vrmLink": "vrm.victronenergy.com/installation/21330", "accessLevel": 1, "syscreated": 1527683108, @@ -3510,22 +8299,72 @@ "vpnName": "", "vpnOnline": false }, + { + "name": "Feddersen, Langenhorn/DE | Reinstein GmbH (2022-00578)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab2e0e6", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620222, + "lastPowerUpOrRestart": 1699281435, + "machineSerialNumber": "HQ224267VED", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/289435", + "accessLevel": 1, + "syscreated": 1681293671, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.178", + "vpnName": "HQ224267VED", + "vpnOnline": true + }, + { + "name": "Feller , Pfäffikon/ZH EWE", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da885d7d", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620236, + "lastPowerUpOrRestart": 1714715852, + "machineSerialNumber": "HQ2148CRYJU", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/202219", + "accessLevel": 1, + "syscreated": 1660209816, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.114", + "vpnName": "HQ2148CRYJU", + "vpnOnline": true + }, { "name": "Felz Zwei, Girhalden/ZH | Elektro Scherzinger AG (2021-00127)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "485", "identifier": "0479b7b2ca30", - "hasMains": false, + "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 0, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163649, - "lastPowerUpOrRestart": 1643304940, + "lastConnection": 1718620217, + "lastPowerUpOrRestart": 1667302167, "machineSerialNumber": "HQ2101J1YIC", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/128456", "accessLevel": 1, "syscreated": 1631795724, @@ -3536,35 +8375,10 @@ "vpnOnline": true }, { - "name": "FIAMM FZSoNick SA, Stabio/TI (2020-00122)", + "name": "Ferienhaus, DE | ITK Lang GmbH (2022-00137)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "475", - "identifier": "780473405a3f", - "hasMains": true, - "hasGenerator": false, - "nbMppts": 0, - "nbPvInverters": 0, - "firmware": "v2.60~9", - "autoUpdate": "Check", - "updateTo": "Release-candidate", - "lastConnection": 1605687488, - "lastPowerUpOrRestart": 1605686483, - "machineSerialNumber": "HQ2005ZFKDH", - "type": "Venus GX", - "vrmLink": "vrm.victronenergy.com/installation/76812", - "accessLevel": 1, - "syscreated": 1603979133, - "vrmOnline": false, - "alarm": false, - "vpnIp": "10.2.0.240", - "vpnName": "HQ2005ZFKDH", - "vpnOnline": false - }, - { - "name": "Florin, Brugg/AG | InnovEnergy (2019-00064)", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "494", - "identifier": "f045da77e72c", + "inverterFw": "497", + "identifier": "c0619ab05b29", "hasMains": true, "hasGenerator": false, "nbMppts": 0, @@ -3572,19 +8386,169 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163650, - "lastPowerUpOrRestart": 1635143132, + "lastConnection": 1718620213, + "lastPowerUpOrRestart": 1696449339, + "machineSerialNumber": "HQ2128HR2HK", + "controllerType": "MultiPlus-II", + "vrmLink": "vrm.victronenergy.com/installation/185792", + "accessLevel": 1, + "syscreated": 1655369324, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.51", + "vpnName": "HQ2128HR2HK", + "vpnOnline": true + }, + { + "name": "Finger, Lotzwil/BE | Helion Energy AG (AB 2300028)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d0bd", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620198, + "lastPowerUpOrRestart": 1698317790, + "machineSerialNumber": "HQ2217VNYHX", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/309758", + "accessLevel": 1, + "syscreated": 1685620631, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.4.4", + "vpnName": "HQ2217VNYHX", + "vpnOnline": true + }, + { + "name": "Fischer, Haarescheid/DE | Elektrotechnik Berzen GmbH (2021-00151)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "0479b7f17889", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620240, + "lastPowerUpOrRestart": 1697096011, + "machineSerialNumber": "HQ2101HICXX", + "controllerType": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/143807", + "accessLevel": 1, + "syscreated": 1639042294, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.173", + "vpnName": "HQ2101HICXX", + "vpnOnline": true + }, + { + "name": "Fischer, Hüttwilen/TG | EWE Elektro AG (2022-00401)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab167b1", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620205, + "lastPowerUpOrRestart": 1717215089, + "machineSerialNumber": "HQ2211JN4X3", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/243524", + "accessLevel": 1, + "syscreated": 1670335663, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.7", + "vpnName": "HQ2211JN4X3", + "vpnOnline": true + }, + { + "name": "Flick, Muri AG | Jenni Energietechnik AG (2022-00165)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "500", + "identifier": "c0619ab0bc50", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620235, + "lastPowerUpOrRestart": 1693316311, + "machineSerialNumber": "HQ2201NDUUZ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/238850", + "accessLevel": 1, + "syscreated": 1669287297, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.73", + "vpnName": "HQ2201NDUUZ", + "vpnOnline": true + }, + { + "name": "Florin, Brugg/AG | InnovEnergy (2019-00064)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "f045da77e72c", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620241, + "lastPowerUpOrRestart": 1717317041, "machineSerialNumber": "HQ1851FHC2C", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/48527", "accessLevel": 1, "syscreated": 1574596614, "vrmOnline": true, - "alarm": false, + "alarm": true, "vpnIp": "10.2.0.113", "vpnName": "HQ1851FHC2C", "vpnOnline": true }, + { + "name": "Floss, Allensbach/D | Elektro Faden (2023-00097)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab16860", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620230, + "lastPowerUpOrRestart": 1688563077, + "machineSerialNumber": "HQ2211TWZ6F", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/276435", + "accessLevel": 1, + "syscreated": 1678289499, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.126", + "vpnName": "HQ2211TWZ6F", + "vpnOnline": true + }, { "name": "Flück, Solothurn/SO | Bouygues AG (2020-00068)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", @@ -3597,10 +8561,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163659, - "lastPowerUpOrRestart": 1643366971, + "lastConnection": 1718620232, + "lastPowerUpOrRestart": 1660901643, "machineSerialNumber": "HQ2002KYG99", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/68832", "accessLevel": 1, "syscreated": 1597411590, @@ -3613,24 +8577,24 @@ { "name": "Flückiger, Aarau/AG | Ziltener Heizungen GmbH (2020-00091)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "475", + "inverterFw": "502", "identifier": "f8369bf61c32", "hasMains": true, "hasGenerator": false, "nbMppts": 0, - "nbPvInverters": 1, - "firmware": "v2.73~r6", + "nbPvInverters": 0, + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163626, - "lastPowerUpOrRestart": 1639408751, + "lastConnection": 1718620221, + "lastPowerUpOrRestart": 1717598781, "machineSerialNumber": "HQ2005W4NVB", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/72307", "accessLevel": 1, "syscreated": 1600348415, "vrmOnline": true, - "alarm": false, + "alarm": true, "vpnIp": "10.2.0.218", "vpnName": "HQ2005W4NVB", "vpnOnline": true @@ -3638,23 +8602,23 @@ { "name": "Flückiger, Grünenmatt/BE | clevergie ag - Region Emmental (2021-00231)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "494", + "inverterFw": "502", "identifier": "102c6bc2b06f", "hasMains": false, "hasGenerator": false, "nbMppts": 1, "nbPvInverters": 0, - "firmware": "v2.73~r6", + "firmware": "v2.73~r12", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163627, - "lastPowerUpOrRestart": 1646410792, + "lastConnection": 1718620238, + "lastPowerUpOrRestart": 1715761723, "machineSerialNumber": "HQ21189FYME", - "type": "Cerbo GX", + "controllerType": "Cerbo GX", "vrmLink": "vrm.victronenergy.com/installation/154919", "accessLevel": 1, "syscreated": 1644423781, - "vrmOnline": true, + "vrmOnline": false, "alarm": false, "vpnIp": "10.2.1.196", "vpnName": "HQ21189FYME", @@ -3672,10 +8636,10 @@ "firmware": "v2.60~r4", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163658, - "lastPowerUpOrRestart": 1650974363, + "lastConnection": 1718620238, + "lastPowerUpOrRestart": 1714816176, "machineSerialNumber": "HQ17466TQPC", - "type": "Color Control GX", + "controllerType": "Color Control GX", "vrmLink": "vrm.victronenergy.com/installation/28695", "accessLevel": 1, "syscreated": 1542621455, @@ -3688,19 +8652,19 @@ { "name": "Föhn, Buchberg/SH | Scherrer Gebäudehüllen AG (2020-00148)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "475", + "inverterFw": "502", "identifier": "1cba8c98a6c4", - "hasMains": true, - "hasGenerator": true, + "hasMains": false, + "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 0, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163674, - "lastPowerUpOrRestart": 1648748904, + "lastConnection": 1718620227, + "lastPowerUpOrRestart": 1718617855, "machineSerialNumber": "HQ202414K62", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/91586", "accessLevel": 1, "syscreated": 1610468956, @@ -3710,6 +8674,131 @@ "vpnName": "HQ202414K62", "vpnOnline": true }, + { + "name": "Fondation Gacha Cameroun - Groupe 1/2", + "inverter": "Quattro 48/10000/140-2x100", + "inverterFw": "508", + "identifier": "c0619ab3998e", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718008494, + "lastPowerUpOrRestart": 1718008468, + "machineSerialNumber": "HQ2247C3VE3", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/380389", + "accessLevel": 1, + "syscreated": 1702293289, + "vrmOnline": true, + "alarm": true, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Fondation Gacha Cameroun - Groupe 2/2", + "inverter": "Quattro 48/15000/200-2x100", + "inverterFw": "490", + "identifier": "0204084346b4", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718445892, + "lastPowerUpOrRestart": 1714646987, + "machineSerialNumber": "HQ20336XHJH", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/312495", + "accessLevel": 1, + "syscreated": 1686210931, + "vrmOnline": false, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Fontaniv, Unterwasser/SG/CH | AWS Solar (2022-00073)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "494", + "identifier": "48e7da892947", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718530299, + "lastPowerUpOrRestart": 1685772529, + "machineSerialNumber": "HQ2139EPERH", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/167643", + "accessLevel": 1, + "syscreated": 1649260630, + "vrmOnline": false, + "alarm": true, + "vpnIp": "10.2.1.244", + "vpnName": "HQ2139EPERH", + "vpnOnline": false + }, + { + "name": "Forstzentrum, Interlaken/BE| Gerber AG (2022-00038)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "102c6b64353f", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620220, + "lastPowerUpOrRestart": 1708421686, + "machineSerialNumber": "HQ2104DZDKZ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/161084", + "accessLevel": 1, + "syscreated": 1646990904, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.225", + "vpnName": "HQ2104DZDKZ", + "vpnOnline": true + }, + { + "name": "Founex Centre Communal / Founex/VD | OptimalLiving SA (2023-00046)", + "inverter": "MultiPlus-II 48/10000/140-100/100", + "inverterFw": "502", + "identifier": "c0619ab1dcbc", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620221, + "lastPowerUpOrRestart": 1702034293, + "machineSerialNumber": "HQ22193UM4Y", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/272421", + "accessLevel": 1, + "syscreated": 1677483383, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.111", + "vpnName": "HQ22193UM4Y", + "vpnOnline": true + }, { "name": "FPTI, BR/Foz do Iguaçu | ie (1)", "inverter": "MultiGrid 48/3000/35-50", @@ -3724,8 +8813,8 @@ "updateTo": "Release-candidate", "lastConnection": 1583075265, "lastPowerUpOrRestart": 1572068663, - "machineSerialNumber": null, - "type": "Venus GX", + "machineSerialNumber": "unknown", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/21541", "accessLevel": 1, "syscreated": 1528021393, @@ -3740,21 +8829,21 @@ "inverter": "Quattro 48/3000/35-2x50 120V", "inverterFw": "430", "identifier": "7c386651bcfa", - "hasMains": true, + "hasMains": false, "hasGenerator": false, "nbMppts": 2, "nbPvInverters": 0, "firmware": "v2.71", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163651, - "lastPowerUpOrRestart": 1650973261, + "lastConnection": 1655135351, + "lastPowerUpOrRestart": 1654725216, "machineSerialNumber": "HQ1741778AH", - "type": "Color Control GX", + "controllerType": "Color Control GX", "vrmLink": "vrm.victronenergy.com/installation/32066", "accessLevel": 1, "syscreated": 1550578128, - "vrmOnline": true, + "vrmOnline": false, "alarm": false, "vpnIp": "", "vpnName": "", @@ -3763,7 +8852,7 @@ { "name": "Frankowsky, Windeck-Hurst/DE | IL sun+ Innovative Energie (2020-00103)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "475", + "inverterFw": "500", "identifier": "0c1c570039ab", "hasMains": false, "hasGenerator": false, @@ -3772,10 +8861,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163670, - "lastPowerUpOrRestart": 1645442070, + "lastConnection": 1718620218, + "lastPowerUpOrRestart": 1706734220, "machineSerialNumber": "HQ2005KRVDA", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/74177", "accessLevel": 1, "syscreated": 1601885462, @@ -3788,8 +8877,108 @@ { "name": "Frauenknecht, Stalden/OW | Egger Enertech AG (2019-00017)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "494", + "inverterFw": "502", "identifier": "985dadd0cf11", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620226, + "lastPowerUpOrRestart": 1718586918, + "machineSerialNumber": "HQ1751QGZIA", + "controllerType": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/34393", + "accessLevel": 1, + "syscreated": 1554550971, + "vrmOnline": false, + "alarm": false, + "vpnIp": "10.2.0.114", + "vpnName": "HQ1751QGZIA", + "vpnOnline": false + }, + { + "name": "Frei, Affoltern a.A/ZH/CH | Bouygues E&S In Tec Schweiz AG (2022-00078)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "497", + "identifier": "48e7da88b6d5", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620247, + "lastPowerUpOrRestart": 1662594957, + "machineSerialNumber": "HQ2201PZU6C", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/177643", + "accessLevel": 1, + "syscreated": 1652802662, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.21", + "vpnName": "HQ2201PZU6C", + "vpnOnline": true + }, + { + "name": "Frei, Frauenfeld/TG/CH | EWE Elektro AG (2022-00361)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "497", + "identifier": "48e7da85f1b1", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 4, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620221, + "lastPowerUpOrRestart": 1715353433, + "machineSerialNumber": "HQ2148H6JGC", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/216740", + "accessLevel": 1, + "syscreated": 1664213492, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.169", + "vpnName": "HQ2148H6JGC", + "vpnOnline": true + }, + { + "name": "Frei, Kleinandelfingen/ZH | Meier Elektro (2022-00443)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab106ab", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620254, + "lastPowerUpOrRestart": 1700525236, + "machineSerialNumber": "HQ2204TMHQR", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/252243", + "accessLevel": 1, + "syscreated": 1672737852, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.34", + "vpnName": "HQ2204TMHQR", + "vpnOnline": true + }, + { + "name": "Frey, Möriken/AG | Eglin Elektro AG (2021-00192)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "497", + "identifier": "0035ff9b0ff7", "hasMains": true, "hasGenerator": false, "nbMppts": 0, @@ -3797,35 +8986,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163687, - "lastPowerUpOrRestart": 1646061566, - "machineSerialNumber": "HQ1751QGZIA", - "type": "Venus GX", - "vrmLink": "vrm.victronenergy.com/installation/34393", - "accessLevel": 1, - "syscreated": 1554550971, - "vrmOnline": true, - "alarm": false, - "vpnIp": "10.2.0.114", - "vpnName": "HQ1751QGZIA", - "vpnOnline": true - }, - { - "name": "Frey, Möriken/AG | Eglin Elektro AG (2021-00192)", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "490", - "identifier": "0035ff9b0ff7", - "hasMains": true, - "hasGenerator": false, - "nbMppts": 0, - "nbPvInverters": 0, - "firmware": "v2.73~r6", - "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1651163674, - "lastPowerUpOrRestart": 1647277516, + "lastConnection": 1718620227, + "lastPowerUpOrRestart": 1660903470, "machineSerialNumber": "HQ2110L2XEJ", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/142587", "accessLevel": 1, "syscreated": 1638518131, @@ -3836,96 +9000,271 @@ "vpnOnline": true }, { - "name": "Frischknecht, Gränichen/AG | Kabeltechnik swiss ag (2021-00201)", + "name": "Friedli, Ittigen/BE | ISP Electro Solution AG (2023-00032)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab16784", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620238, + "lastPowerUpOrRestart": 1690284759, + "machineSerialNumber": "HQ2211CWNJE", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/284921", + "accessLevel": 1, + "syscreated": 1680179558, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.3.164", + "vpnName": "HQ2211CWNJE", + "vpnOnline": true + }, + { + "name": "Friedli, Linden/BE | Vogt Elektroinstallationen AG (2022-00555)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "490", + "inverterFw": "502", + "identifier": "c0619ab16890", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620224, + "lastPowerUpOrRestart": 1709716808, + "machineSerialNumber": "HQ2211VFDYA", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/275685", + "accessLevel": 1, + "syscreated": 1678181223, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.122", + "vpnName": "HQ2211VFDYA", + "vpnOnline": false + }, + { + "name": "Frischknecht, Gränichen/AG | kabeltechnik swiss ag (2021-00201)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", "identifier": "e415f6f818b2", - "hasMains": false, + "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 0, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1645559908, - "lastPowerUpOrRestart": 1645233699, + "lastConnection": 1718620234, + "lastPowerUpOrRestart": 1683288725, "machineSerialNumber": "HQ20462G59I", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/145317", "accessLevel": 1, "syscreated": 1639584561, - "vrmOnline": false, + "vrmOnline": true, "alarm": false, "vpnIp": "10.2.1.175", "vpnName": "HQ20462G59I", - "vpnOnline": false + "vpnOnline": true }, { - "name": "GACHA - G1 Fondation", - "inverter": "Quattro 48/15000/200-2x100", - "inverterFw": "490", - "identifier": "1862e4cc7100", - "hasMains": false, + "name": "Frischknecht, Waldstatt/AR| St.Gallisch-Appenzellisch Kraftwerke AG (2022-00128)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "498", + "identifier": "48e7da883027", + "hasMains": true, "hasGenerator": false, - "nbMppts": 0, + "nbMppts": 3, "nbPvInverters": 0, - "firmware": "v2.73", + "firmware": "v2.73~r10", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163671, - "lastPowerUpOrRestart": 1651126594, - "machineSerialNumber": "HQ2101SBN8F", - "type": "Venus GX", - "vrmLink": "vrm.victronenergy.com/installation/120666", + "lastConnection": 1718620226, + "lastPowerUpOrRestart": 1697214583, + "machineSerialNumber": "HQ2201TVZWP", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/179597", "accessLevel": 1, - "syscreated": 1627370968, + "syscreated": 1653406329, "vrmOnline": true, "alarm": false, - "vpnIp": "10.2.1.98", - "vpnName": "HQ2101SBN8F", + "vpnIp": "10.2.2.26", + "vpnName": "HQ2201TVZWP", + "vpnOnline": true + }, + { + "name": "Fuchs, Tuggen/SZ | Terrasystems AG (2023-00026)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab2dda3", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620225, + "lastPowerUpOrRestart": 1709885335, + "machineSerialNumber": "HQ2242Q2CPV", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/286825", + "accessLevel": 1, + "syscreated": 1680614835, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.170", + "vpnName": "HQ2242Q2CPV", + "vpnOnline": true + }, + { + "name": "Fuehrer Schaffhausen/ SH | BEsolar GmbH (AB2300202) SN20230133", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d218", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620235, + "lastPowerUpOrRestart": 1696436209, + "machineSerialNumber": "HQ2217KM6FU", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/325677", + "accessLevel": 1, + "syscreated": 1689079046, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", "vpnOnline": false }, { - "name": "GACHA G2 Menuiserie", - "inverter": "Quattro 48/15000/200-2x100", + "name": "Furian, Rabius/GR | Solpic AG (2021-00233)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "490", - "identifier": "e415f6f19a97", + "identifier": "48e7da8959c7", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r8", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620222, + "lastPowerUpOrRestart": 1713671237, + "machineSerialNumber": "HQ213924F4A", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/154880", + "accessLevel": 1, + "syscreated": 1644416251, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.195", + "vpnName": "HQ213924F4A", + "vpnOnline": true + }, + { + "name": "FZSoNick SA, Stabio/TI (2020-00122)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "780473405a3f", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620217, + "lastPowerUpOrRestart": 1716273867, + "machineSerialNumber": "HQ2005ZFKDH", + "controllerType": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/76812", + "accessLevel": 1, + "syscreated": 1603979133, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.240", + "vpnName": "HQ2005ZFKDH", + "vpnOnline": true + }, + { + "name": "G.von Arx, Niederbuchsiten/SO | von Arx systems AG (2022-00531)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab16684", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620243, + "lastPowerUpOrRestart": 1700982502, + "machineSerialNumber": "HQ2211XPTUU", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/273890", + "accessLevel": 1, + "syscreated": 1677752995, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.118", + "vpnName": "HQ2211XPTUU", + "vpnOnline": true + }, + { + "name": "Gafner, Gwatt/ BE | Brunner + Imboden AG (2022-00158)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "497", + "identifier": "48e7da896a85", "hasMains": false, "hasGenerator": false, "nbMppts": 0, - "nbPvInverters": 0, - "firmware": "v2.73~victron", + "nbPvInverters": 1, + "firmware": "v2.73~r6", "autoUpdate": "Check", - "updateTo": "Testing", - "lastConnection": 1651163677, - "lastPowerUpOrRestart": 1649854400, - "machineSerialNumber": "HQ2101Q74EC", - "type": "Venus GX", - "vrmLink": "vrm.victronenergy.com/installation/120670", + "updateTo": "Official release", + "lastConnection": 1718620242, + "lastPowerUpOrRestart": 1660901614, + "machineSerialNumber": "HQ2201MXUKV", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/189850", "accessLevel": 1, - "syscreated": 1627371719, + "syscreated": 1656595694, "vrmOnline": true, "alarm": false, - "vpnIp": "10.2.1.99", - "vpnName": "HQ2101Q74EC", + "vpnIp": "10.2.2.66", + "vpnName": "HQ2201MXUKV", "vpnOnline": true }, { "name": "Galliker, Hitzkirch/LU | Alectron AG (2021-00069)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "481", + "inverterFw": "502", "identifier": "e415f6f444c0", - "hasMains": false, + "hasMains": true, "hasGenerator": false, "nbMppts": 0, - "nbPvInverters": 1, - "firmware": "v2.66~rc5", + "nbPvInverters": 2, + "firmware": "v2.73~r11", "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1651163663, - "lastPowerUpOrRestart": 1627544722, + "updateTo": "Testing", + "lastConnection": 1718620262, + "lastPowerUpOrRestart": 1717414166, "machineSerialNumber": "HQ2101HXPI5", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/120664", "accessLevel": 1, "syscreated": 1627369534, @@ -3935,6 +9274,56 @@ "vpnName": "HQ2101HXPI5", "vpnOnline": true }, + { + "name": "Gasser Heiden /AR | A+Elektro (2022-00534)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab10663", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620237, + "lastPowerUpOrRestart": 1692935596, + "machineSerialNumber": "HQ2204TAZ7Q", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/273972", + "accessLevel": 1, + "syscreated": 1677760087, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.119", + "vpnName": "HQ2204TAZ7Q", + "vpnOnline": true + }, + { + "name": "Gasser, Diepoldsau/ST | A + Elektro AG (AB2300013)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d12c", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620247, + "lastPowerUpOrRestart": 1713963918, + "machineSerialNumber": "HQ2217TRXPX", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/294518", + "accessLevel": 1, + "syscreated": 1682418567, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.201", + "vpnName": "HQ2217TRXPX", + "vpnOnline": true + }, { "name": "Gasser, Rapperswil/BE | Elektro Roder AG (2020-00066)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", @@ -3944,13 +9333,13 @@ "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 2, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163693, - "lastPowerUpOrRestart": 1637839134, + "lastConnection": 1718620223, + "lastPowerUpOrRestart": 1702886035, "machineSerialNumber": "HQ2002Y7617", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/67816", "accessLevel": 1, "syscreated": 1596625954, @@ -3960,22 +9349,72 @@ "vpnName": "HQ2002Y7617", "vpnOnline": true }, + { + "name": "Gautschi, Belpberg/BE | Breu AG (2022-00429)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "48e7da8890cf", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1706892333, + "lastPowerUpOrRestart": 1705913572, + "machineSerialNumber": "HQ22116PTAH", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/251039", + "accessLevel": 1, + "syscreated": 1672235854, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.27", + "vpnName": "HQ22116PTAH", + "vpnOnline": false + }, + { + "name": "Gellermann, Bonn/DE | IL sun+ | Innovative Energie-Lösungen (2022-00196)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "497", + "identifier": "48e7da868e7f", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620264, + "lastPowerUpOrRestart": 1712573100, + "machineSerialNumber": "HQ2201WWQE3", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/195067", + "accessLevel": 1, + "syscreated": 1658151234, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.86", + "vpnName": "HQ2201WWQE3", + "vpnOnline": true + }, { "name": "Gemeinde Nottwil Bauamt, Nottwil/LU | Alectron AG (2020-00023)", "inverter": "MultiPlus-II 48/5000/70-48", "inverterFw": "490", "identifier": "7804733f242d", - "hasMains": false, + "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 0, "firmware": "v2.66~r5", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163682, + "lastConnection": 1718620237, "lastPowerUpOrRestart": 1639738818, "machineSerialNumber": "HQ1945R8TW2", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/63851", "accessLevel": 1, "syscreated": 1593243878, @@ -3985,6 +9424,56 @@ "vpnName": "HQ1945R8TW2", "vpnOnline": false }, + { + "name": "Gentinetta, Leymen/BL | Fabian Gentinetta (2021-00209)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "501", + "identifier": "0281230c523a", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620268, + "lastPowerUpOrRestart": 1712302616, + "machineSerialNumber": "HQ21075A4ND", + "controllerType": "MultiPlus-II GX", + "vrmLink": "vrm.victronenergy.com/installation/151662", + "accessLevel": 1, + "syscreated": 1643100809, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.183", + "vpnName": "HQ21075A4ND", + "vpnOnline": true + }, + { + "name": "Gerber, Kiental/BE| Elektro Gyger AG (2022-00171)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "497", + "identifier": "48e7da8965dd", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620267, + "lastPowerUpOrRestart": 1716482334, + "machineSerialNumber": "HQ2150HUJ7T", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/191195", + "accessLevel": 1, + "syscreated": 1657035606, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.2.72", + "vpnName": "HQ2150HUJ7T", + "vpnOnline": true + }, { "name": "Gerber, Rüti/ZH | Clevergie AG (2020-00081)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", @@ -3997,10 +9486,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163661, - "lastPowerUpOrRestart": 1643019673, + "lastConnection": 1718620220, + "lastPowerUpOrRestart": 1693831544, "machineSerialNumber": "HQ2005WEDAW", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/70267", "accessLevel": 1, "syscreated": 1598616430, @@ -4015,17 +9504,17 @@ "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "485", "identifier": "e415f6f830c7", - "hasMains": true, + "hasMains": false, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163685, - "lastPowerUpOrRestart": 1647278416, + "lastConnection": 1718620228, + "lastPowerUpOrRestart": 1692886524, "machineSerialNumber": "HQ2046ZWTGW", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/126289", "accessLevel": 1, "syscreated": 1630587805, @@ -4035,6 +9524,56 @@ "vpnName": "HQ2046ZWTGW", "vpnOnline": true }, + { + "name": "Gernat, Münchenstein/BL/CH | b+s Elektro Telematik AG (2022-00310)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da882c27", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620250, + "lastPowerUpOrRestart": 1711111616, + "machineSerialNumber": "HQ214863FRH", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/214254", + "accessLevel": 1, + "syscreated": 1663588603, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.158", + "vpnName": "HQ214863FRH", + "vpnOnline": true + }, + { + "name": "Gersbach, Hilterfingen/BE/CH | Allenbach Holzbau und Solartechnik AG (2022-00306)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da8729c3", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620274, + "lastPowerUpOrRestart": 1716905325, + "machineSerialNumber": "HQ2148HQ9KP", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/217581", + "accessLevel": 1, + "syscreated": 1664383122, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.174", + "vpnName": "HQ2148HQ9KP", + "vpnOnline": true + }, { "name": "Gerster, Laufen/BL | STARK STROM GmbH (2019-00061)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", @@ -4047,10 +9586,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Release-candidate", - "lastConnection": 1651163634, - "lastPowerUpOrRestart": 1649261018, + "lastConnection": 1718620224, + "lastPowerUpOrRestart": 1717641123, "machineSerialNumber": "HQ1924QWDZ3", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/48524", "accessLevel": 1, "syscreated": 1574593663, @@ -4060,31 +9599,156 @@ "vpnName": "HQ1924QWDZ3", "vpnOnline": true }, + { + "name": "GetroniX", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab435c2", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 2, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620275, + "lastPowerUpOrRestart": 1704033829, + "machineSerialNumber": "HQ23026QV7Y", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/290582", + "accessLevel": 1, + "syscreated": 1681488944, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, { "name": "Geyer, Waltrop/DE | EEG Autark GmbH (2021-00186)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "490", "identifier": "0035ff98f1e1", - "hasMains": false, + "hasMains": true, "hasGenerator": false, "nbMppts": 0, - "nbPvInverters": 0, + "nbPvInverters": 1, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163686, - "lastPowerUpOrRestart": 1647278801, + "lastConnection": 1718620237, + "lastPowerUpOrRestart": 1703548645, "machineSerialNumber": "HQ2110V1ZDY", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/140664", "accessLevel": 1, "syscreated": 1637764625, "vrmOnline": true, - "alarm": false, + "alarm": true, "vpnIp": "10.2.1.161", "vpnName": "HQ2110V1ZDY", "vpnOnline": true }, + { + "name": "Giger, Winterthur | Jaeggi Gmünder Energietechnik AG (AB2400037) SN20240017", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab383a6", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620227, + "lastPowerUpOrRestart": 1717568528, + "machineSerialNumber": "HQ2247Y2RX9", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/392632", + "accessLevel": 1, + "syscreated": 1705911835, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Gilgen, Schwarzenburg/BE | Breu AG (2022-00077)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "00e93aac4603", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620247, + "lastPowerUpOrRestart": 1717071430, + "machineSerialNumber": "HQ2139A6K3C", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/167146", + "accessLevel": 1, + "syscreated": 1649147284, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.243", + "vpnName": "HQ2139A6K3C", + "vpnOnline": true + }, + { + "name": "Gilli, Ascona/TI | Gilli Rene (2022-00315)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "48e7da8816ed", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620257, + "lastPowerUpOrRestart": 1709025377, + "machineSerialNumber": "HQ2201ANYER", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/226997", + "accessLevel": 1, + "syscreated": 1666599641, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.204", + "vpnName": "HQ2201ANYER", + "vpnOnline": true + }, + { + "name": "Gilli,Emetten NW/ Asons AG (2022-00300)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab1dd3f", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620227, + "lastPowerUpOrRestart": 1700663889, + "machineSerialNumber": "HQ22192EU93", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/284270", + "accessLevel": 1, + "syscreated": 1680070968, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.158", + "vpnName": "HQ22192EU93", + "vpnOnline": true + }, { "name": "Gimmi, Kappel am Albis/ZH | Alex Gemperle AG (2020-00036)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", @@ -4097,10 +9761,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163639, - "lastPowerUpOrRestart": 1640111050, + "lastConnection": 1718620261, + "lastPowerUpOrRestart": 1665461726, "machineSerialNumber": "HQ1945LXLDD", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/63985", "accessLevel": 1, "syscreated": 1593434712, @@ -4111,7 +9775,7 @@ "vpnOnline": true }, { - "name": "Gittermann, Stein/AG | Kabeltechnik swiss ag (2021-00230)", + "name": "Gittermann, Stein/AG | kabeltechnik swiss ag (2021-00230)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "490", "identifier": "102c6bc2ae6e", @@ -4122,10 +9786,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163646, - "lastPowerUpOrRestart": 1647305109, + "lastConnection": 1718620238, + "lastPowerUpOrRestart": 1660901643, "machineSerialNumber": "HQ21189FG2X", - "type": "Cerbo GX", + "controllerType": "Cerbo GX", "vrmLink": "vrm.victronenergy.com/installation/154781", "accessLevel": 1, "syscreated": 1644393941, @@ -4144,13 +9808,13 @@ "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 0, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163663, - "lastPowerUpOrRestart": 1649175323, + "lastConnection": 1718620245, + "lastPowerUpOrRestart": 1698829699, "machineSerialNumber": "HQ2042YU3JW", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/105037", "accessLevel": 1, "syscreated": 1618942799, @@ -4160,10 +9824,135 @@ "vpnName": "HQ2042YU3JW", "vpnOnline": true }, + { + "name": "Glauser Nyon/VD | OptimalLiving SA (AB2300058)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab1cec5", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620225, + "lastPowerUpOrRestart": 1693627408, + "machineSerialNumber": "HQ2217PFQJ2", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/298051", + "accessLevel": 1, + "syscreated": 1683192668, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.214", + "vpnName": "HQ2217PFQJ2", + "vpnOnline": true + }, + { + "name": "Glock, Marbach a.N. DE | Blasenbrei & Schrader Solar GmbH & Co. KG (AB2300072) SN20230072", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab1dd22", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620275, + "lastPowerUpOrRestart": 1704894886, + "machineSerialNumber": "HQ22174NARX", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/317380", + "accessLevel": 1, + "syscreated": 1687263753, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Glöckle, Göttingen/DE | Unseld Solartechnik GmbH (2022-00241)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "48e7da87882f", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 3, + "nbPvInverters": 2, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620262, + "lastPowerUpOrRestart": 1696535394, + "machineSerialNumber": "HQ2148FXMYZ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/205460", + "accessLevel": 1, + "syscreated": 1661181299, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.126", + "vpnName": "HQ2148FXMYZ", + "vpnOnline": true + }, + { + "name": "Göpfert, Alt Sammit/DE | Optema (2022-00524)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d133", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620252, + "lastPowerUpOrRestart": 1715599236, + "machineSerialNumber": "HQ2217XVNDY", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/331607", + "accessLevel": 1, + "syscreated": 1690359876, + "vrmOnline": true, + "alarm": true, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Gosteli, Frauenfeld/TG/CH | EWE Elektro AG (2022-00217)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "48e7da885f13", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 3, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620260, + "lastPowerUpOrRestart": 1692890433, + "machineSerialNumber": "HQ2148DPU24", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/201687", + "accessLevel": 1, + "syscreated": 1660052127, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.156", + "vpnName": "HQ2148DPU24", + "vpnOnline": true + }, { "name": "Göthe, Steinhöring", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "490", + "inverterFw": "502", "identifier": "0281a3463622", "hasMains": false, "hasGenerator": false, @@ -4172,10 +9961,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163683, - "lastPowerUpOrRestart": 1647953589, + "lastConnection": 1718620265, + "lastPowerUpOrRestart": 1715583964, "machineSerialNumber": "HQ2107F9WN3", - "type": "MultiPlus-II GX", + "controllerType": "MultiPlus-II GX", "vrmLink": "vrm.victronenergy.com/installation/160326", "accessLevel": 1, "syscreated": 1646735324, @@ -4186,28 +9975,28 @@ "vpnOnline": true }, { - "name": "Graber, Zürich/ZH | InnovEnergy", - "inverter": "MultiGrid 48/3000/35-50", - "inverterFw": "424", - "identifier": "9884e3aef071", + "name": "Graber, Dättwil/ZH/CH | Scherrer Gebäudehüllen AG (2022-00157)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da867ae7", "hasMains": true, "hasGenerator": false, "nbMppts": 0, - "nbPvInverters": 0, - "firmware": "v2.73~r6", + "nbPvInverters": 1, + "firmware": "v2.73~r12", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163695, - "lastPowerUpOrRestart": 1648220175, - "machineSerialNumber": "HQ1728HEJ99", - "type": "Venus GX", - "vrmLink": "vrm.victronenergy.com/installation/34807", + "lastConnection": 1718620279, + "lastPowerUpOrRestart": 1696862662, + "machineSerialNumber": "HQ2150M97QD", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/189758", "accessLevel": 1, - "syscreated": 1555315067, + "syscreated": 1656584129, "vrmOnline": true, "alarm": false, - "vpnIp": "10.2.1.6", - "vpnName": "HQ1728HEJ99", + "vpnIp": "10.2.2.65", + "vpnName": "HQ2150M97QD", "vpnOnline": true }, { @@ -4222,10 +10011,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163673, - "lastPowerUpOrRestart": 1647277423, + "lastConnection": 1718620232, + "lastPowerUpOrRestart": 1660901664, "machineSerialNumber": "HQ2101XD34F", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/142248", "accessLevel": 1, "syscreated": 1638373379, @@ -4236,21 +10025,46 @@ "vpnOnline": true }, { - "name": "Greißl, Feichten/Neumarkt St. Veit/DE | Elektrotechnik Schmidt (2022-00065)", + "name": "Grauwiller Giffers | Paul Gugler AG 2022-00266", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "490", - "identifier": "102c6b9d089c", - "hasMains": false, + "inverterFw": "502", + "identifier": "c0619ab09797", + "hasMains": true, "hasGenerator": false, "nbMppts": 0, - "nbPvInverters": 0, - "firmware": "v2.73~r6", + "nbPvInverters": 1, + "firmware": "v2.73~r12", "autoUpdate": "Check", - "updateTo": "Release-candidate", - "lastConnection": 1651163648, - "lastPowerUpOrRestart": 1649201056, + "updateTo": "Official release", + "lastConnection": 1718620238, + "lastPowerUpOrRestart": 1712209983, + "machineSerialNumber": "HQ2148XQFWH", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/276264", + "accessLevel": 1, + "syscreated": 1678271355, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.143", + "vpnName": "HQ2148XQFWH", + "vpnOnline": true + }, + { + "name": "Greissl, Feichten/Neumarkt St. Veit/DE | Elektrotechnik Schmidt (2022-00065)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "102c6b9d089c", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620274, + "lastPowerUpOrRestart": 1704987136, "machineSerialNumber": "HQ2118MYJHY", - "type": "Cerbo GX", + "controllerType": "Cerbo GX", "vrmLink": "vrm.victronenergy.com/installation/160542", "accessLevel": 1, "syscreated": 1646819408, @@ -4260,6 +10074,131 @@ "vpnName": "HQ2118MYJHY", "vpnOnline": true }, + { + "name": "Greissl,Kastl DE | Elektrotechnik Schmidt (2022-00189.2)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "02816fc29691", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620234, + "lastPowerUpOrRestart": 1705390959, + "machineSerialNumber": "HQ2107APH29", + "controllerType": "MultiPlus-II GX", + "vrmLink": "vrm.victronenergy.com/installation/185404", + "accessLevel": 1, + "syscreated": 1655272961, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.49", + "vpnName": "HQ2107APH29", + "vpnOnline": true + }, + { + "name": "Greska, Ismaning/DE | EBS Elektrotechnik Stefan GmbH(2022-00280.3)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da88900d", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620285, + "lastPowerUpOrRestart": 1718453780, + "machineSerialNumber": "HQ2148GRZ4T", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/214972", + "accessLevel": 1, + "syscreated": 1663754309, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.163", + "vpnName": "HQ2148GRZ4T", + "vpnOnline": true + }, + { + "name": "Grieder, Wollerau/SZ | Portmann & Cavelti Elektro + Planungs AG (2022-00126)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da871263", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620257, + "lastPowerUpOrRestart": 1686654001, + "machineSerialNumber": "HQ2148R34WH", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/179787", + "accessLevel": 1, + "syscreated": 1653470164, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.29", + "vpnName": "HQ2148R34WH", + "vpnOnline": true + }, + { + "name": "Grisoni, Fahrwangen/AG | Orkanet Siworks AG (AB2300295) SN20230135", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d271", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620236, + "lastPowerUpOrRestart": 1703083877, + "machineSerialNumber": "HQ2217HE7J3", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/326950", + "accessLevel": 1, + "syscreated": 1689315070, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Gross Leemann, Küsnacht/ZH | ecoEn GmbH 2022-00439", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab167f0", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620235, + "lastPowerUpOrRestart": 1679922191, + "machineSerialNumber": "HQ2211PXGD3", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/245596", + "accessLevel": 1, + "syscreated": 1670837555, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.12", + "vpnName": "HQ2211PXGD3", + "vpnOnline": true + }, { "name": "Grossniklaus, Gsteigwiler/BE | Frey & Cie Elektro AG (2021-00056)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", @@ -4272,14 +10211,14 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163649, - "lastPowerUpOrRestart": 1646530624, + "lastConnection": 1718620275, + "lastPowerUpOrRestart": 1710126747, "machineSerialNumber": "HQ2042RUJEN", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/111386", "accessLevel": 1, "syscreated": 1622621734, - "vrmOnline": true, + "vrmOnline": false, "alarm": false, "vpnIp": "10.2.1.61", "vpnName": "HQ2042RUJEN", @@ -4297,19 +10236,69 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163671, - "lastPowerUpOrRestart": 1647277550, + "lastConnection": 1673948728, + "lastPowerUpOrRestart": 1660901663, "machineSerialNumber": "HQ2042RK6TH", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/118823", "accessLevel": 1, "syscreated": 1626329796, - "vrmOnline": true, + "vrmOnline": false, "alarm": false, "vpnIp": "10.2.1.88", "vpnName": "HQ2042RK6TH", + "vpnOnline": false + }, + { + "name": "Gruber, Machtenstein/DE | EBS Elektrotechnik Stefan GmbH(2022-00280.1)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da874205", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620275, + "lastPowerUpOrRestart": 1711005113, + "machineSerialNumber": "HQ2148HWZCH", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/214553", + "accessLevel": 1, + "syscreated": 1663667278, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.161", + "vpnName": "HQ2148HWZCH", "vpnOnline": true }, + { + "name": "Grund / Franken", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c8df84d36d65", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620280, + "lastPowerUpOrRestart": 1715767128, + "machineSerialNumber": "HQ18511Z94Z", + "controllerType": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/367728", + "accessLevel": 1, + "syscreated": 1699288555, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.137", + "vpnName": "HQ18511Z94Z", + "vpnOnline": false + }, { "name": "Grund, Ellingen/DE | EEG autark (2020-00141)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", @@ -4322,35 +10311,35 @@ "firmware": "v2.54~ie", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163411, - "lastPowerUpOrRestart": 1647553600, + "lastConnection": 1711515616, + "lastPowerUpOrRestart": 1711510243, "machineSerialNumber": "HQ2028KUHUJ", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/88785", "accessLevel": 1, "syscreated": 1607692178, - "vrmOnline": true, + "vrmOnline": false, "alarm": false, "vpnIp": "10.2.1.4", "vpnName": "HQ2028KUHUJ", - "vpnOnline": true + "vpnOnline": false }, { "name": "Grundmann, Aarberg/BE | KWenergy GmbH (2020-00049)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "474", + "inverterFw": "502", "identifier": "0479b7ef4ca4", "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 2, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163689, - "lastPowerUpOrRestart": 1647690340, + "lastConnection": 1718620291, + "lastPowerUpOrRestart": 1718444467, "machineSerialNumber": "HQ19339D9IX", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/65757", "accessLevel": 1, "syscreated": 1594890797, @@ -4369,13 +10358,13 @@ "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 0, - "firmware": "v2.60~ditto", + "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163678, - "lastPowerUpOrRestart": 1633091419, + "lastConnection": 1718620249, + "lastPowerUpOrRestart": 1667561195, "machineSerialNumber": "HQ2032DDTEQ", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/98483", "accessLevel": 1, "syscreated": 1615281362, @@ -4385,6 +10374,81 @@ "vpnName": "HQ2032DDTEQ", "vpnOnline": true }, + { + "name": "Gügerli, Grenolier/VD | OptimalLiving SA (2022-00563)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab09a7a", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620294, + "lastPowerUpOrRestart": 1704307925, + "machineSerialNumber": "HQ21496P9N7", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/277262", + "accessLevel": 1, + "syscreated": 1678446507, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.129", + "vpnName": "HQ21496P9N7", + "vpnOnline": true + }, + { + "name": "Guillod, Avenches/VD | Stauffacher Charpentes AG (2022-00279)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da8718e3", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620287, + "lastPowerUpOrRestart": 1708939574, + "machineSerialNumber": "HQ2148F9QGM", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/211637", + "accessLevel": 1, + "syscreated": 1662982700, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.153", + "vpnName": "HQ2148F9QGM", + "vpnOnline": true + }, + { + "name": "Guinchard, Giez/VD/CH | OptimalLiving SA (2022-00344)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "498", + "identifier": "48e7da885b53", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620279, + "lastPowerUpOrRestart": 1699286634, + "machineSerialNumber": "HQ2148ZXQ3P", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/230116", + "accessLevel": 1, + "syscreated": 1667300308, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.216", + "vpnName": "HQ2148ZXQ3P", + "vpnOnline": true + }, { "name": "Günter, Mittelhäusern/BE | Breu AG (2020-00110)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", @@ -4394,13 +10458,13 @@ "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 0, - "firmware": "v2.60~ditto", + "firmware": "v2.73~r6", "autoUpdate": "Check", - "updateTo": "Release-candidate", - "lastConnection": 1651163654, - "lastPowerUpOrRestart": 1612455545, + "updateTo": "Official release", + "lastConnection": 1718620270, + "lastPowerUpOrRestart": 1675442573, "machineSerialNumber": "HQ2024ZX9N7", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/76854", "accessLevel": 1, "syscreated": 1603989958, @@ -4415,17 +10479,17 @@ "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "490", "identifier": "e415f6f1927b", - "hasMains": false, + "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 2, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163676, - "lastPowerUpOrRestart": 1647277874, + "lastConnection": 1718620253, + "lastPowerUpOrRestart": 1660901669, "machineSerialNumber": "HQ2101D34C3", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/145328", "accessLevel": 1, "syscreated": 1639587890, @@ -4435,6 +10499,56 @@ "vpnName": "HQ2101D34C3", "vpnOnline": true }, + { + "name": "Habig, Ottikon /ZH | Elektro Liebherr (AB2300230)SN20230182", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "506", + "identifier": "c0619ab381db", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620281, + "lastPowerUpOrRestart": 1697776699, + "machineSerialNumber": "HQ2247NEMCG", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/344208", + "accessLevel": 1, + "syscreated": 1693469522, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Hachen, Diegten/BL | b+s Elektro Telematik AG (2023-00050)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab2f148", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620290, + "lastPowerUpOrRestart": 1714478222, + "machineSerialNumber": "HQ2242QAPZY", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/286677", + "accessLevel": 1, + "syscreated": 1680598957, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.3.169", + "vpnName": "HQ2242QAPZY", + "vpnOnline": true + }, { "name": "Hager, Eschenbach/SG | Elektro Egli AG (2021-00228)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", @@ -4447,10 +10561,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163707, - "lastPowerUpOrRestart": 1645713971, + "lastConnection": 1718620292, + "lastPowerUpOrRestart": 1660901613, "machineSerialNumber": "HQ21289V4HP", - "type": "Cerbo GX", + "controllerType": "Cerbo GX", "vrmLink": "vrm.victronenergy.com/installation/153699", "accessLevel": 1, "syscreated": 1643905327, @@ -4460,30 +10574,105 @@ "vpnName": "HQ21289V4HP", "vpnOnline": true }, + { + "name": "Hager, Friedrichshafen/DE | Elektro Weissenrieder (AB2300030)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab2e5cd", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620281, + "lastPowerUpOrRestart": 1689690030, + "machineSerialNumber": "HQ2242TNAJW", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/312542", + "accessLevel": 1, + "syscreated": 1686215052, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.4.20", + "vpnName": "HQ2242TNAJW", + "vpnOnline": true + }, + { + "name": "Hain-Fischer, Dachau/DE I EBS Elektrotechnik Stefan GmbH (2022-00101)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "102c6b9d086a", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r8", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620276, + "lastPowerUpOrRestart": 1665124008, + "machineSerialNumber": "HQ2118KRNAZ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/172345", + "accessLevel": 1, + "syscreated": 1651052713, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.10", + "vpnName": "HQ2118KRNAZ", + "vpnOnline": true + }, { "name": "Haller, Gwatt/BE | Elektro Fahrni AG (2021-00218)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "490", "identifier": "48e7da8a25b5", - "hasMains": true, + "hasMains": false, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163678, - "lastPowerUpOrRestart": 1648570530, + "lastConnection": 1683550853, + "lastPowerUpOrRestart": 1683550433, "machineSerialNumber": "HQ2128HZY3J", - "type": "Cerbo GX", + "controllerType": "Cerbo GX", "vrmLink": "vrm.victronenergy.com/installation/152918", "accessLevel": 1, "syscreated": 1643634402, - "vrmOnline": true, + "vrmOnline": false, "alarm": false, "vpnIp": "10.2.1.188", "vpnName": "HQ2128HZY3J", - "vpnOnline": true + "vpnOnline": false + }, + { + "name": "Haller, Gwatt/Thun/BE | Elektro Fahrni AG (2021-00218)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d0ac", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620271, + "lastPowerUpOrRestart": 1707838702, + "machineSerialNumber": "HQ2217NK4PY", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/328016", + "accessLevel": 1, + "syscreated": 1689603270, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false }, { "name": "Halter, Wiesendangen/ZH | DCP Energie GmbH (2020-00117)", @@ -4494,13 +10683,13 @@ "hasGenerator": true, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.66~rc5", + "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163687, - "lastPowerUpOrRestart": 1632661258, + "lastConnection": 1718620294, + "lastPowerUpOrRestart": 1660901699, "machineSerialNumber": "HQ2024ELMKF", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/78272", "accessLevel": 1, "syscreated": 1605195394, @@ -4510,6 +10699,56 @@ "vpnName": "HQ2024ELMKF", "vpnOnline": true }, + { + "name": "Hänggeli, Muttenz/BL/CH | Planeco GmbH (2022-00312)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab0955e", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620258, + "lastPowerUpOrRestart": 1700744217, + "machineSerialNumber": "HQ2148NK6YU", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/239179", + "accessLevel": 1, + "syscreated": 1669361161, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.183", + "vpnName": "HQ2148NK6YU", + "vpnOnline": true + }, + { + "name": "Hannes Bruderer, CH | A + Elektro AG (AB2300088)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab2dcae", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620301, + "lastPowerUpOrRestart": 1705668200, + "machineSerialNumber": "HQ2242PAKHA", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/305408", + "accessLevel": 1, + "syscreated": 1684758380, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.237", + "vpnName": "HQ2242PAKHA", + "vpnOnline": true + }, { "name": "Hardegger Liegenschaften GmbH, Fahrweid/ZH | Elektro Ottinger AG (2021-00220)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", @@ -4522,10 +10761,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163711, - "lastPowerUpOrRestart": 1649819690, + "lastConnection": 1718620268, + "lastPowerUpOrRestart": 1660901623, "machineSerialNumber": "HQ2128F6X9K", - "type": "Cerbo GX", + "controllerType": "Cerbo GX", "vrmLink": "vrm.victronenergy.com/installation/153871", "accessLevel": 1, "syscreated": 1643968568, @@ -4535,6 +10774,206 @@ "vpnName": "HQ2128F6X9K", "vpnOnline": true }, + { + "name": "Härdi, Windisch/AG | Jaeggi Solartechnik GmbH (AB2300022)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1cd4b", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620273, + "lastPowerUpOrRestart": 1685984534, + "machineSerialNumber": "HQ2217R9FFN", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/291629", + "accessLevel": 1, + "syscreated": 1681810123, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.3.190", + "vpnName": "HQ2217R9FFN", + "vpnOnline": true + }, + { + "name": "Hartmann, Thüringerberg/AT | Automation Hartmann (2022-00086)", + "inverter": "MultiPlus-II 48/8000/110-100", + "inverterFw": "502", + "identifier": "48e7da87b06b", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 4, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620293, + "lastPowerUpOrRestart": 1705905912, + "machineSerialNumber": "HQ22083MZAV", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/182118", + "accessLevel": 1, + "syscreated": 1654176280, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.35", + "vpnName": "HQ22083MZAV", + "vpnOnline": true + }, + { + "name": "Haunolder/Sankt Wolfgang/D | Loidl Elektro (AB2300302)", + "inverter": "MultiPlus-II 48/10000/140-100/100", + "inverterFw": "502", + "identifier": "c0619ab1dd15", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 3, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620305, + "lastPowerUpOrRestart": 1718548665, + "machineSerialNumber": "HQ22172FZWQ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/372446", + "accessLevel": 1, + "syscreated": 1700474671, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Haus des Holzes Sursee/LU | RSK Elektro AG (2022-00111)", + "inverter": "Quattro 48/15000/200-2x100", + "inverterFw": "502", + "identifier": "48e7da878769", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Release-candidate", + "lastConnection": 1718620275, + "lastPowerUpOrRestart": 1698661025, + "machineSerialNumber": "HQ2148UXXPU", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/201884", + "accessLevel": 1, + "syscreated": 1660122882, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.164", + "vpnName": "HQ2148UXXPU", + "vpnOnline": true + }, + { + "name": "Hauser ZG| Elektro Burger AG (AB2300257) SN20230198", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab3884a", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620308, + "lastPowerUpOrRestart": 1708808102, + "machineSerialNumber": "HQ2247ZJJFH", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/346691", + "accessLevel": 1, + "syscreated": 1694090547, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Hauser, Meggen/LU | Weibel + Sommer Elektro Telecom AG (2022-00487)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab2d910", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620282, + "lastPowerUpOrRestart": 1691069012, + "machineSerialNumber": "HQ2242JZPEG", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/270356", + "accessLevel": 1, + "syscreated": 1677000576, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.102", + "vpnName": "HQ2242JZPEG", + "vpnOnline": true + }, + { + "name": "Häusermann, Winkel/ZH | Bouygues E+S In Tec Schweiz AG (2022-00336)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "501", + "identifier": "48e7da88ea3d", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620299, + "lastPowerUpOrRestart": 1675686497, + "machineSerialNumber": "HQ2148JMJ7J", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/228021", + "accessLevel": 1, + "syscreated": 1666787326, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.211", + "vpnName": "HQ2148JMJ7J", + "vpnOnline": true + }, + { + "name": "Hehlen Neu, Oey/BE | InnovEnergy (2022-00236)", + "inverter": "Quattro 48/5000/70-2x100", + "inverterFw": "497", + "identifier": "0cb2b7b7ee5b", + "hasMains": false, + "hasGenerator": true, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1656400315, + "lastPowerUpOrRestart": 1656400134, + "machineSerialNumber": "HQ2024NHDYF", + "controllerType": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/87972", + "accessLevel": 1, + "syscreated": 1607085107, + "vrmOnline": false, + "alarm": false, + "vpnIp": "10.2.2.40", + "vpnName": "HQ2024NHDYF", + "vpnOnline": false + }, { "name": "Hehlen, Oey/BE | InnovEnergy (2019-00005)", "inverter": "Quattro 48/5000/70-2x100", @@ -4550,7 +10989,7 @@ "lastConnection": 1633572309, "lastPowerUpOrRestart": 1632127932, "machineSerialNumber": "HQ1945MGKUR", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/62070", "accessLevel": 1, "syscreated": 1591693763, @@ -4563,19 +11002,19 @@ { "name": "Heilinger, Bremgarten/BE | Rolf Gerber AG (2020-00040)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "474", + "inverterFw": "502", "identifier": "0479b7f1815f", - "hasMains": true, + "hasMains": false, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.60~ditto", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163668, - "lastPowerUpOrRestart": 1620469810, + "lastConnection": 1718620304, + "lastPowerUpOrRestart": 1718528439, "machineSerialNumber": "HQ19308F683", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/62054", "accessLevel": 1, "syscreated": 1591685115, @@ -4583,6 +11022,56 @@ "alarm": false, "vpnIp": "10.2.0.149", "vpnName": "HQ19308F683", + "vpnOnline": false + }, + { + "name": "Heinzelmann, Liebistorf/FR | Feldmann & Co. AG (2022-00008)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da87c967", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 3, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620309, + "lastPowerUpOrRestart": 1699364843, + "machineSerialNumber": "HQ2128MFCVU", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/157822", + "accessLevel": 1, + "syscreated": 1645691768, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.209", + "vpnName": "HQ2128MFCVU", + "vpnOnline": true + }, + { + "name": "Heinzer, Birmensdorf/ZH | elektro wettstein GmbH (2022-00431)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab096ec", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620283, + "lastPowerUpOrRestart": 1707210065, + "machineSerialNumber": "HQ2148FYCU7", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/266172", + "accessLevel": 1, + "syscreated": 1676040560, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.76", + "vpnName": "HQ2148FYCU7", "vpnOnline": true }, { @@ -4597,15 +11086,15 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163687, - "lastPowerUpOrRestart": 1651158105, + "lastConnection": 1718620293, + "lastPowerUpOrRestart": 1692574063, "machineSerialNumber": "HQ1907WRHJT", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/46406", "accessLevel": 1, "syscreated": 1571842852, "vrmOnline": true, - "alarm": true, + "alarm": false, "vpnIp": "10.2.0.197", "vpnName": "HQ1907WRHJT", "vpnOnline": true @@ -4613,7 +11102,7 @@ { "name": "Henz, Wittnau/AG | Ruther AG (2021-00119)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "485", + "inverterFw": "502", "identifier": "e415f6fd970a", "hasMains": false, "hasGenerator": false, @@ -4622,10 +11111,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163694, - "lastPowerUpOrRestart": 1646143344, + "lastConnection": 1718620291, + "lastPowerUpOrRestart": 1710471234, "machineSerialNumber": "HQ20466ES2E", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/125230", "accessLevel": 1, "syscreated": 1629981102, @@ -4640,17 +11129,17 @@ "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "474", "identifier": "0c1c5705fd4e", - "hasMains": false, + "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 0, - "firmware": "v2.60~ditto", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163658, - "lastPowerUpOrRestart": 1646751315, + "lastConnection": 1718620310, + "lastPowerUpOrRestart": 1716665755, "machineSerialNumber": "HQ2002FP98Q", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/66494", "accessLevel": 1, "syscreated": 1595482216, @@ -4672,10 +11161,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163684, - "lastPowerUpOrRestart": 1646738041, + "lastConnection": 1718620307, + "lastPowerUpOrRestart": 1660901649, "machineSerialNumber": "HQ2101HKHTS", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/137582", "accessLevel": 1, "syscreated": 1636474650, @@ -4686,10 +11175,60 @@ "vpnOnline": true }, { - "name": "Hodel, Reiden/LU | CKW Conex AG (2019-00060)", + "name": "Herold, Laubensdorf/SO | Jäggi Elektroinsallationen AG (2022-00109)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "497", + "identifier": "48e7da89e64b", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 3, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620299, + "lastPowerUpOrRestart": 1687528952, + "machineSerialNumber": "HQ2150MGMZA", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/189011", + "accessLevel": 1, + "syscreated": 1656408371, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.64", + "vpnName": "HQ2150MGMZA", + "vpnOnline": true + }, + { + "name": "Herren, Rapperswil/BE | Terrasystems AG (AB2300036)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "459", - "identifier": "c4f3128132c0", + "inverterFw": "502", + "identifier": "c0619ab1dd51", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620312, + "lastPowerUpOrRestart": 1687205745, + "machineSerialNumber": "HQ2219JHNNC", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/291587", + "accessLevel": 1, + "syscreated": 1681805239, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.189", + "vpnName": "HQ2219JHNNC", + "vpnOnline": true + }, + { + "name": "Herren, Schönbühl/BE | Elektro Böhlen AG (2022-00208)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "497", + "identifier": "48e7da871b9d", "hasMains": true, "hasGenerator": false, "nbMppts": 0, @@ -4697,10 +11236,135 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163698, - "lastPowerUpOrRestart": 1650948054, + "lastConnection": 1718620269, + "lastPowerUpOrRestart": 1700488339, + "machineSerialNumber": "HQ2148RJXAZ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/195989", + "accessLevel": 1, + "syscreated": 1658387823, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.91", + "vpnName": "HQ2148RJXAZ", + "vpnOnline": true + }, + { + "name": "Heutschi, Balsthal/SO | Jäggi Elektroinstallationen AG (2022-00164)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "48e7da871e6b", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 3, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620264, + "lastPowerUpOrRestart": 1687447780, + "machineSerialNumber": "HQ22014FFC7", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/190893", + "accessLevel": 1, + "syscreated": 1656946311, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.69", + "vpnName": "HQ22014FFC7", + "vpnOnline": true + }, + { + "name": "Hilz, Dachau/DE | EBS Elektrotechnik Stefan GmbH (2022-00100)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "102c6b643c58", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620265, + "lastPowerUpOrRestart": 1665738730, + "machineSerialNumber": "HQ20484QQA5", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/171840", + "accessLevel": 1, + "syscreated": 1650894662, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.8", + "vpnName": "HQ20484QQA5", + "vpnOnline": true + }, + { + "name": "Hintermann, Degen/GR | Solpic AG (2023-00027)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab16932", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 3, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620315, + "lastPowerUpOrRestart": 1690470405, + "machineSerialNumber": "HQ22114NTWN", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/287729", + "accessLevel": 1, + "syscreated": 1680780928, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.175", + "vpnName": "HQ22114NTWN", + "vpnOnline": true + }, + { + "name": "Hirzel, Bettlach | GLB Seeland (2022)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "490", + "identifier": "48e7da8876f9", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620321, + "lastPowerUpOrRestart": 1709857859, + "machineSerialNumber": "HQ2201APTRK", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/177880", + "accessLevel": 1, + "syscreated": 1652879263, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.22", + "vpnName": "HQ2201APTRK", + "vpnOnline": true + }, + { + "name": "Hodel, Reiden/LU | CKW Conex AG (2019-00060)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c4f3128132c0", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620320, + "lastPowerUpOrRestart": 1715771204, "machineSerialNumber": "HQ1924VH6J8", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/48488", "accessLevel": 1, "syscreated": 1574516288, @@ -4710,22 +11374,47 @@ "vpnName": "HQ1924VH6J8", "vpnOnline": true }, + { + "name": "Hofer, CH | Helion Energy AG (AB2300269) SN20230141", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d455", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620301, + "lastPowerUpOrRestart": 1718172386, + "machineSerialNumber": "HQ2217J34AD", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/327796", + "accessLevel": 1, + "syscreated": 1689577849, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, { "name": "Hofer, Freiburg/FR | Breu AG (2021-00025)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "481", "identifier": "e415f6fa4b44", - "hasMains": true, + "hasMains": false, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 0, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163667, - "lastPowerUpOrRestart": 1646408875, + "lastConnection": 1718620286, + "lastPowerUpOrRestart": 1710448280, "machineSerialNumber": "HQ2032QESN7", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/113491", "accessLevel": 1, "syscreated": 1623748291, @@ -4738,19 +11427,19 @@ { "name": "Hofer, Müntschemier/BE | Elektro Montandon (2020-00019)", "inverter": "MultiPlus-II 48/5000/70-48", - "inverterFw": "475", + "inverterFw": "502", "identifier": "0c1c57019134", "hasMains": false, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.60~ditto", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163677, - "lastPowerUpOrRestart": 1628152695, + "lastConnection": 1718620322, + "lastPowerUpOrRestart": 1710154861, "machineSerialNumber": "HQ2005XHSA8", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/67920", "accessLevel": 1, "syscreated": 1596697303, @@ -4769,13 +11458,13 @@ "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 0, - "firmware": "v2.60~ditto", + "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163670, - "lastPowerUpOrRestart": 1608291287, + "lastConnection": 1718620322, + "lastPowerUpOrRestart": 1718139018, "machineSerialNumber": "HQ1728HEJ66", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/69184", "accessLevel": 1, "syscreated": 1597750502, @@ -4783,7 +11472,7 @@ "alarm": false, "vpnIp": "10.2.0.201", "vpnName": "HQ1728HEJ66", - "vpnOnline": true + "vpnOnline": false }, { "name": "Höfler, Alvaneu/GR | Hassler Energia Alternativa AG (2020-00064)", @@ -4794,13 +11483,13 @@ "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.60~ditto", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163692, - "lastPowerUpOrRestart": 1646053853, + "lastConnection": 1718620280, + "lastPowerUpOrRestart": 1718454674, "machineSerialNumber": "HQ2024BUQ7V", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/68029", "accessLevel": 1, "syscreated": 1596781116, @@ -4811,46 +11500,96 @@ "vpnOnline": true }, { - "name": "Hofmeier, St. Pantaleon/SO | InnovEnergy (2018-00015)", - "inverter": "MultiGrid 48/3000/35-50", - "inverterFw": "430", - "identifier": "9c1d5849d241", - "hasMains": true, - "hasGenerator": true, - "nbMppts": 0, - "nbPvInverters": 1, - "firmware": "v2.33", + "name": "Hofmann, Winterthur | EWE Elektro AG (2022-00571)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1dd86", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r12", "autoUpdate": "Check", - "updateTo": "Release-candidate", - "lastConnection": 1651163708, - "lastPowerUpOrRestart": 1649410742, - "machineSerialNumber": null, - "type": "Color Control GX", - "vrmLink": "vrm.victronenergy.com/installation/28757", + "updateTo": "Official release", + "lastConnection": 1718620314, + "lastPowerUpOrRestart": 1711440432, + "machineSerialNumber": "HQ22193T4VA", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/278120", "accessLevel": 1, - "syscreated": 1542725485, + "syscreated": 1678697898, "vrmOnline": true, "alarm": false, - "vpnIp": "", - "vpnName": "", + "vpnIp": "10.2.3.116", + "vpnName": "HQ22193T4VA", + "vpnOnline": true + }, + { + "name": "Hofmeier St.Pantaleon,SO I active - Innov Energy 2018-00015", + "inverter": "MultiGrid 48/3000/35-50", + "inverterFw": "506", + "identifier": "c0619ab39384", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620324, + "lastPowerUpOrRestart": 1716970459, + "machineSerialNumber": "HQ2247EPF6U", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/398962", + "accessLevel": 1, + "syscreated": 1707416568, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.4.201", + "vpnName": "HQ2247EPF6U", "vpnOnline": false }, + { + "name": "Hofstetter, Hofen /SH | Scherrer Gebäudehüllen (2022-00406)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab167b8", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620266, + "lastPowerUpOrRestart": 1718619426, + "machineSerialNumber": "HQ2211HT3NQ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/243130", + "accessLevel": 1, + "syscreated": 1670252808, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.4", + "vpnName": "HQ2211HT3NQ", + "vpnOnline": true + }, { "name": "Höhenstrasse 3 Hilterfingen", "inverter": "MultiPlus-II 48/5000/70-48", - "inverterFw": "494", + "inverterFw": "551", "identifier": "d4124390cde3", "hasMains": false, "hasGenerator": false, - "nbMppts": 2, + "nbMppts": 3, "nbPvInverters": 1, - "firmware": "v2.84", + "firmware": "v3.40~26", "autoUpdate": "Check", "updateTo": "Release-candidate", - "lastConnection": 1651163661, - "lastPowerUpOrRestart": 1650541138, + "lastConnection": 1718620317, + "lastPowerUpOrRestart": 1718545877, "machineSerialNumber": "HQ2035849Z2", - "type": "Cerbo GX", + "controllerType": "Cerbo GX", "vrmLink": "vrm.victronenergy.com/installation/114552", "accessLevel": 1, "syscreated": 1624286530, @@ -4861,21 +11600,46 @@ "vpnOnline": false }, { - "name": "Holliger, Rickenbach/BL | Ruther AG (2021-00042)", + "name": "Hohl, Märwil,TG /Willi Elektro AB230006", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "481", - "identifier": "0cb2b7cd0509", + "inverterFw": "502", + "identifier": "c0619ab165ad", "hasMains": false, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.60~ditto", + "firmware": "v2.73~r12", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163718, - "lastPowerUpOrRestart": 1646061565, + "lastConnection": 1718620327, + "lastPowerUpOrRestart": 1695647824, + "machineSerialNumber": "HQ2211A9K49", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/351066", + "accessLevel": 1, + "syscreated": 1695216080, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.183", + "vpnName": "HQ2211A9K49", + "vpnOnline": true + }, + { + "name": "Holliger, Rickenbach/BL | Ruther AG (2021-00042)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "481", + "identifier": "0cb2b7cd0509", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620301, + "lastPowerUpOrRestart": 1660901665, "machineSerialNumber": "HQ2032PAWPQ", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/109059", "accessLevel": 1, "syscreated": 1621331042, @@ -4885,22 +11649,72 @@ "vpnName": "HQ2032PAWPQ", "vpnOnline": true }, + { + "name": "Hollinger, Oberwil / BL | b + s Elektro Telematik AG (SVA2300080) SN20230164", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d1fa", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620321, + "lastPowerUpOrRestart": 1700025082, + "machineSerialNumber": "HQ22179DHGK", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/338749", + "accessLevel": 1, + "syscreated": 1692100921, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Holzbau, DE | Elektro- und Gebäudetechnik Lemmle (2022-00088)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da88a693", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620309, + "lastPowerUpOrRestart": 1696330603, + "machineSerialNumber": "HQ21397WXFY", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/170518", + "accessLevel": 1, + "syscreated": 1650380322, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.1", + "vpnName": "HQ21397WXFY", + "vpnOnline": true + }, { "name": "Holzherr, Breitenbach/SO | STARK STROM GmbH (2020-00105)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "475", + "inverterFw": "502", "identifier": "f8369bf632c7", "hasMains": true, - "hasGenerator": true, + "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 2, - "firmware": "v2.66~r5", - "autoUpdate": "On", + "firmware": "v2.73~r11", + "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1650751401, - "lastPowerUpOrRestart": 1630462711, + "lastConnection": 1718620291, + "lastPowerUpOrRestart": 1714726604, "machineSerialNumber": "HQ2005KNZUW", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/74164", "accessLevel": 1, "syscreated": 1601879154, @@ -4908,7 +11722,7 @@ "alarm": false, "vpnIp": "10.2.0.229", "vpnName": "HQ2005KNZUW", - "vpnOnline": false + "vpnOnline": true }, { "name": "Honorarkonsul AT, Cotonou/Benin | AMEEN SARL (2020-00007)", @@ -4922,10 +11736,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163662, - "lastPowerUpOrRestart": 1651091598, + "lastConnection": 1718620318, + "lastPowerUpOrRestart": 1718565775, "machineSerialNumber": "HQ1933TKYPN", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/54814", "accessLevel": 1, "syscreated": 1582965224, @@ -4935,6 +11749,106 @@ "vpnName": "HQ1933TKYPN", "vpnOnline": true }, + { + "name": "Hons, Alten/ZH | Scherrer Gebäudehüllen AG (2022-00538)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab05292", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620311, + "lastPowerUpOrRestart": 1705477399, + "machineSerialNumber": "HQ2128E2FHJ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/264723", + "accessLevel": 1, + "syscreated": 1675779393, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.69", + "vpnName": "HQ2128E2FHJ", + "vpnOnline": true + }, + { + "name": "Hörl Michael, Dachau/DE | EBS Elektrotechnik Stefen GmbH (2022-00445.3)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "498", + "identifier": "c0619ab16780", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620328, + "lastPowerUpOrRestart": 1694419391, + "machineSerialNumber": "HQ22116E4AU", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/252701", + "accessLevel": 1, + "syscreated": 1672850758, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.37", + "vpnName": "HQ22116E4AU", + "vpnOnline": true + }, + { + "name": "Hörler, CH | M. Schlatter AG (AB2300217) SN20230175", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab1d3ee", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620314, + "lastPowerUpOrRestart": 1715236908, + "machineSerialNumber": "HQ2217HDE2E", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/341079", + "accessLevel": 1, + "syscreated": 1692702626, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Hotz, Dübendorf/ZH | Grande AG (2022-00556)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab16893", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620278, + "lastPowerUpOrRestart": 1688436406, + "machineSerialNumber": "HQ2211VRPF4", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/279491", + "accessLevel": 1, + "syscreated": 1678958882, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.141", + "vpnName": "HQ2211VRPF4", + "vpnOnline": true + }, { "name": "Huber, Basel/BS | Bouygues AG (2021-00101)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", @@ -4947,10 +11861,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163693, - "lastPowerUpOrRestart": 1644942026, + "lastConnection": 1718620302, + "lastPowerUpOrRestart": 1660901664, "machineSerialNumber": "HQ2046PUZ9R", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/121015", "accessLevel": 1, "syscreated": 1627473934, @@ -4965,21 +11879,21 @@ "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "481", "identifier": "0cb2b7b9c2a0", - "hasMains": true, - "hasGenerator": true, + "hasMains": false, + "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.66~rc5", + "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163715, - "lastPowerUpOrRestart": 1647277611, + "lastConnection": 1718620285, + "lastPowerUpOrRestart": 1660901693, "machineSerialNumber": "HQ2042CMJVV", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/113981", "accessLevel": 1, "syscreated": 1623933350, - "vrmOnline": true, + "vrmOnline": false, "alarm": false, "vpnIp": "10.2.1.76", "vpnName": "HQ2042CMJVV", @@ -4988,19 +11902,19 @@ { "name": "Hug, Schaffhausen/SH | Vivo Solar (2020-00084)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "475", + "inverterFw": "502", "identifier": "1862e4c0889b", "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163708, - "lastPowerUpOrRestart": 1644856246, + "lastConnection": 1718620303, + "lastPowerUpOrRestart": 1709460009, "machineSerialNumber": "HQ2024CYGYN", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/71481", "accessLevel": 1, "syscreated": 1599658291, @@ -5010,6 +11924,56 @@ "vpnName": "HQ2024CYGYN", "vpnOnline": true }, + { + "name": "Hugo Roos, Trebur/DE | Daniel Gebert Technik Gebert (2023-00037)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab10694", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620303, + "lastPowerUpOrRestart": 1692602650, + "machineSerialNumber": "HQ2204QZ4K3", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/287651", + "accessLevel": 1, + "syscreated": 1680772183, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.174", + "vpnName": "HQ2204QZ4K3", + "vpnOnline": true + }, + { + "name": "Humberg, Madetswil/ZH/CH | Grande AG (2022-00183)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da87dd47", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620323, + "lastPowerUpOrRestart": 1698807275, + "machineSerialNumber": "HQ2150HX9FW", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/193332", + "accessLevel": 1, + "syscreated": 1657640847, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.81", + "vpnName": "HQ2150HX9FW", + "vpnOnline": true + }, { "name": "Hunziker, Brienz/BE | InnovEnergy (2017-00002)", "inverter": "MultiGrid 48/3000/35-50", @@ -5021,11 +11985,11 @@ "nbPvInverters": 1, "firmware": "v2.60~r4", "autoUpdate": "Check", - "updateTo": "Release-candidate", - "lastConnection": 1651163689, - "lastPowerUpOrRestart": 1650068440, + "updateTo": "Official release", + "lastConnection": 1718620293, + "lastPowerUpOrRestart": 1718217976, "machineSerialNumber": "HQ1719IDU8E", - "type": "Color Control GX", + "controllerType": "Color Control GX", "vrmLink": "vrm.victronenergy.com/installation/14708", "accessLevel": 1, "syscreated": 1506003066, @@ -5047,10 +12011,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163707, + "lastConnection": 1718620286, "lastPowerUpOrRestart": 1650534080, "machineSerialNumber": "HQ2050TI1MU", - "type": "MultiPlus-II GX", + "controllerType": "MultiPlus-II GX", "vrmLink": "vrm.victronenergy.com/installation/151063", "accessLevel": 1, "syscreated": 1642773689, @@ -5065,17 +12029,17 @@ "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "485", "identifier": "0479b7aebed8", - "hasMains": true, + "hasMains": false, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163675, - "lastPowerUpOrRestart": 1636658768, + "lastConnection": 1718620323, + "lastPowerUpOrRestart": 1703082447, "machineSerialNumber": "HQ2101IAA15", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/131934", "accessLevel": 1, "syscreated": 1633693656, @@ -5085,22 +12049,197 @@ "vpnName": "HQ2101IAA15", "vpnOnline": true }, + { + "name": "Hurschler, Engelberg/OW | Alectron AG (2022-00502)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab09b0c", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620328, + "lastPowerUpOrRestart": 1709210451, + "machineSerialNumber": "HQ2149D3U6H", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/271123", + "accessLevel": 1, + "syscreated": 1677154915, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.107", + "vpnName": "HQ2149D3U6H", + "vpnOnline": true + }, + { + "name": "Hutter, Lüchingen/SG/CH | Swiss Photovoltaik GmbH (2022-00212)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da87423f", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620322, + "lastPowerUpOrRestart": 1712666835, + "machineSerialNumber": "HQ2148G4HPW", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/199860", + "accessLevel": 1, + "syscreated": 1659514308, + "vrmOnline": false, + "alarm": false, + "vpnIp": "10.2.2.105", + "vpnName": "HQ2148G4HPW", + "vpnOnline": true + }, + { + "name": "Hutti 11, 3250 Lyss | Feldmann & Co. AG (AB2300107)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d0e4", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620304, + "lastPowerUpOrRestart": 1694615378, + "machineSerialNumber": "HQ2217ZA3QT", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/305289", + "accessLevel": 1, + "syscreated": 1684747178, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.236", + "vpnName": "HQ2217ZA3QT", + "vpnOnline": true + }, + { + "name": "IBN Kohli 6022053, Helgisried/BE | Staub + Zbinden Elektro GmbH (AB2300298 SN20230111", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d46a", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1688995264, + "lastPowerUpOrRestart": 1688993344, + "machineSerialNumber": "HQ2217NVNGD", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/324014", + "accessLevel": 1, + "syscreated": 1688644247, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "IBN_ Burkhard, Liebefeld/BE | Gasser + Bertschy Elektro AG (AB2300222) SN20230181", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab3821c", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1693388281, + "lastPowerUpOrRestart": 1693380766, + "machineSerialNumber": "HQ2247W3WPA", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/343101", + "accessLevel": 1, + "syscreated": 1693217824, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "IBN_ Decker, Goslar/DE /W&D Solartechnik GbR (AB2400031)(SN20240016)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "508", + "identifier": "c0619ab1bff4", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1705998390, + "lastPowerUpOrRestart": 1705909437, + "machineSerialNumber": "HQ2216NH33C", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/391959", + "accessLevel": 1, + "syscreated": 1705660960, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Im Ifang 11, 5400 Baden/AG | Regionalwerke AG Baden (AB2300119)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d150", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1696600942, + "lastPowerUpOrRestart": 1694159160, + "machineSerialNumber": "HQ221774U4E", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/313942", + "accessLevel": 1, + "syscreated": 1686554838, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.4.21", + "vpnName": "HQ221774U4E", + "vpnOnline": false + }, { "name": "Imhof, Wahlen/BL | STARK STROM GmbH (2022-00010)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "496", + "inverterFw": "502", "identifier": "102c6b861664", "hasMains": true, "hasGenerator": false, "nbMppts": 0, - "nbPvInverters": 2, - "firmware": "v2.73~r6", + "nbPvInverters": 3, + "firmware": "v2.73~r12", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163676, - "lastPowerUpOrRestart": 1649916409, + "lastConnection": 1718620306, + "lastPowerUpOrRestart": 1700830749, "machineSerialNumber": "HQ2118KXKAH", - "type": "Cerbo GX", + "controllerType": "Cerbo GX", "vrmLink": "vrm.victronenergy.com/installation/159385", "accessLevel": 1, "syscreated": 1646318578, @@ -5110,6 +12249,281 @@ "vpnName": "HQ2118KXKAH", "vpnOnline": true }, + { + "name": "Imhof, Zimmerwald/BE | Staub + Zbinden Elektro GmbH (2022-00482)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1069b", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620336, + "lastPowerUpOrRestart": 1699168959, + "machineSerialNumber": "HQ2204TMDTT", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/259739", + "accessLevel": 1, + "syscreated": 1674636921, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.64", + "vpnName": "HQ2204TMDTT", + "vpnOnline": true + }, + { + "name": "Imobersteg, Biel-Benken/BL/CH | D. Vonarbung GmbH (2022-00298)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "48e7da865431", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 3, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620291, + "lastPowerUpOrRestart": 1698834004, + "machineSerialNumber": "HQ21484YGEU", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/227209", + "accessLevel": 1, + "syscreated": 1666621127, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.207", + "vpnName": "HQ21484YGEU", + "vpnOnline": true + }, + { + "name": "Inauen Paul Wil, SG/CH | Elektro Iten ( AB2300225) SN20230184)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d0f5", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620339, + "lastPowerUpOrRestart": 1715327723, + "machineSerialNumber": "HQ221746A3T", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/343474", + "accessLevel": 1, + "syscreated": 1693303495, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Indermühle, Bettlach/SO | EnergyOptimizer GmbH - Solarenergie (AB2300034)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d1aa", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620343, + "lastPowerUpOrRestart": 1694678772, + "machineSerialNumber": "HQ2217XQZCH", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/311449", + "accessLevel": 1, + "syscreated": 1686039292, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.4.11", + "vpnName": "HQ2217XQZCH", + "vpnOnline": true + }, + { + "name": "innov test1", + "inverter": "unknown", + "inverterFw": "unknown", + "identifier": "c0619ab2e76b", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1689594292, + "lastPowerUpOrRestart": 1689581932, + "machineSerialNumber": "HQ2242TRQDG", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/327799", + "accessLevel": 1, + "syscreated": 1689578384, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "InnovtestECO", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "481", + "identifier": "c0619ab05b39", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1689596804, + "lastPowerUpOrRestart": 1689595964, + "machineSerialNumber": "HQ2128HCVF3", + "controllerType": "MultiPlus-II", + "vrmLink": "vrm.victronenergy.com/installation/327929", + "accessLevel": 1, + "syscreated": 1689594344, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.4.89", + "vpnName": "HQ2128HCVF3", + "vpnOnline": false + }, + { + "name": "Installation de Wapassi (Salt Battery)", + "inverter": "Quattro 48/15000/200-2x100", + "inverterFw": "506", + "identifier": "c0619ab1ce04", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620308, + "lastPowerUpOrRestart": 1718603326, + "machineSerialNumber": "HQ2217MJFC9", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/267482", + "accessLevel": 1, + "syscreated": 1676385194, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.83", + "vpnName": "HQ2217MJFC9", + "vpnOnline": true + }, + { + "name": "Installation solaire de Niamey", + "inverter": "Quattro 48/15000/200-2x100", + "inverterFw": "502", + "identifier": "c0619ab1cd0e", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 4, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620299, + "lastPowerUpOrRestart": 1718601746, + "machineSerialNumber": "HQ2217WQ7CN", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/267492", + "accessLevel": 1, + "syscreated": 1676385638, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.3.84", + "vpnName": "HQ2217WQ7CN", + "vpnOnline": true + }, + { + "name": "Installation_Mutzner_76.8T", + "inverter": "Quattro 48/10000/140-2x100", + "inverterFw": "506", + "identifier": "c0619ab3f2a7", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 6, + "nbPvInverters": 0, + "firmware": "v3.10~27", + "autoUpdate": "Check", + "updateTo": "Release-candidate", + "lastConnection": 1718620343, + "lastPowerUpOrRestart": 1699353639, + "machineSerialNumber": "unknown", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/86887", + "accessLevel": 0, + "syscreated": 1606323323, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Iseli, Boll/BE | Elektro Böhlen AG (SN20230112)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab2e449", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620321, + "lastPowerUpOrRestart": 1710904651, + "machineSerialNumber": "HQ2242CAWDN", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/322742", + "accessLevel": 1, + "syscreated": 1688391343, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Iseli, Grossaffoltern/BE | Elektro Roder AG (2022-00400)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "498", + "identifier": "c0619ab167af", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620311, + "lastPowerUpOrRestart": 1673577564, + "machineSerialNumber": "HQ2211HY7J9", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/243030", + "accessLevel": 1, + "syscreated": 1670243377, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.3", + "vpnName": "HQ2211HY7J9", + "vpnOnline": true + }, { "name": "Itschner, Winterthur/ZH | DCP Energie GmbH (2020-00116)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", @@ -5122,15 +12536,15 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163689, - "lastPowerUpOrRestart": 1650097501, + "lastConnection": 1718620313, + "lastPowerUpOrRestart": 1708761020, "machineSerialNumber": "HQ20245EEEE", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/78380", "accessLevel": 1, "syscreated": 1605273870, "vrmOnline": true, - "alarm": true, + "alarm": false, "vpnIp": "10.2.0.246", "vpnName": "HQ20245EEEE", "vpnOnline": true @@ -5140,17 +12554,17 @@ "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "475", "identifier": "0cb2b7b7ee73", - "hasMains": false, + "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 2, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163700, - "lastPowerUpOrRestart": 1643622202, + "lastConnection": 1718620309, + "lastPowerUpOrRestart": 1660901650, "machineSerialNumber": "HQ202452T7J", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/78369", "accessLevel": 1, "syscreated": 1605270735, @@ -5160,47 +12574,297 @@ "vpnName": "HQ202452T7J", "vpnOnline": true }, + { + "name": "Jaggi, Reutigen/BE | Röthlisberger Elektro AG (AB2400002_SN20240003", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab38271", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620305, + "lastPowerUpOrRestart": 1711536526, + "machineSerialNumber": "HQ2247PF64Y", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/390432", + "accessLevel": 1, + "syscreated": 1705313018, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Jakisch, Oberteisendorf/DE | Schupfner & Co. GmbH (AB2300111)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1686c", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620316, + "lastPowerUpOrRestart": 1696516277, + "machineSerialNumber": "HQ2211TRHJ9", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/308722", + "accessLevel": 1, + "syscreated": 1685448159, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.3.251", + "vpnName": "HQ2211TRHJ9", + "vpnOnline": true + }, + { + "name": "Jampen, Seftigen/BE/CH | ES Elektro Seftigen AG (2022-00319)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "500", + "identifier": "48e7da889085", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 3, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620310, + "lastPowerUpOrRestart": 1707716122, + "machineSerialNumber": "HQ2148JWDRD", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/230070", + "accessLevel": 1, + "syscreated": 1667293578, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.215", + "vpnName": "HQ2148JWDRD", + "vpnOnline": true + }, + { + "name": "Jauch 223140, Zimmern DE | Elektrotechnik Graf GmbH (AB2300035)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab2d8be", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620332, + "lastPowerUpOrRestart": 1709082968, + "machineSerialNumber": "HQ2242P36JM", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/291169", + "accessLevel": 1, + "syscreated": 1681721172, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.186", + "vpnName": "HQ2242P36JM", + "vpnOnline": true + }, + { + "name": "Jeanneret,Torgon VD CH | Helion Energy AG (2022-00527)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab0529b", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620343, + "lastPowerUpOrRestart": 1701507019, + "machineSerialNumber": "HQ2128GDNQX", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/264756", + "accessLevel": 1, + "syscreated": 1675781566, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.3.70", + "vpnName": "HQ2128GDNQX", + "vpnOnline": true + }, { "name": "Jenni, Fraubrunnen/BE | Genossenschaft Elektra Jegenstorf (2018-00028)", "inverter": "MultiGrid 48/3000/35-50", "inverterFw": "430", "identifier": "64cfd9881bf1", "hasMains": true, - "hasGenerator": true, + "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, "firmware": "v2.60~r4", - "autoUpdate": "Off", + "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163703, - "lastPowerUpOrRestart": 1650822525, + "lastConnection": 1698315262, + "lastPowerUpOrRestart": 1698310097, "machineSerialNumber": "HQ1803QZ7AF", - "type": "Color Control GX", + "controllerType": "Color Control GX", "vrmLink": "vrm.victronenergy.com/installation/27817", "accessLevel": 1, "syscreated": 1540636677, - "vrmOnline": true, + "vrmOnline": false, "alarm": false, "vpnIp": "10.2.0.175", "vpnName": "HQ1803QZ7AF", + "vpnOnline": false + }, + { + "name": "Jenni, Solothurn/SO | NCoi Menchini AB2300044", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d145", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620347, + "lastPowerUpOrRestart": 1707917513, + "machineSerialNumber": "HQ22173XVYY", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/312124", + "accessLevel": 1, + "syscreated": 1686142700, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.4.17", + "vpnName": "HQ22173XVYY", + "vpnOnline": true + }, + { + "name": "Jenni, Winterthur/ZH/CH | Bouygues E&S In Tec Schweiz AG (2022-00228)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "497", + "identifier": "48e7da87735d", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r8", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620345, + "lastPowerUpOrRestart": 1697719575, + "machineSerialNumber": "HQ2148CADTU", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/202570", + "accessLevel": 1, + "syscreated": 1660296045, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.115", + "vpnName": "HQ2148CADTU", + "vpnOnline": true + }, + { + "name": "Johannhörster, Bernau | EBS Elektrotechnik Stefen GmbH (2022-00445.2)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab1671d", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620321, + "lastPowerUpOrRestart": 1694670920, + "machineSerialNumber": "HQ2211PQG9Z", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/252385", + "accessLevel": 1, + "syscreated": 1672762951, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.36", + "vpnName": "HQ2211PQG9Z", + "vpnOnline": true + }, + { + "name": "Josi, Adelboden/BE | Elektro Gyger AG (2022-00176)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "498", + "identifier": "48e7da86410f", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 4, + "nbPvInverters": 0, + "firmware": "v2.73~r10", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620363, + "lastPowerUpOrRestart": 1667418267, + "machineSerialNumber": "HQ2201P47DM", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/193985", + "accessLevel": 1, + "syscreated": 1657802045, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.84", + "vpnName": "HQ2201P47DM", + "vpnOnline": false + }, + { + "name": "Juanes, Ermenswil/CH | ch-Solar AG (2022-00304)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "500", + "identifier": "48e7da85f06b", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620356, + "lastPowerUpOrRestart": 1695992620, + "machineSerialNumber": "HQ2148HVRWD", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/219211", + "accessLevel": 1, + "syscreated": 1664811078, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.2.178", + "vpnName": "HQ2148HVRWD", "vpnOnline": true }, { "name": "Justin, Kreta/GR | InnovEnergy (2021-00075)", "inverter": "MultiPlus-II 48/5000/70-48", - "inverterFw": "482", + "inverterFw": "498", "identifier": "d41243d302ea", "hasMains": false, - "hasGenerator": false, + "hasGenerator": true, "nbMppts": 3, "nbPvInverters": 0, - "firmware": "v2.66~acd9c91172", + "firmware": "v2.73~r12", "autoUpdate": "Check", - "updateTo": "Testing", - "lastConnection": 1651163705, - "lastPowerUpOrRestart": 1644845697, + "updateTo": "Official release", + "lastConnection": 1718620324, + "lastPowerUpOrRestart": 1709355247, "machineSerialNumber": "HQ2048H9MJG", - "type": "Cerbo GX", + "controllerType": "Cerbo GX", "vrmLink": "vrm.victronenergy.com/installation/114937", "accessLevel": 1, "syscreated": 1624450783, @@ -5210,6 +12874,81 @@ "vpnName": "HQ2048H9MJG", "vpnOnline": true }, + { + "name": "Kabilka, Siegsdorf/DE | Schupfner & Co. GmbH (2022-00321)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "506", + "identifier": "48e7da86e2db", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620359, + "lastPowerUpOrRestart": 1714391511, + "machineSerialNumber": "HQ2201AM73H", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/219987", + "accessLevel": 1, + "syscreated": 1664983354, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.2.184", + "vpnName": "HQ2201AM73H", + "vpnOnline": true + }, + { + "name": "Käch, Cham/CH | Helion Energy AG (2022-00220)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "497", + "identifier": "c0619ab09886", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620341, + "lastPowerUpOrRestart": 1669377083, + "machineSerialNumber": "HQ2148CGKR7", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/239289", + "accessLevel": 1, + "syscreated": 1669374686, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.119", + "vpnName": "HQ2148CGKR7", + "vpnOnline": true + }, + { + "name": "Kaelin Gommiswald CH | Elektro Egli AG(2022-00364)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "48e7da89e5d9", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 4, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620360, + "lastPowerUpOrRestart": 1714638200, + "machineSerialNumber": "HQ2204QZG6Z", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/234724", + "accessLevel": 1, + "syscreated": 1668416818, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.231", + "vpnName": "HQ2204QZG6Z", + "vpnOnline": true + }, { "name": "Kägi, Bronschhofen/SG | B. Stillhart Dach + Fassaden AG (2021-00061)", "inverter": "MultiPlus-II 48/5000/70-48", @@ -5222,10 +12961,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Release-candidate", - "lastConnection": 1651163686, - "lastPowerUpOrRestart": 1646765736, + "lastConnection": 1718620324, + "lastPowerUpOrRestart": 1681735193, "machineSerialNumber": "HQ2046VMJ6U", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/119962", "accessLevel": 1, "syscreated": 1626942236, @@ -5233,24 +12972,74 @@ "alarm": false, "vpnIp": "10.2.1.92", "vpnName": "HQ2046VMJ6U", + "vpnOnline": false + }, + { + "name": "Kaiser, Dürrenäsch/AG | meierelektro AG (AB2300204) SN20230161", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "506", + "identifier": "c0619ab1d1c1", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620339, + "lastPowerUpOrRestart": 1701177751, + "machineSerialNumber": "HQ2217VRTMM", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/337486", + "accessLevel": 1, + "syscreated": 1691735665, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Kaiser, Eschlikon/TG | EWE Elektro AG (2022-00493)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab16786", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620323, + "lastPowerUpOrRestart": 1713786048, + "machineSerialNumber": "HQ22116FEDM", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/264528", + "accessLevel": 1, + "syscreated": 1675762138, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.68", + "vpnName": "HQ22116FEDM", "vpnOnline": true }, { "name": "Kaiser, Hünstetten/DE | EEG Autark GmbH (2021-00163)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "485", + "inverterFw": "502", "identifier": "e415f6fd8d1d", "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163698, - "lastPowerUpOrRestart": 1647278336, + "lastConnection": 1718620312, + "lastPowerUpOrRestart": 1692797640, "machineSerialNumber": "HQ20462CVCG", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/136710", "accessLevel": 1, "syscreated": 1636041165, @@ -5263,19 +13052,19 @@ { "name": "Kamm, Grüningen/ZH | ch-Solar AG (2021-00235)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "490", + "inverterFw": "502", "identifier": "102c6b8616a1", "hasMains": false, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163723, - "lastPowerUpOrRestart": 1648106614, + "lastConnection": 1718620359, + "lastPowerUpOrRestart": 1681222153, "machineSerialNumber": "HQ2118KZHAT", - "type": "Cerbo GX", + "controllerType": "Cerbo GX", "vrmLink": "vrm.victronenergy.com/installation/155832", "accessLevel": 1, "syscreated": 1644850096, @@ -5286,21 +13075,46 @@ "vpnOnline": true }, { - "name": "Karl, Oberarth/SZ | Elektro Ottinger AG (2020-00135)", - "inverter": "MultiPlus-II 48/5000/70-48", - "inverterFw": "475", - "identifier": "0cb2b7cd2e6d", + "name": "Kappeler, Cheyres/FR | Breu AG (2022-00398)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "500", + "identifier": "c0619ab104b8", "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.73~r6", + "firmware": "v2.73~r12", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163706, - "lastPowerUpOrRestart": 1644163166, + "lastConnection": 1718620342, + "lastPowerUpOrRestart": 1697704764, + "machineSerialNumber": "HQ2204KJN7U", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/238417", + "accessLevel": 1, + "syscreated": 1669205355, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.244", + "vpnName": "HQ2204KJN7U", + "vpnOnline": true + }, + { + "name": "Karl, Oberarth/SZ | Elektro Ottinger AG (2020-00135)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "475", + "identifier": "0cb2b7cd2e6d", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620322, + "lastPowerUpOrRestart": 1717921785, "machineSerialNumber": "HQ2028CXUN4", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/86789", "accessLevel": 1, "syscreated": 1606290506, @@ -5318,14 +13132,14 @@ "hasMains": false, "hasGenerator": false, "nbMppts": 0, - "nbPvInverters": 1, + "nbPvInverters": 2, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163719, - "lastPowerUpOrRestart": 1637230723, + "lastConnection": 1718620325, + "lastPowerUpOrRestart": 1718590386, "machineSerialNumber": "HQ2107RINZ6", - "type": "MultiPlus-II GX", + "controllerType": "MultiPlus-II GX", "vrmLink": "vrm.victronenergy.com/installation/129648", "accessLevel": 1, "syscreated": 1632412727, @@ -5336,21 +13150,46 @@ "vpnOnline": true }, { - "name": "Kathriner, Wilen/OW | Werth AG (2019-00016)", + "name": "Kasper, Appenzell/AI | Elektro Sonderer AG (AB2300216) SN20230107", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab2e12e", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620330, + "lastPowerUpOrRestart": 1705731905, + "machineSerialNumber": "HQ2242VKPWY", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/321268", + "accessLevel": 1, + "syscreated": 1688031527, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Kathriner, Wilen/OW | Dach und Solar AG (2019-00016)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "494", "identifier": "0cae7d0dfb00", "hasMains": true, "hasGenerator": false, - "nbMppts": 0, + "nbMppts": 1, "nbPvInverters": 1, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163670, - "lastPowerUpOrRestart": 1648797786, + "lastConnection": 1718620338, + "lastPowerUpOrRestart": 1711732706, "machineSerialNumber": "HQ18371NFFS", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/39037", "accessLevel": 1, "syscreated": 1561791154, @@ -5374,33 +13213,83 @@ "updateTo": "Release-candidate", "lastConnection": 1533887616, "lastPowerUpOrRestart": 1533823973, - "machineSerialNumber": null, - "type": "Venus GX", + "machineSerialNumber": "unknown", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/24461", "accessLevel": 1, "syscreated": 1533822699, - "vrmOnline": true, + "vrmOnline": false, "alarm": false, "vpnIp": "", "vpnName": "", "vpnOnline": false }, { - "name": "Keller, Schachen/LU | Bouygues AG (2020-00069)", + "name": "Keller, CH | Grande AG (2022-00402)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab167ea", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620313, + "lastPowerUpOrRestart": 1678112830, + "machineSerialNumber": "HQ2211P2JA6", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/243482", + "accessLevel": 1, + "syscreated": 1670331769, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.6", + "vpnName": "HQ2211P2JA6", + "vpnOnline": true + }, + { + "name": "Keller, Fulenbach/SO |von arx systems ag (2023-00098)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab167d3", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620342, + "lastPowerUpOrRestart": 1679643008, + "machineSerialNumber": "HQ2211MWDXY", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/276704", + "accessLevel": 1, + "syscreated": 1678356195, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.127", + "vpnName": "HQ2211MWDXY", + "vpnOnline": true + }, + { + "name": "Keller, Schachen/LU | Helion Energy AG (2020-00069)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "475", + "inverterFw": "502", "identifier": "0c1c5712701b", - "hasMains": false, + "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.60~ditto", + "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163682, - "lastPowerUpOrRestart": 1647415595, + "lastConnection": 1718620326, + "lastPowerUpOrRestart": 1718442010, "machineSerialNumber": "HQ20028TNET", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/68850", "accessLevel": 1, "syscreated": 1597419135, @@ -5410,27 +13299,127 @@ "vpnName": "HQ20028TNET", "vpnOnline": true }, + { + "name": "Keller, Züberwangen/SG | Elektro Iten (2022-00119)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "490", + "identifier": "48e7da8971b5", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620348, + "lastPowerUpOrRestart": 1679479697, + "machineSerialNumber": "HQ22013ZNUE", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/176376", + "accessLevel": 1, + "syscreated": 1652368482, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.19", + "vpnName": "HQ22013ZNUE", + "vpnOnline": true + }, + { + "name": "Kessler, Uetliburg/SG 2022 -00410", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "500", + "identifier": "c0619ab1068d", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620371, + "lastPowerUpOrRestart": 1712810981, + "machineSerialNumber": "HQ2204THWEE", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/243844", + "accessLevel": 1, + "syscreated": 1670410674, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.9", + "vpnName": "HQ2204THWEE", + "vpnOnline": true + }, + { + "name": "Khusainau ,Kastanienbaum /LU | asons ag (2022-00459)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "498", + "identifier": "c0619ab16777", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620368, + "lastPowerUpOrRestart": 1696654647, + "machineSerialNumber": "HQ2211D6FFN", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/254001", + "accessLevel": 1, + "syscreated": 1673271868, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.3.42", + "vpnName": "HQ2211D6FFN", + "vpnOnline": true + }, + { + "name": "Kieser, Lautertal/DE | Daniel Gebert Technik Gebert (AB2300046)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d191", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620353, + "lastPowerUpOrRestart": 1689687948, + "machineSerialNumber": "HQ2217NXYTE", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/311980", + "accessLevel": 1, + "syscreated": 1686128155, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.4.15", + "vpnName": "HQ2217NXYTE", + "vpnOnline": true + }, { "name": "Kilchenmann, Koppigen/BE | Elektro Grogg AG (2020-00002)", "inverter": "MultiPlus-II 48/5000/70-48", - "inverterFw": "471", + "inverterFw": "502", "identifier": "0479b7efa3f8", "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.64~c01f5a2ca1", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163679, - "lastPowerUpOrRestart": 1629182647, + "lastConnection": 1718620369, + "lastPowerUpOrRestart": 1717572483, "machineSerialNumber": "HQ1933ICK84", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/56279", "accessLevel": 1, "syscreated": 1584512741, "vrmOnline": true, - "alarm": false, + "alarm": true, "vpnIp": "10.2.0.120", "vpnName": "HQ1933ICK84", "vpnOnline": true @@ -5444,49 +13433,101 @@ "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 2, - "firmware": "v2.66~rc5", - "autoUpdate": "On", - "updateTo": "Release-candidate", - "lastConnection": 1651163678, - "lastPowerUpOrRestart": 1629709181, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620339, + "lastPowerUpOrRestart": 1702905233, "machineSerialNumber": "HQ2005MYQNU", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/79100", "accessLevel": 1, "syscreated": 1605853871, "vrmOnline": true, - "alarm": false, + "alarm": true, "vpnIp": "10.2.0.248", "vpnName": "HQ2005MYQNU", "vpnOnline": true }, { - "name": "Kinderhaus Accra/GH |Foundation (2021-00105.2)", + "name": "Kilmarx, Weinbreite DE | EBS Elektrotechnik Stefan GmbH (2022-00231)", "inverter": "MultiPlus-II 48/5000/70-48", - "inverterFw": "478", - "identifier": "94e36dce7e64", - "hasMains": false, + "inverterFw": "502", + "identifier": "48e7da885ad7", + "hasMains": true, "hasGenerator": false, "nbMppts": 1, - "nbPvInverters": 0, - "firmware": "v2.60~ditto", - "autoUpdate": "Off", + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651156822, - "lastPowerUpOrRestart": 1651156762, - "machineSerialNumber": "HQ20469IA6H", - "type": "Venus GX", - "vrmLink": "vrm.victronenergy.com/installation/120656", + "lastConnection": 1718620354, + "lastPowerUpOrRestart": 1690867974, + "machineSerialNumber": "HQ2148H97JR", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/207323", "accessLevel": 1, - "syscreated": 1627365942, + "syscreated": 1661761897, "vrmOnline": true, "alarm": false, - "vpnIp": "10.2.1.94", - "vpnName": "HQ20469IA6H", + "vpnIp": "10.2.2.132", + "vpnName": "HQ2148H97JR", + "vpnOnline": true + }, + { + "name": "Kirst - Erschwil /TS | STARK STROM GmbH (2022-00454)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab16624", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620369, + "lastPowerUpOrRestart": 1709123967, + "machineSerialNumber": "HQ2211N972D", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/257180", + "accessLevel": 1, + "syscreated": 1674046692, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.57", + "vpnName": "HQ2211N972D", + "vpnOnline": true + }, + { + "name": "KIT de mesure N°1 63A (2020-00099.4)", + "inverter": "unknown", + "inverterFw": "unknown", + "identifier": "38d2695f3fc6", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.51", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1715699272, + "lastPowerUpOrRestart": 1715557792, + "machineSerialNumber": "HQ2024EESH5", + "controllerType": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/71152", + "accessLevel": 1, + "syscreated": 1599451219, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", "vpnOnline": false }, { - "name": "Kit de Mesure 100A (2020-00099.3)", + "name": "Kit de Mesure N°2 63A (2020-00099.3)", + "inverter": "unknown", + "inverterFw": "unknown", "identifier": "1862e4e357d5", "hasMains": false, "hasGenerator": false, @@ -5495,10 +13536,10 @@ "firmware": "v2.51", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1635935407, - "lastPowerUpOrRestart": 1635766195, + "lastConnection": 1712224689, + "lastPowerUpOrRestart": 1712224090, "machineSerialNumber": "HQ2024VICKN", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/71142", "accessLevel": 1, "syscreated": 1599421785, @@ -5509,46 +13550,121 @@ "vpnOnline": false }, { - "name": "KIT de mesure 65A (2020-00099.4)", - "inverter": "MultiPlus Compact 24/2000/50-30", - "inverterFw": "430", - "identifier": "38d2695f3fc6", - "hasMains": false, + "name": "Kläui, Binningen/BL | STARK STROM GmbH (2022-00323)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da89dcc1", + "hasMains": true, "hasGenerator": false, - "nbMppts": 2, - "nbPvInverters": 0, - "firmware": "v2.51", - "autoUpdate": false, - "updateTo": false, - "lastConnection": 1635942747, - "lastPowerUpOrRestart": 47, - "machineSerialNumber": "HQ2024EESH5", - "type": "Venus GX", - "vrmLink": "vrm.victronenergy.com/installation/71152", + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620370, + "lastPowerUpOrRestart": 1715369756, + "machineSerialNumber": "HQ2148GA2R6", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/221753", "accessLevel": 1, - "syscreated": 1599451219, + "syscreated": 1665413937, "vrmOnline": true, - "alarm": true, - "vpnIp": "", - "vpnName": "", - "vpnOnline": false + "alarm": false, + "vpnIp": "10.2.2.189", + "vpnName": "HQ2148GA2R6", + "vpnOnline": true }, { - "name": "Kloibhfer, Neumarkt/AT | Rainer Kloibhofer (2021-00197)", + "name": "Klaus, Reitnau/AG I Kunz-Solartech GmbH [2022-00483]", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab16774", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620349, + "lastPowerUpOrRestart": 1706901079, + "machineSerialNumber": "HQ2211273NF", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/256471", + "accessLevel": 1, + "syscreated": 1673882222, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.54", + "vpnName": "HQ2211273NF", + "vpnOnline": true + }, + { + "name": "Klingel, Sachseln/OW | EWO Gebäudetechnik AG (2023-00008)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab1652e", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620348, + "lastPowerUpOrRestart": 1709196088, + "machineSerialNumber": "HQ2211XR39Q", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/284296", + "accessLevel": 1, + "syscreated": 1680075587, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.3.159", + "vpnName": "HQ2211XR39Q", + "vpnOnline": true + }, + { + "name": "Klingenfuss, Neunkirch/SH | BEsolar GmbH (2022-00490)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab169e4", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620367, + "lastPowerUpOrRestart": 1685023355, + "machineSerialNumber": "HQ22116JYJH", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/268711", + "accessLevel": 1, + "syscreated": 1676624464, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.3.94", + "vpnName": "HQ22116JYJH", + "vpnOnline": true + }, + { + "name": "Kloibhofer, Neumarkt/AT | Rainer Kloibhofer (2021-00154)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "485", "identifier": "e415f6fd7ceb", "hasMains": false, "hasGenerator": false, - "nbMppts": 1, + "nbMppts": 2, "nbPvInverters": 1, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163686, - "lastPowerUpOrRestart": 1642693910, + "lastConnection": 1718620386, + "lastPowerUpOrRestart": 1697038520, "machineSerialNumber": "HQ20462MCE3", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/134087", "accessLevel": 1, "syscreated": 1634808439, @@ -5559,28 +13675,103 @@ "vpnOnline": true }, { - "name": "Knutti, Erlenbach/BE | InnovEnergy (2018-00012)", + "name": "Kniele, Bad Buchau/DE | Elektro und Gebäudetechnik Lemmle (AB2300085)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab2ddd9", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620338, + "lastPowerUpOrRestart": 1698232789, + "machineSerialNumber": "HQ2242HTM63", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/309077", + "accessLevel": 1, + "syscreated": 1685523472, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.253", + "vpnName": "HQ2242HTM63", + "vpnOnline": true + }, + { + "name": "Knobel, Altendorf/SZ | Steinegger Elektro AG (AB2300274) SN20230210", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "506", + "identifier": "c0619ab38850", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620326, + "lastPowerUpOrRestart": 1701890578, + "machineSerialNumber": "HQ22476UHN4", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/354252", + "accessLevel": 1, + "syscreated": 1695976433, + "vrmOnline": true, + "alarm": true, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Knutti, Erlenbach/BE | InnovEnergy (2018-00012) neu", "inverter": "MultiGrid 48/3000/35-50", - "inverterFw": "459", - "identifier": "606405500f4d", + "inverterFw": "508", + "identifier": "c0619ab1d0e5", "hasMains": false, "hasGenerator": false, "nbMppts": 1, "nbPvInverters": 0, - "firmware": "v2.73~r6", + "firmware": "v2.73~r12", "autoUpdate": "Check", - "updateTo": "Release-candidate", - "lastConnection": 1651163709, - "lastPowerUpOrRestart": 1650779585, - "machineSerialNumber": "HQ1738QVWNE", - "type": "Venus GX", - "vrmLink": "vrm.victronenergy.com/installation/24832", + "updateTo": "Testing", + "lastConnection": 1718620385, + "lastPowerUpOrRestart": 1715934785, + "machineSerialNumber": "HQ2217YMYNU", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/393503", "accessLevel": 1, - "syscreated": 1534766253, + "syscreated": 1706092920, "vrmOnline": true, "alarm": false, - "vpnIp": "10.2.1.136", - "vpnName": "HQ1738QVWNE", + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Koblet, Oberwil/BL | Stark Strom GmbH (AB2300002)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab167ff", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620365, + "lastPowerUpOrRestart": 1690185298, + "machineSerialNumber": "HQ2211Q7C9R", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/289978", + "accessLevel": 1, + "syscreated": 1681387539, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.182", + "vpnName": "HQ2211Q7C9R", "vpnOnline": true }, { @@ -5588,17 +13779,17 @@ "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "471", "identifier": "0479b7a3e42a", - "hasMains": false, - "hasGenerator": false, + "hasMains": true, + "hasGenerator": true, "nbMppts": 0, "nbPvInverters": 1, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163712, - "lastPowerUpOrRestart": 1646040851, + "lastConnection": 1718620370, + "lastPowerUpOrRestart": 1711273024, "machineSerialNumber": "HQ1933HVLMK", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/57990", "accessLevel": 1, "syscreated": 1586841632, @@ -5608,22 +13799,72 @@ "vpnName": "HQ1933HVLMK", "vpnOnline": true }, + { + "name": "Kochermatte, Aegerten/BE | EnergyOptimizer GmbH - Solarenergie (2023-00009)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab1680b", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718489289, + "lastPowerUpOrRestart": 1718486048, + "machineSerialNumber": "HQ2211PKPCJ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/281639", + "accessLevel": 1, + "syscreated": 1679489214, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.149", + "vpnName": "HQ2211PKPCJ", + "vpnOnline": false + }, + { + "name": "Kochermatte, Aegerten/BE | EnergyOptimizer GmbH - Solarenergie (2023-00009) Nue", + "inverter": "unknown", + "inverterFw": "unknown", + "identifier": "c0619ab4d3ae", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718608772, + "lastPowerUpOrRestart": 1718608353, + "machineSerialNumber": "HQ2308NGUM2", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/448683", + "accessLevel": 1, + "syscreated": 1718606982, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, { "name": "Köchlin, Gümmligen/BE | Gerber AG (2021-00185)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "490", "identifier": "e415f6f18ebb", - "hasMains": true, + "hasMains": false, "hasGenerator": false, "nbMppts": 2, "nbPvInverters": 0, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163722, - "lastPowerUpOrRestart": 1647277050, + "lastConnection": 1718620383, + "lastPowerUpOrRestart": 1660901671, "machineSerialNumber": "HQ2101B335J", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/139152", "accessLevel": 1, "syscreated": 1637173809, @@ -5633,6 +13874,81 @@ "vpnName": "HQ2101B335J", "vpnOnline": true }, + { + "name": "Koller Apenzell/AI | Elektro Sonderer AG (AB2300241) SN20230138", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1dd4f", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620379, + "lastPowerUpOrRestart": 1717596222, + "machineSerialNumber": "HQ2219KWXRU", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/440436", + "accessLevel": 1, + "syscreated": 1716809159, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Kossobutzki, Mudenbach/DE | Dirk Kossobutzki (2021-00213)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "48e7da857daf", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620392, + "lastPowerUpOrRestart": 1661761027, + "machineSerialNumber": "HQ2128NDE9X", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/149822", + "accessLevel": 1, + "syscreated": 1642169306, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.180", + "vpnName": "HQ2128NDE9X", + "vpnOnline": true + }, + { + "name": "Kraemmer Rimsting/DE| Schupfner & Co. GmbH (AB2300194)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d0cf", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1715703099, + "lastPowerUpOrRestart": 1715703087, + "machineSerialNumber": "HQ221749NU2", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/336387", + "accessLevel": 1, + "syscreated": 1691500457, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, { "name": "Kramer, Galmiz | KWenergy GmbH (2020-00118)", "inverter": "MultiPlus-II 48/5000/70-48", @@ -5642,13 +13958,13 @@ "hasGenerator": false, "nbMppts": 2, "nbPvInverters": 0, - "firmware": "v2.66~rc5", + "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163734, - "lastPowerUpOrRestart": 1626952084, + "lastConnection": 1718620376, + "lastPowerUpOrRestart": 1715353355, "machineSerialNumber": "HQ2042Y859D", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/105985", "accessLevel": 1, "syscreated": 1619517220, @@ -5666,14 +13982,14 @@ "hasMains": true, "hasGenerator": true, "nbMppts": 0, - "nbPvInverters": 2, - "firmware": "v2.60~ditto", + "nbPvInverters": 1, + "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163734, - "lastPowerUpOrRestart": 1626003509, + "lastConnection": 1718620341, + "lastPowerUpOrRestart": 1660901658, "machineSerialNumber": "HQ1751QHCI_", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/77528", "accessLevel": 1, "syscreated": 1604569954, @@ -5681,32 +13997,32 @@ "alarm": false, "vpnIp": "10.2.1.7", "vpnName": "HQ1751QHCI_", - "vpnOnline": true + "vpnOnline": false }, { - "name": "Krebs, Boll/BE | Burkhard Elektro AG (2021-00177)", + "name": "Krebs Boll BE|Burkhard Elektro ( 2021-00177)", "inverter": "MultiPlus-II 48/5000/70-48", - "inverterFw": "485", - "identifier": "0035ff9a72a4", + "inverterFw": "500", + "identifier": "c0619ab2e3b5", "hasMains": true, "hasGenerator": false, - "nbMppts": 2, - "nbPvInverters": 0, - "firmware": "v2.73~r6", + "nbMppts": 4, + "nbPvInverters": 1, + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163692, - "lastPowerUpOrRestart": 1647278303, - "machineSerialNumber": "HQ2110V1RNB", - "type": "Venus GX", - "vrmLink": "vrm.victronenergy.com/installation/137794", + "lastConnection": 1718620336, + "lastPowerUpOrRestart": 1716901622, + "machineSerialNumber": "HQ2242KF9QZ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/265536", "accessLevel": 1, - "syscreated": 1636554140, + "syscreated": 1675941920, "vrmOnline": true, "alarm": false, - "vpnIp": "10.2.1.152", - "vpnName": "HQ2110V1RNB", - "vpnOnline": true + "vpnIp": "10.2.3.73", + "vpnName": "HQ2242KF9QZ", + "vpnOnline": false }, { "name": "Krebs, Kaufdorf/BE | Breu AG (2021-00073)", @@ -5720,10 +14036,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163688, - "lastPowerUpOrRestart": 1649429030, + "lastConnection": 1718620372, + "lastPowerUpOrRestart": 1718348813, "machineSerialNumber": "HQ19334JFSC", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/54446", "accessLevel": 1, "syscreated": 1582640793, @@ -5738,17 +14054,17 @@ "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "490", "identifier": "48e7da892335", - "hasMains": false, + "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163712, - "lastPowerUpOrRestart": 1649115016, + "lastConnection": 1718620355, + "lastPowerUpOrRestart": 1660901614, "machineSerialNumber": "HQ2139DWZKJ", - "type": "Cerbo GX", + "controllerType": "Cerbo GX", "vrmLink": "vrm.victronenergy.com/installation/163616", "accessLevel": 1, "syscreated": 1647965475, @@ -5759,10 +14075,85 @@ "vpnOnline": true }, { - "name": "Künzi, Schafhausen/BE | Elentec GmbH (2020-00140)", + "name": "Kriegisch, Tamsweg/AT | GetroniX e.U. (2022-00477)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab12a8b", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1679478019, + "lastPowerUpOrRestart": 1679413216, + "machineSerialNumber": "HQ2208AEEAZ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/258933", + "accessLevel": 1, + "syscreated": 1674468406, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.58", + "vpnName": "HQ2208AEEAZ", + "vpnOnline": false + }, + { + "name": "Kübli, Bolligen/BE | Bantiger Elektro AG (2022-00512)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab2dd27", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620384, + "lastPowerUpOrRestart": 1683540394, + "machineSerialNumber": "HQ2242FRRAD", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/273056", + "accessLevel": 1, + "syscreated": 1677589888, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.113", + "vpnName": "HQ2242FRRAD", + "vpnOnline": true + }, + { + "name": "Kuhn, Mährwil/TG | Gebr. Willi Elektro AG (2023-00045)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab1d1b1", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620351, + "lastPowerUpOrRestart": 1690867179, + "machineSerialNumber": "HQ22172NGZD", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/289569", + "accessLevel": 1, + "syscreated": 1681307443, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.180", + "vpnName": "HQ22172NGZD", + "vpnOnline": true + }, + { + "name": "Kümin, Schattdorf/UR | EWA-energieURI AG (2021-00129)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "475", - "identifier": "94e36dce992b", + "inverterFw": "502", + "identifier": "0479b7aeadbf", "hasMains": true, "hasGenerator": false, "nbMppts": 0, @@ -5770,10 +14161,85 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163738, - "lastPowerUpOrRestart": 1641999798, + "lastConnection": 1718620369, + "lastPowerUpOrRestart": 1660901670, + "machineSerialNumber": "HQ2046PXCSV", + "controllerType": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/128444", + "accessLevel": 1, + "syscreated": 1631792297, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.119", + "vpnName": "HQ2046PXCSV", + "vpnOnline": true + }, + { + "name": "Küng, Küssnacht/SZ | ALVA Systems AG (2022-00539)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "501", + "identifier": "c0619ab16576", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620381, + "lastPowerUpOrRestart": 1696434900, + "machineSerialNumber": "HQ2211W2QUQ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/265478", + "accessLevel": 1, + "syscreated": 1675935878, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.74", + "vpnName": "HQ2211W2QUQ", + "vpnOnline": true + }, + { + "name": "Künzi, Kandersteg/BE | Allenbach Holzbau und Solartechnik AG (2022-00135)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "48e7da8a23c3", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620351, + "lastPowerUpOrRestart": 1701489320, + "machineSerialNumber": "HQ2201PCFMP", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/179454", + "accessLevel": 1, + "syscreated": 1653384986, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.25", + "vpnName": "HQ2201PCFMP", + "vpnOnline": true + }, + { + "name": "Künzi, Schafhausen i.E./BE | Elentec GmbH (2020-00140)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "500", + "identifier": "94e36dce992b", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620354, + "lastPowerUpOrRestart": 1715701926, "machineSerialNumber": "HQ2028D8MVW", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/87912", "accessLevel": 1, "syscreated": 1607065433, @@ -5784,21 +14250,21 @@ "vpnOnline": true }, { - "name": "Künzle, Dozwil/TG | Swiss Photovoltaik GmbH (2020-00104)", + "name": "Künzle, Dozwil/TG | Swiss Photovoltaik GmbH (2020-00033)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "477", + "inverterFw": "497", "identifier": "0479b7a3946b", "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.60~ditto", + "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163736, - "lastPowerUpOrRestart": 1635433521, + "lastConnection": 1718620374, + "lastPowerUpOrRestart": 1706020607, "machineSerialNumber": "HQ19331Z9CV", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/55283", "accessLevel": 1, "syscreated": 1583476459, @@ -5808,6 +14274,31 @@ "vpnName": "HQ19331Z9CV", "vpnOnline": true }, + { + "name": "Küster Herbert Oberriert/SG | Kobler Energie AG (2022-00412)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab16773", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620388, + "lastPowerUpOrRestart": 1709734283, + "machineSerialNumber": "HQ2211EMQQ3", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/245655", + "accessLevel": 1, + "syscreated": 1670844980, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.13", + "vpnName": "HQ2211EMQQ3", + "vpnOnline": true + }, { "name": "Kuster, Goldingen/SG | Elektro Egli AG (2021-00142)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", @@ -5820,10 +14311,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163687, - "lastPowerUpOrRestart": 1647278315, + "lastConnection": 1718620357, + "lastPowerUpOrRestart": 1660901667, "machineSerialNumber": "HQ2101JBZQC", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/130493", "accessLevel": 1, "syscreated": 1632929608, @@ -5834,21 +14325,96 @@ "vpnOnline": true }, { - "name": "Lack, Büsserach/SO | STARK STROM GmbH (2021-00051)", - "inverter": "MultiPlus-II 48/5000/70-48", - "inverterFw": "481", - "identifier": "94e36dcea4e3", - "hasMains": true, - "hasGenerator": true, - "nbMppts": 1, - "nbPvInverters": 2, - "firmware": "v2.73~r6", + "name": "Kynast, Burg/DE | Optema - Ronald Koch (AB2300040)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d188", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163702, - "lastPowerUpOrRestart": 1650420610, + "lastConnection": 1718620369, + "lastPowerUpOrRestart": 1708732387, + "machineSerialNumber": "HQ2217MTYFU", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/293068", + "accessLevel": 1, + "syscreated": 1682062316, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.198", + "vpnName": "HQ2217MTYFU", + "vpnOnline": true + }, + { + "name": "L-Schule Freital / DE | Elektro- und Gebäudetechnik Sebnitz e.K. (AB2300256) SN20230199", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "506", + "identifier": "c0619ab3941e", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620355, + "lastPowerUpOrRestart": 1714167321, + "machineSerialNumber": "HQ2247PUQ2E", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/348022", + "accessLevel": 1, + "syscreated": 1694498243, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "L.von Arx, Niederbuchsiten/SO| von arx systems ag (2022-00005)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "48e7da890793", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620364, + "lastPowerUpOrRestart": 1714471498, + "machineSerialNumber": "HQ2139HY2AU", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/157594", + "accessLevel": 1, + "syscreated": 1645609146, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.208", + "vpnName": "HQ2139HY2AU", + "vpnOnline": true + }, + { + "name": "Lack, Büsserach/SO | SF-SOL /2021-00051)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "94e36dcea4e3", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 2, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620402, + "lastPowerUpOrRestart": 1718459720, "machineSerialNumber": "HQ2042HEN39", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/106377", "accessLevel": 1, "syscreated": 1619700457, @@ -5860,6 +14426,8 @@ }, { "name": "Lager_SOB | 32580 | (2020-00079)", + "inverter": "unknown", + "inverterFw": "unknown", "identifier": "689e196e06b6", "hasMains": true, "hasGenerator": true, @@ -5871,7 +14439,7 @@ "lastConnection": 1600851368, "lastPowerUpOrRestart": 1600851359, "machineSerialNumber": "HQ20245M4RI", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/72857", "accessLevel": 1, "syscreated": 1600850567, @@ -5881,31 +14449,181 @@ "vpnName": "HQ20245M4RI", "vpnOnline": false }, + { + "name": "Landolf, Märwil/TG | Gebr. Willi Elektro AG (AB2300263) SN20230202", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab388de", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620391, + "lastPowerUpOrRestart": 1698395195, + "machineSerialNumber": "HQ2247UWT7U", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/350944", + "accessLevel": 1, + "syscreated": 1695201978, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Lang, Kaltenbach/TG | EWE Elektro AG (2022-00389)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "500", + "identifier": "48e7da88b9a1", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r10", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620392, + "lastPowerUpOrRestart": 1671726758, + "machineSerialNumber": "HQ22119ZVN9", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/234048", + "accessLevel": 1, + "syscreated": 1668176652, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.232", + "vpnName": "HQ22119ZVN9", + "vpnOnline": true + }, + { + "name": "Laut, Lauterbach DE | EBS Elektrotechnik Stefan GmbH (2022-00102)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da85c767", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620350, + "lastPowerUpOrRestart": 1690446360, + "machineSerialNumber": "HQ2148UK7R9", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/172696", + "accessLevel": 1, + "syscreated": 1651152180, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.11", + "vpnName": "HQ2148UK7R9", + "vpnOnline": true + }, + { + "name": "Lautenschläger,Widnau/SG/CH | Albert Nüesch AG (AB2300304) SN20230211", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab3821e", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620361, + "lastPowerUpOrRestart": 1710515794, + "machineSerialNumber": "HQ2247D7Y4N", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/372578", + "accessLevel": 1, + "syscreated": 1700491725, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, { "name": "Ledergerber, Aesch/LU | ENPRO Energiearchitekten AG (2020-00136)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "475", + "inverterFw": "502", "identifier": "0cb2b7b9700b", "hasMains": true, "hasGenerator": false, "nbMppts": 0, - "nbPvInverters": 0, - "firmware": "v2.73~r6", + "nbPvInverters": 1, + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163706, - "lastPowerUpOrRestart": 1647441592, + "lastConnection": 1718620354, + "lastPowerUpOrRestart": 1714458278, "machineSerialNumber": "HQ2028CXXNS", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/86965", "accessLevel": 1, "syscreated": 1606384979, "vrmOnline": true, - "alarm": false, + "alarm": true, "vpnIp": "10.2.0.251", "vpnName": "HQ2028CXXNS", "vpnOnline": true }, + { + "name": "Lehmann, Hessenaue | Daniel Gebert Technik Gebert (AB2300234) SN20230185", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "506", + "identifier": "c0619ab38868", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1717351720, + "lastPowerUpOrRestart": 1701357703, + "machineSerialNumber": "HQ2247C2M9Y", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/344334", + "accessLevel": 1, + "syscreated": 1693484029, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Leibundgut, Belp/BE | Breu AG (2022-00424)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab098a4", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620362, + "lastPowerUpOrRestart": 1678360047, + "machineSerialNumber": "HQ2148EA9DU", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/246067", + "accessLevel": 1, + "syscreated": 1670926633, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.14", + "vpnName": "HQ2148EA9DU", + "vpnOnline": true + }, { "name": "Leibundgut, Müntschemier/BE | Elektro Böhlen AG (2020-00082)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", @@ -5915,13 +14633,13 @@ "hasGenerator": true, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.66~rc5", + "firmware": "v2.73~r6", "autoUpdate": "Check", - "updateTo": "Release-candidate", - "lastConnection": 1651163743, - "lastPowerUpOrRestart": 1630920059, + "updateTo": "Official release", + "lastConnection": 1718620390, + "lastPowerUpOrRestart": 1703590756, "machineSerialNumber": "HQ2005SNQ4J", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/70233", "accessLevel": 1, "syscreated": 1598601577, @@ -5932,21 +14650,46 @@ "vpnOnline": true }, { - "name": "Lenz, Baar/ZG | Alex Gemperle AG (2021-00006)", + "name": "Leikauf Peter, Utting/DE | PV Total GmbH & Co. KG (AB2300210) SN20230132", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "481", - "identifier": "1cba8cd5e640", + "inverterFw": "502", + "identifier": "c0619ab2e3c6", "hasMains": true, - "hasGenerator": true, + "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.60~ditto", + "firmware": "v2.73~r12", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163710, - "lastPowerUpOrRestart": 1642600644, + "lastConnection": 1718620381, + "lastPowerUpOrRestart": 1712923695, + "machineSerialNumber": "HQ2242MGCWN", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/325544", + "accessLevel": 1, + "syscreated": 1689060995, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Lenz, Baar/ZG | Alex Gemperle AG (2021-00006)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "1cba8cd5e640", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620369, + "lastPowerUpOrRestart": 1701782016, "machineSerialNumber": "HQ20246SBZP", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/118688", "accessLevel": 1, "syscreated": 1626263559, @@ -5956,22 +14699,47 @@ "vpnName": "HQ20246SBZP", "vpnOnline": true }, + { + "name": "Les Mesanges , Nyon/VD | OptimalLiving SA (2022-00055)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "500", + "identifier": "48e7da87fb2d", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620394, + "lastPowerUpOrRestart": 1676369163, + "machineSerialNumber": "HQ2148C9YEW", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/200178", + "accessLevel": 1, + "syscreated": 1659597449, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.106", + "vpnName": "HQ2148C9YEW", + "vpnOnline": true + }, { "name": "Leu, Neunkirch/SH | Vivo Solar GmbH (2020-00085)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "475", + "inverterFw": "502", "identifier": "0c1c5701916d", - "hasMains": false, + "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 2, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163729, - "lastPowerUpOrRestart": 1650523616, + "lastConnection": 1718620364, + "lastPowerUpOrRestart": 1704733448, "machineSerialNumber": "IE1728HEJ77", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/71470", "accessLevel": 1, "syscreated": 1599651491, @@ -5989,14 +14757,14 @@ "hasMains": true, "hasGenerator": true, "nbMppts": 0, - "nbPvInverters": 5, + "nbPvInverters": 4, "firmware": "v2.60~r4", - "autoUpdate": "Off", + "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163704, - "lastPowerUpOrRestart": 1651044867, + "lastConnection": 1718620386, + "lastPowerUpOrRestart": 1718302855, "machineSerialNumber": "HQ17467ACA3", - "type": "Color Control GX", + "controllerType": "Color Control GX", "vrmLink": "vrm.victronenergy.com/installation/29277", "accessLevel": 1, "syscreated": 1543908517, @@ -6006,10 +14774,35 @@ "vpnName": "HQ17467ACA3", "vpnOnline": true }, + { + "name": "Leupold, Stettlen/BE | hpwtec AG (2022-00240)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "500", + "identifier": "48e7da880e13", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 3, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620371, + "lastPowerUpOrRestart": 1676974270, + "machineSerialNumber": "HQ2201HZ7DC", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/205282", + "accessLevel": 1, + "syscreated": 1661155161, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.124", + "vpnName": "HQ2201HZ7DC", + "vpnOnline": true + }, { "name": "LG25 REACT H2020Español (2021-00071)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "496", + "inverterFw": "497", "identifier": "028181c3a7c0", "hasMains": false, "hasGenerator": false, @@ -6018,19 +14811,69 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163730, - "lastPowerUpOrRestart": 1649254809, + "lastConnection": 1718620401, + "lastPowerUpOrRestart": 1712484014, "machineSerialNumber": "HQ2050S8C51", - "type": "MultiPlus-II GX", + "controllerType": "MultiPlus-II GX", "vrmLink": "vrm.victronenergy.com/installation/79370", "accessLevel": 1, "syscreated": 1606128256, - "vrmOnline": true, + "vrmOnline": false, "alarm": false, "vpnIp": "10.2.1.46", "vpnName": "HQ2050S8C51", "vpnOnline": true }, + { + "name": "Lindhorst-Emme, Schloss-Holte-Stukenbrock/DE | Marco Stuckmeier (AB2300018)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1ce1b", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620379, + "lastPowerUpOrRestart": 1687262638, + "machineSerialNumber": "HQ2217VVNXW", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/293030", + "accessLevel": 1, + "syscreated": 1682056055, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.197", + "vpnName": "HQ2217VVNXW", + "vpnOnline": true + }, + { + "name": "Lingg, Uettligen/BE | Elektro Hegg AG (2022-00080)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "48e7da88e0ad", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620408, + "lastPowerUpOrRestart": 1683785752, + "machineSerialNumber": "HQ2148VVFRF", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/171223", + "accessLevel": 1, + "syscreated": 1650619768, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.5", + "vpnName": "HQ2148VVFRF", + "vpnOnline": true + }, { "name": "Link, Bünzen/AG | Immoflat GmbH (2021-00078.1)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", @@ -6040,13 +14883,13 @@ "hasGenerator": false, "nbMppts": 1, "nbPvInverters": 1, - "firmware": "v2.66~rc5", + "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163743, - "lastPowerUpOrRestart": 1643293175, + "lastConnection": 1718620415, + "lastPowerUpOrRestart": 1663659856, "machineSerialNumber": "HQ2101HYLUG", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/127172", "accessLevel": 1, "syscreated": 1631112846, @@ -6068,10 +14911,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163684, - "lastPowerUpOrRestart": 1647278237, + "lastConnection": 1718620374, + "lastPowerUpOrRestart": 1718562657, "machineSerialNumber": "HQ20462BX4G", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/134207", "accessLevel": 1, "syscreated": 1634830381, @@ -6084,19 +14927,19 @@ { "name": "Lippmann, Uetliburg/SG | clevergie ag (2021-00170)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "485", + "inverterFw": "502", "identifier": "0cb2b7b9b0e8", "hasMains": true, "hasGenerator": false, - "nbMppts": 0, + "nbMppts": 2, "nbPvInverters": 1, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163727, - "lastPowerUpOrRestart": 1647338174, + "lastConnection": 1718620400, + "lastPowerUpOrRestart": 1716985924, "machineSerialNumber": "HQ2046A75SN", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/136687", "accessLevel": 1, "syscreated": 1636036657, @@ -6107,21 +14950,121 @@ "vpnOnline": true }, { - "name": "Loher, Biel-Benken/BE | STARK STROM GmbH (2021-00047)", + "name": "Lips, Jegenstorf/BE/CH | Bouygues E&S In Tec Schweiz AG (2022-00123)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "481", - "identifier": "e415f6f89eb6", - "hasMains": false, + "inverterFw": "502", + "identifier": "48e7da8965fd", + "hasMains": true, "hasGenerator": false, "nbMppts": 0, - "nbPvInverters": 1, - "firmware": "v2.66~rc5", + "nbPvInverters": 0, + "firmware": "v2.73~r12", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163731, - "lastPowerUpOrRestart": 1647278149, + "lastConnection": 1718620384, + "lastPowerUpOrRestart": 1710254362, + "machineSerialNumber": "HQ2150JJGVJ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/195813", + "accessLevel": 1, + "syscreated": 1658329512, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.90", + "vpnName": "HQ2150JJGVJ", + "vpnOnline": true + }, + { + "name": "Liptay, Reigoldswil/BL | Baumann Haustechnik GmbH (2022-00432)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab169a2", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620371, + "lastPowerUpOrRestart": 1703267694, + "machineSerialNumber": "HQ22116WDWN", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/250812", + "accessLevel": 1, + "syscreated": 1672154576, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.26", + "vpnName": "HQ22116WDWN", + "vpnOnline": true + }, + { + "name": "llling, Muri/AG | Bütler Elektro Telecom AG (2022-00535)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab157d4", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620404, + "lastPowerUpOrRestart": 1702727851, + "machineSerialNumber": "HQ2211DGYV3", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/278182", + "accessLevel": 1, + "syscreated": 1678705276, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.130", + "vpnName": "HQ2211DGYV3", + "vpnOnline": true + }, + { + "name": "Loebich, DE | Jürgen Fink Elektroinstallation elitek (AB2300061)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d186", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620416, + "lastPowerUpOrRestart": 1702373831, + "machineSerialNumber": "HQ2217KGFVK", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/302446", + "accessLevel": 1, + "syscreated": 1684144804, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.224", + "vpnName": "HQ2217KGFVK", + "vpnOnline": true + }, + { + "name": "Loher, Biel-Benken/BE | STARK STROM GmbH (2021-00047)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "e415f6f89eb6", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620414, + "lastPowerUpOrRestart": 1713186702, "machineSerialNumber": "HQ2042UGEC4", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/109569", "accessLevel": 1, "syscreated": 1621578698, @@ -6131,22 +15074,72 @@ "vpnName": "HQ2042UGEC4", "vpnOnline": true }, + { + "name": "Loibl, Kottgeisering/DE | Norbert Ebner Elektrotechnik (AB2300335)_SN20230197", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "506", + "identifier": "c0619ab387e1", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620399, + "lastPowerUpOrRestart": 1706664607, + "machineSerialNumber": "HQ22472VW3Y", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/346515", + "accessLevel": 1, + "syscreated": 1694066898, + "vrmOnline": true, + "alarm": true, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Loosli, CH | Scherrer Gebäudehüllen AG (2022-00408)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab16769", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620384, + "lastPowerUpOrRestart": 1700808516, + "machineSerialNumber": "HQ2211EHJJC", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/241223", + "accessLevel": 1, + "syscreated": 1669814195, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.254", + "vpnName": "HQ2211EHJJC", + "vpnOnline": true + }, { "name": "Loosli, St. Erhard/LU | Alex Gemperle AG (2021-00059)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "481", + "inverterFw": "498", "identifier": "94e36dce82ba", "hasMains": true, "hasGenerator": true, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.60~ditto", + "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1631308534, - "lastPowerUpOrRestart": 1629319252, + "lastConnection": 1718620413, + "lastPowerUpOrRestart": 1666278058, "machineSerialNumber": "HQ20424NZK1", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/110603", "accessLevel": 1, "syscreated": 1622125177, @@ -6154,8 +15147,108 @@ "alarm": false, "vpnIp": "10.2.1.59", "vpnName": "HQ20424NZK1", + "vpnOnline": true + }, + { + "name": "Löschner, Altoetting DE | Schupfner & Co GmbH AB2400012 (SN20230206)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "506", + "identifier": "c0619ab393af", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620413, + "lastPowerUpOrRestart": 1708524770, + "machineSerialNumber": "HQ2247GYJDE", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/352943", + "accessLevel": 1, + "syscreated": 1695716341, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", "vpnOnline": false }, + { + "name": "Lüchinger, Lustmühle/AR | Swiss Photovoltaik GmbH (2022-00226)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da86c55b", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620369, + "lastPowerUpOrRestart": 1692029026, + "machineSerialNumber": "HQ2148FQDFF", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/198635", + "accessLevel": 1, + "syscreated": 1659087941, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.101", + "vpnName": "HQ2148FQDFF", + "vpnOnline": true + }, + { + "name": "Luger Alberndorf/AT | Schmachtl GmbH (2022-00577", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab2e41d", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620383, + "lastPowerUpOrRestart": 1698914415, + "machineSerialNumber": "HQ2242GKZ3A", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/280070", + "accessLevel": 1, + "syscreated": 1679058156, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.144", + "vpnName": "HQ2242GKZ3A", + "vpnOnline": true + }, + { + "name": "Luginbühl, Veytay/VD | OptimalLiving SA (AB2300017)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab1cd11", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620392, + "lastPowerUpOrRestart": 1693621971, + "machineSerialNumber": "HQ2217WFCVZ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/293123", + "accessLevel": 1, + "syscreated": 1682069813, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.206", + "vpnName": "HQ2217WFCVZ", + "vpnOnline": true + }, { "name": "Lutz, Vaterstetten/DE | Eberwerk GmbH (2021-00001)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", @@ -6165,13 +15258,13 @@ "hasGenerator": true, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.60~ditto", + "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163742, - "lastPowerUpOrRestart": 1640609581, + "lastConnection": 1718620391, + "lastPowerUpOrRestart": 1709200227, "machineSerialNumber": "HQ2024AEUI6", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/92504", "accessLevel": 1, "syscreated": 1611221180, @@ -6190,13 +15283,13 @@ "hasGenerator": false, "nbMppts": 1, "nbPvInverters": 2, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", - "updateTo": "Testing", - "lastConnection": 1651163728, - "lastPowerUpOrRestart": 1649948715, + "updateTo": "Official release", + "lastConnection": 1718620374, + "lastPowerUpOrRestart": 1718271778, "machineSerialNumber": "HQ21015YQA4", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/130606", "accessLevel": 1, "syscreated": 1632995345, @@ -6206,6 +15299,281 @@ "vpnName": "HQ21015YQA4", "vpnOnline": true }, + { + "name": "Mägerle, Winkel/ZH/CH | Neukom Marzolo AG (2022-00206)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "498", + "identifier": "102c6b643bf2", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 3, + "nbPvInverters": 0, + "firmware": "v2.73~r10", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1684720695, + "lastPowerUpOrRestart": 1666709764, + "machineSerialNumber": "HQ2104KKE6J", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/201912", + "accessLevel": 1, + "syscreated": 1660128169, + "vrmOnline": false, + "alarm": false, + "vpnIp": "10.2.2.113", + "vpnName": "HQ2104KKE6J", + "vpnOnline": false + }, + { + "name": "Mann, Trebur/DE | Daniel Gebert Technik Gebert (2022-00098)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da87b40b", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620394, + "lastPowerUpOrRestart": 1718372345, + "machineSerialNumber": "HQ2148RFK6N", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/170970", + "accessLevel": 1, + "syscreated": 1650540204, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.3", + "vpnName": "HQ2148RFK6N", + "vpnOnline": true + }, + { + "name": "Mares, Cumpadials/GR | electro cadi SA (2021-00236)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab02012", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620410, + "lastPowerUpOrRestart": 1718335519, + "machineSerialNumber": "HQ2118DTKJ4", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/155858", + "accessLevel": 1, + "syscreated": 1644855960, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.200", + "vpnName": "HQ2118DTKJ4", + "vpnOnline": false + }, + { + "name": "Markhorst 7", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "492", + "identifier": "48e7da85849b", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r10", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1672148496, + "lastPowerUpOrRestart": 1668856551, + "machineSerialNumber": "HQ21489HQ3H", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/207418", + "accessLevel": 1, + "syscreated": 1661779149, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.134", + "vpnName": "HQ21489HQ3H", + "vpnOnline": true + }, + { + "name": "Märkl Hofladen, Mitterndorf, DE | EBS Elektrotechnik Stefan GmbH (2022-00211.3)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da8a2469", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620420, + "lastPowerUpOrRestart": 1698310346, + "machineSerialNumber": "HQ22086GV9W", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/197887", + "accessLevel": 1, + "syscreated": 1658912207, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.99", + "vpnName": "HQ22086GV9W", + "vpnOnline": true + }, + { + "name": "Märkl Schreinerei, Mitterndorf DE | EBS Elektrotechnik Stefan GmbH (2022-00267)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "497", + "identifier": "48e7da8780c1", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 2, + "firmware": "v2.73~r8", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620427, + "lastPowerUpOrRestart": 1675264628, + "machineSerialNumber": "HQ2148JMGGR", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/221981", + "accessLevel": 1, + "syscreated": 1665479801, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.192", + "vpnName": "HQ2148JMGGR", + "vpnOnline": true + }, + { + "name": "Marti, Gümligen/BE Marti Technik AG (2022-00289)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "498", + "identifier": "48e7da85f0d1", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r10", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620375, + "lastPowerUpOrRestart": 1667988745, + "machineSerialNumber": "HQ21483XCYH", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/224851", + "accessLevel": 1, + "syscreated": 1666097411, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.201", + "vpnName": "HQ21483XCYH", + "vpnOnline": true + }, + { + "name": "Marti, Schönried/BE | Marti Technik AG (2022-00290) -> neuer Standort", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da89145f", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1703525780, + "lastPowerUpOrRestart": 1701858891, + "machineSerialNumber": "HQ2148PGRV4", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/216529", + "accessLevel": 1, + "syscreated": 1664187142, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.167", + "vpnName": "HQ2148PGRV4", + "vpnOnline": false + }, + { + "name": "Martin Muttenz / BL | Planeco GmbH (2022-00313)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab4357a", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620389, + "lastPowerUpOrRestart": 1711524545, + "machineSerialNumber": "HQ2302GM64D", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/355033", + "accessLevel": 1, + "syscreated": 1696235797, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Marty, Wil-Kirchberg /SG | Elektro Iten (2022-00378)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "498", + "identifier": "c0619ab164f5", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620396, + "lastPowerUpOrRestart": 1674352560, + "machineSerialNumber": "HQ2211VCQXJ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/240355", + "accessLevel": 1, + "syscreated": 1669651251, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.251", + "vpnName": "HQ2211VCQXJ", + "vpnOnline": false + }, + { + "name": "Mathiuet, Wisen/SO/CH | von arx systems ag (2022-00108)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da89dccf", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620393, + "lastPowerUpOrRestart": 1706189974, + "machineSerialNumber": "HQ2148KQG46", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/173007", + "accessLevel": 1, + "syscreated": 1651239544, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.14", + "vpnName": "HQ2148KQG46", + "vpnOnline": true + }, { "name": "Mattenbach, Winterthur/ZH | Zollinger Architekten GmbH (2021-00118)", "inverter": "Quattro 48/10000/140-2x100", @@ -6214,22 +15582,22 @@ "hasMains": true, "hasGenerator": false, "nbMppts": 0, - "nbPvInverters": 2, - "firmware": "v2.73~r6", + "nbPvInverters": 1, + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1650874325, - "lastPowerUpOrRestart": 1648229571, + "lastConnection": 1718620410, + "lastPowerUpOrRestart": 1711639235, "machineSerialNumber": "HQ2118TF3W2", - "type": "Cerbo GX", + "controllerType": "Cerbo GX", "vrmLink": "vrm.victronenergy.com/installation/137280", "accessLevel": 1, "syscreated": 1636377744, - "vrmOnline": false, + "vrmOnline": true, "alarm": false, "vpnIp": "10.2.1.150", "vpnName": "HQ2118TF3W2", - "vpnOnline": false + "vpnOnline": true }, { "name": "Matter, Schöftland/AG | Kunz-Solartech GmbH (2021-00187)", @@ -6240,13 +15608,13 @@ "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163734, - "lastPowerUpOrRestart": 1642953099, + "lastConnection": 1718620379, + "lastPowerUpOrRestart": 1696344566, "machineSerialNumber": "HQ2101TPQ2T", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/143680", "accessLevel": 1, "syscreated": 1638977755, @@ -6257,21 +15625,96 @@ "vpnOnline": true }, { - "name": "Mayland, La Chaux-de-Fonds/NE | Bouygues AG (2021-00032)", + "name": "Maucher, Ingoldingen DE | Elektro- und Gebäudetechnik Lemmle (AB2300086)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "481", - "identifier": "0cb2b7b9bfbe", + "inverterFw": "502", + "identifier": "c0619ab2de21", "hasMains": true, - "hasGenerator": true, + "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.66~rc5", + "firmware": "v2.73~r12", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163719, - "lastPowerUpOrRestart": 1629695729, + "lastConnection": 1718620386, + "lastPowerUpOrRestart": 1718587566, + "machineSerialNumber": "HQ2242HM7JV", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/306478", + "accessLevel": 1, + "syscreated": 1684939189, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.247", + "vpnName": "HQ2242HM7JV", + "vpnOnline": true + }, + { + "name": "Maurer, Hochwald | STARK STROM GmbH (AB2300205)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1dda9", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620402, + "lastPowerUpOrRestart": 1707830623, + "machineSerialNumber": "HQ2219TUKHD", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/376446", + "accessLevel": 1, + "syscreated": 1701423497, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Mayer, Frauenfeld/TG | SC-Haller AG (2022-00156)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da886725", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620411, + "lastPowerUpOrRestart": 1710764354, + "machineSerialNumber": "HQ2201KRCUR", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/186692", + "accessLevel": 1, + "syscreated": 1655726589, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.56", + "vpnName": "HQ2201KRCUR", + "vpnOnline": true + }, + { + "name": "Mayland, La Chaux-de-Fonds/NE | Bouygues AG (2021-00032)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "0cb2b7b9bfbe", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620418, + "lastPowerUpOrRestart": 1693985821, "machineSerialNumber": "HQ2042HKWY4", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/105500", "accessLevel": 1, "syscreated": 1619173055, @@ -6281,10 +15724,110 @@ "vpnName": "HQ2042HKWY4", "vpnOnline": true }, + { + "name": "Meier Schüpfen/BE | Bouygues/ Helion (2022-00435)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab167a0", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620397, + "lastPowerUpOrRestart": 1718606297, + "machineSerialNumber": "HQ2211Q7JM2", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/250686", + "accessLevel": 1, + "syscreated": 1672130095, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.23", + "vpnName": "HQ2211Q7JM2", + "vpnOnline": true + }, + { + "name": "Meier, Aeugst am Albis/ZH (2022-00564)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab2e647", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620418, + "lastPowerUpOrRestart": 1702311799, + "machineSerialNumber": "HQ22422MEE9", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/280786", + "accessLevel": 1, + "syscreated": 1679309374, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.146", + "vpnName": "HQ22422MEE9", + "vpnOnline": true + }, + { + "name": "Meier, Buchs/SG/CH | Bouygues E&S In Tec Schweiz AG (2022-00221)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "497", + "identifier": "48e7da875337", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620412, + "lastPowerUpOrRestart": 1666189042, + "machineSerialNumber": "HQ2148F67GD", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/203156", + "accessLevel": 1, + "syscreated": 1660542974, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.116", + "vpnName": "HQ2148F67GD", + "vpnOnline": true + }, + { + "name": "Meier, Obfelden/ZH | Blum Elco (AB2300173) SR20230137", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab1d463", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620422, + "lastPowerUpOrRestart": 1700725004, + "machineSerialNumber": "HQ2217M9TVT", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/326442", + "accessLevel": 1, + "syscreated": 1689229044, + "vrmOnline": true, + "alarm": true, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, { "name": "Meier, Reitnau/AG | Die Dachexperten GmbH (2020-00120)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "494", + "inverterFw": "500", "identifier": "0281224aab44", "hasMains": false, "hasGenerator": false, @@ -6293,10 +15836,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163725, - "lastPowerUpOrRestart": 1647860378, + "lastConnection": 1718620391, + "lastPowerUpOrRestart": 1706517908, "machineSerialNumber": "HQ205061YR8", - "type": "MultiPlus-II GX", + "controllerType": "MultiPlus-II GX", "vrmLink": "vrm.victronenergy.com/installation/89337", "accessLevel": 1, "syscreated": 1608101885, @@ -6309,7 +15852,7 @@ { "name": "Meier, Winterthur/ZH | Scherrer Gebäudehüllen AG (2020-00067)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "481", + "inverterFw": "502", "identifier": "0479b7ef9da1", "hasMains": true, "hasGenerator": false, @@ -6318,10 +15861,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163750, - "lastPowerUpOrRestart": 1635271085, + "lastConnection": 1718620389, + "lastPowerUpOrRestart": 1709281974, "machineSerialNumber": "HQ19308JANG", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/66034", "accessLevel": 1, "syscreated": 1595074204, @@ -6331,22 +15874,47 @@ "vpnName": "HQ19308JANG", "vpnOnline": true }, + { + "name": "Menet, Lyss/BE | Eltanorm GmbH (AB2300019)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1681c", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620417, + "lastPowerUpOrRestart": 1697185673, + "machineSerialNumber": "HQ2211KNAGR", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/290436", + "accessLevel": 1, + "syscreated": 1681473438, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.185", + "vpnName": "HQ2211KNAGR", + "vpnOnline": true + }, { "name": "Merki, Jona/SG | Elektro Möhl AG (2019-00021)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "461", + "inverterFw": "502", "identifier": "7c386655fec5", "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.66~rc5", + "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163754, - "lastPowerUpOrRestart": 1644599285, + "lastConnection": 1718620420, + "lastPowerUpOrRestart": 1684135215, "machineSerialNumber": "HQ18372DYFA", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/39038", "accessLevel": 1, "syscreated": 1561797764, @@ -6359,19 +15927,19 @@ { "name": "Meuwly, Weggis/LU | Bouygues AG (2021-00080)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "481", + "inverterFw": "502", "identifier": "94e36dcea8fd", "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163741, - "lastPowerUpOrRestart": 1643103830, + "lastConnection": 1718620433, + "lastPowerUpOrRestart": 1717751977, "machineSerialNumber": "HQ20468IMZK", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/117568", "accessLevel": 1, "syscreated": 1625757656, @@ -6381,6 +15949,31 @@ "vpnName": "HQ20468IMZK", "vpnOnline": true }, + { + "name": "Meyer, Heiden AR | A+ Elektro AG (2022-00085)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "102c6b64ac69", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620413, + "lastPowerUpOrRestart": 1701718490, + "machineSerialNumber": "HQ21045DL1H", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/169079", + "accessLevel": 1, + "syscreated": 1649764707, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.251", + "vpnName": "HQ21045DL1H", + "vpnOnline": true + }, { "name": "Meyer, Morgarten/ZG | Alectron AG (2019-00003)", "inverter": "MultiPlus-II 48/3000/35-32 (50A ext sensor)", @@ -6389,14 +15982,14 @@ "hasMains": true, "hasGenerator": false, "nbMppts": 0, - "nbPvInverters": 2, + "nbPvInverters": 1, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163722, - "lastPowerUpOrRestart": 1645774830, + "lastConnection": 1718620399, + "lastPowerUpOrRestart": 1669745453, "machineSerialNumber": "HQ1825TILC7", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/33420", "accessLevel": 1, "syscreated": 1552895923, @@ -6409,19 +16002,19 @@ { "name": "Meyer, Sutz/BE | KWenergy GmbH (2021-00234)", "inverter": "MultiPlus-II 48/5000/70-48", - "inverterFw": "490", + "inverterFw": "502", "identifier": "102c6b9d0943", "hasMains": false, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 0, - "firmware": "v2.73~r6", + "firmware": "v2.73~r12", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163756, - "lastPowerUpOrRestart": 1648793203, + "lastConnection": 1718620448, + "lastPowerUpOrRestart": 1701075319, "machineSerialNumber": "HQ2122PADT3", - "type": "Cerbo GX", + "controllerType": "Cerbo GX", "vrmLink": "vrm.victronenergy.com/installation/153432", "accessLevel": 1, "syscreated": 1643816515, @@ -6436,17 +16029,17 @@ "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "475", "identifier": "0c1c57002e08", - "hasMains": false, - "hasGenerator": false, + "hasMains": true, + "hasGenerator": true, "nbMppts": 0, "nbPvInverters": 1, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1643363400, + "lastConnection": 1685987154, "lastPowerUpOrRestart": 1638197296, "machineSerialNumber": "HQ2005YN7XC", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/74664", "accessLevel": 1, "syscreated": 1602224802, @@ -6456,22 +16049,72 @@ "vpnName": "HQ2005YN7XC", "vpnOnline": false }, + { + "name": "MH, Bonn/DE IL sun+ | Innovative Energie-Lösungen (2022-00174)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da885259", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 2, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620446, + "lastPowerUpOrRestart": 1717750929, + "machineSerialNumber": "HQ2150JGKGN", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/195118", + "accessLevel": 1, + "syscreated": 1658156764, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.85", + "vpnName": "HQ2150JGKGN", + "vpnOnline": true + }, + { + "name": "Michalzik, Isselburg DE / Mrotzek (2022-00536)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "501", + "identifier": "c0619ab09b05", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620441, + "lastPowerUpOrRestart": 1713165144, + "machineSerialNumber": "HQ2149EDW4V", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/267945", + "accessLevel": 1, + "syscreated": 1676469292, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.91", + "vpnName": "HQ2149EDW4V", + "vpnOnline": true + }, { "name": "Mijnssen, Melchnau/BE | clevergie ag - Region Emmental (2021-00232)", "inverter": "MultiPlus-II 48/5000/70-48", "inverterFw": "490", "identifier": "d41243d30224", - "hasMains": true, + "hasMains": false, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 0, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163721, - "lastPowerUpOrRestart": 1647447200, + "lastConnection": 1718620424, + "lastPowerUpOrRestart": 1675441273, "machineSerialNumber": "HQ2048AEK68", - "type": "Cerbo GX", + "controllerType": "Cerbo GX", "vrmLink": "vrm.victronenergy.com/installation/158851", "accessLevel": 1, "syscreated": 1646140433, @@ -6481,6 +16124,31 @@ "vpnName": "HQ2048AEK68", "vpnOnline": true }, + { + "name": "Minchwitz, Bottighofen/TG | Baumann Haustechnik GmbH (2022-00436)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "498", + "identifier": "48e7da884af1", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r10", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620449, + "lastPowerUpOrRestart": 1696348706, + "machineSerialNumber": "HQ2211C4QGC", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/251046", + "accessLevel": 1, + "syscreated": 1672237091, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.3.28", + "vpnName": "HQ2211C4QGC", + "vpnOnline": true + }, { "name": "Ming, Lungern/OW | InnovEnergy (2019-00009)", "inverter": "MultiPlus 48/1200/12-16", @@ -6490,13 +16158,13 @@ "hasGenerator": true, "nbMppts": 1, "nbPvInverters": 0, - "firmware": "v2.60~ditto", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163761, - "lastPowerUpOrRestart": 1646668206, + "lastConnection": 1718620448, + "lastPowerUpOrRestart": 1717993543, "machineSerialNumber": "HQ1837IEBCX", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/37805", "accessLevel": 1, "syscreated": 1559990977, @@ -6511,17 +16179,17 @@ "inverter": "MultiPlus 48/5000/70-100", "inverterFw": "430", "identifier": "0cb2b7cb28ee", - "hasMains": false, - "hasGenerator": false, + "hasMains": true, + "hasGenerator": true, "nbMppts": 1, "nbPvInverters": 0, "firmware": "v2.60", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1604569630, - "lastPowerUpOrRestart": 1600438191, + "lastConnection": 1669467872, + "lastPowerUpOrRestart": 1669433473, "machineSerialNumber": "HQ1925JAJHZ", - "type": "Color Control GX", + "controllerType": "Color Control GX", "vrmLink": "vrm.victronenergy.com/installation/66077", "accessLevel": 1, "syscreated": 1595153199, @@ -6531,6 +16199,31 @@ "vpnName": "", "vpnOnline": false }, + { + "name": "Mintraching ,DE Reinwald| EEZ Enerie- & ElektroZentrum GmbH & Co. KG (AB2300087)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d18a", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620422, + "lastPowerUpOrRestart": 1718400038, + "machineSerialNumber": "HQ2217MCU6U", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/306301", + "accessLevel": 1, + "syscreated": 1684923637, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.241", + "vpnName": "HQ2217MCU6U", + "vpnOnline": true + }, { "name": "Mischler, Evilard/BE | Bouygues AG (2021-00037)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", @@ -6543,10 +16236,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163726, - "lastPowerUpOrRestart": 1647426138, + "lastConnection": 1718620443, + "lastPowerUpOrRestart": 1660901660, "machineSerialNumber": "HQ20425HFL8", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/103264", "accessLevel": 1, "syscreated": 1617971595, @@ -6556,47 +16249,122 @@ "vpnName": "HQ20425HFL8", "vpnOnline": true }, + { + "name": "Mischler, Hittnau ZH/ Clevergie AG 2022-00380", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da88d353", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620421, + "lastPowerUpOrRestart": 1712271590, + "machineSerialNumber": "HQ2201N24XX", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/232967", + "accessLevel": 1, + "syscreated": 1667985790, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.229", + "vpnName": "HQ2201N24XX", + "vpnOnline": true + }, { "name": "Mitteldorf, Hettlingen/ZH | Senero AG (2021-00123)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "485", + "inverterFw": "502", "identifier": "e415f6f1904d", "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163760, - "lastPowerUpOrRestart": 1634759666, + "lastConnection": 1718620438, + "lastPowerUpOrRestart": 1708957639, "machineSerialNumber": "HQ21012AWBI", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/126082", "accessLevel": 1, "syscreated": 1630509389, "vrmOnline": true, - "alarm": false, + "alarm": true, "vpnIp": "10.2.1.114", "vpnName": "HQ21012AWBI", "vpnOnline": true }, + { + "name": "MODI , Dachau DE | EBS Elektrotechnik Stefan GmbH (AB2300206) SN20230162", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab2e054", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 3, + "nbPvInverters": 2, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620423, + "lastPowerUpOrRestart": 1706706060, + "machineSerialNumber": "HQ2242DHKYM", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/340707", + "accessLevel": 1, + "syscreated": 1692617142, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Modler, Limbach-Oberfrohna/DE | Optema - Ronald Koch (AB2300039)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab1dd74", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620421, + "lastPowerUpOrRestart": 1710010202, + "machineSerialNumber": "HQ2219YNCEA", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/300506", + "accessLevel": 1, + "syscreated": 1683719716, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.221", + "vpnName": "HQ2219YNCEA", + "vpnOnline": true + }, { "name": "Monin, Mayens-de-la-Zour/VS | EFISOL SA (2021-00040)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "481", + "inverterFw": "502", "identifier": "0c1c5701dc58", "hasMains": false, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 0, - "firmware": "v2.73~r6", - "autoUpdate": "On", + "firmware": "v2.73~r11", + "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163707, - "lastPowerUpOrRestart": 1646672058, + "lastConnection": 1718620411, + "lastPowerUpOrRestart": 1716465989, "machineSerialNumber": "HQ2005NDN8H", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/104429", "accessLevel": 1, "syscreated": 1618571820, @@ -6606,6 +16374,56 @@ "vpnName": "HQ2005NDN8H", "vpnOnline": true }, + { + "name": "Mooseder , Schwabhausen Neubau /DE | EBS Elektrotechnik Stefan GmbH (2022-00441)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab1069d", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1717500281, + "lastPowerUpOrRestart": 1706524437, + "machineSerialNumber": "HQ2204TR6AA", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/256906", + "accessLevel": 1, + "syscreated": 1673975460, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.56", + "vpnName": "HQ2204TR6AA", + "vpnOnline": false + }, + { + "name": "Mooseder, Schwabhausen/DE | EBS Elektrotechnik Stefan GmbH (2022-00211.2)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "481", + "identifier": "48e7da8711af", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620414, + "lastPowerUpOrRestart": 1700973387, + "machineSerialNumber": "HQ2148CC6Y4", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/197805", + "accessLevel": 1, + "syscreated": 1658901233, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.96", + "vpnName": "HQ2148CC6Y4", + "vpnOnline": true + }, { "name": "Mooshuber, Mettenheim/DE | Elektrotechnik Schmidt (2022-00017)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", @@ -6618,10 +16436,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163763, - "lastPowerUpOrRestart": 1649333858, + "lastConnection": 1718620410, + "lastPowerUpOrRestart": 1696261036, "machineSerialNumber": "HQ21222PQRR", - "type": "MultiPlus-II GX", + "controllerType": "MultiPlus-II GX", "vrmLink": "vrm.victronenergy.com/installation/160188", "accessLevel": 1, "syscreated": 1646666492, @@ -6631,29 +16449,129 @@ "vpnName": "HQ21222PQRR", "vpnOnline": true }, + { + "name": "Moret, Lyss/BE | Feldmann und Co. AG (2022-00245)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da88da61", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620457, + "lastPowerUpOrRestart": 1687870536, + "machineSerialNumber": "HQ2201WVGMT", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/205702", + "accessLevel": 1, + "syscreated": 1661257987, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.128", + "vpnName": "HQ2201WVGMT", + "vpnOnline": true + }, + { + "name": "Morger, Wagen/CH | Elektro Möhl AG (2022-00322)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "500", + "identifier": "c0619ab0961f", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620445, + "lastPowerUpOrRestart": 1669583308, + "machineSerialNumber": "HQ2148RTJUK", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/240029", + "accessLevel": 1, + "syscreated": 1669583314, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.182", + "vpnName": "HQ2148RTJUK", + "vpnOnline": true + }, { "name": "Mösching, Kaufdorf/BE | Breu AG (2021-00138)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "485", "identifier": "0479b7aec66d", - "hasMains": false, + "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 0, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163753, - "lastPowerUpOrRestart": 1643616045, + "lastConnection": 1714957121, + "lastPowerUpOrRestart": 1698933368, "machineSerialNumber": "HQ2101ZVNGW", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/129445", "accessLevel": 1, "syscreated": 1632321374, - "vrmOnline": true, + "vrmOnline": false, "alarm": false, "vpnIp": "10.2.1.123", "vpnName": "HQ2101ZVNGW", + "vpnOnline": false + }, + { + "name": "Mösching, Uetendorf/BE | Elektro Gertsch AG (AB2300309)_SN20230213", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab392f9", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620440, + "lastPowerUpOrRestart": 1715667865, + "machineSerialNumber": "HQ2247WMCEE", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/357801", + "accessLevel": 1, + "syscreated": 1696919549, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Moser Ralph Zollikon, CH | clevergie ag (AB2300077)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab2e087", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620440, + "lastPowerUpOrRestart": 1718001997, + "machineSerialNumber": "HQ224293WU4", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/308570", + "accessLevel": 1, + "syscreated": 1685428779, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.249", + "vpnName": "HQ224293WU4", "vpnOnline": true }, { @@ -6668,10 +16586,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163740, - "lastPowerUpOrRestart": 1647882836, + "lastConnection": 1718620410, + "lastPowerUpOrRestart": 1700245363, "machineSerialNumber": "HQ2107EGE5M", - "type": "MultiPlus-II GX", + "controllerType": "MultiPlus-II GX", "vrmLink": "vrm.victronenergy.com/installation/151704", "accessLevel": 1, "syscreated": 1643109147, @@ -6684,19 +16602,19 @@ { "name": "Moser, Corgèmont/JU | Kunz-Solartech GmbH (2021-00128)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "485", + "inverterFw": "502", "identifier": "0281b18181ed", - "hasMains": false, + "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163750, - "lastPowerUpOrRestart": 1646659892, + "lastConnection": 1718620456, + "lastPowerUpOrRestart": 1713950566, "machineSerialNumber": "HQ20525RV89", - "type": "MultiPlus-II GX", + "controllerType": "MultiPlus-II GX", "vrmLink": "vrm.victronenergy.com/installation/128510", "accessLevel": 1, "syscreated": 1631804882, @@ -6706,6 +16624,131 @@ "vpnName": "HQ20525RV89", "vpnOnline": true }, + { + "name": "Moser, Lyss/BE | Feldmann und Co. AG (2022-00328) NEU", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d0c5", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620417, + "lastPowerUpOrRestart": 1710493317, + "machineSerialNumber": "HQ2217YWP3E", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/411957", + "accessLevel": 1, + "syscreated": 1710487355, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Moser, Möhlin/AG | Ruther AG (2023-00130)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1dd2a", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620446, + "lastPowerUpOrRestart": 1710512082, + "machineSerialNumber": "HQ2219H6G7G", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/284471", + "accessLevel": 1, + "syscreated": 1680093979, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.160", + "vpnName": "HQ2219H6G7G", + "vpnOnline": true + }, + { + "name": "Moser, München/DE | Forster Sohacon (2022-00370)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "500", + "identifier": "48e7da86e207", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 2, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620456, + "lastPowerUpOrRestart": 1678138818, + "machineSerialNumber": "HQ2201AKEHZ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/232100", + "accessLevel": 1, + "syscreated": 1667808288, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.220", + "vpnName": "HQ2201AKEHZ", + "vpnOnline": true + }, + { + "name": "Moser, Schalunen/BE | Elektro Böhlen AG (AB2300089)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab16837", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620461, + "lastPowerUpOrRestart": 1702306843, + "machineSerialNumber": "HQ2211KY2XV", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/309625", + "accessLevel": 1, + "syscreated": 1685607666, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.4.2", + "vpnName": "HQ2211KY2XV", + "vpnOnline": true + }, + { + "name": "Mosimann Spiez /Allenbach Holzbau und Solartechnik AG S2300056", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1dce3", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620431, + "lastPowerUpOrRestart": 1706600143, + "machineSerialNumber": "HQ22194RX9Y", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/325148", + "accessLevel": 1, + "syscreated": 1688976653, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, { "name": "Motschi, Oberbuchsiten/SO | von arx systems ag (2021-00083)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", @@ -6715,13 +16758,13 @@ "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.66~rc5", + "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163742, - "lastPowerUpOrRestart": 1647277891, + "lastConnection": 1718620468, + "lastPowerUpOrRestart": 1660901664, "machineSerialNumber": "HQ2046PS3BC", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/119678", "accessLevel": 1, "syscreated": 1626794287, @@ -6731,22 +16774,47 @@ "vpnName": "HQ2046PS3BC", "vpnOnline": true }, + { + "name": "Muehlbacher, Brissago CH | Helion Energy AG (2022-00507)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab16504", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620458, + "lastPowerUpOrRestart": 1700243846, + "machineSerialNumber": "HQ22112RGGW", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/269887", + "accessLevel": 1, + "syscreated": 1676908131, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.97", + "vpnName": "HQ22112RGGW", + "vpnOnline": true + }, { "name": "Mühlegg, Ruggell/FL | Hasler Solar AG (2020-00012)", "inverter": "MultiPlus-II 48/5000/70-48", - "inverterFw": "471", + "inverterFw": "502", "identifier": "0cb2b7cc679b", "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163733, - "lastPowerUpOrRestart": 1639501995, + "lastConnection": 1718620424, + "lastPowerUpOrRestart": 1712153964, "machineSerialNumber": "HQ2032DUKTR", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/57962", "accessLevel": 1, "syscreated": 1586765810, @@ -6757,71 +16825,196 @@ "vpnOnline": true }, { - "name": "Müller, Altbüron/LU | Alectron AG (2019-00014)", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "459", - "identifier": "7c386655d53b", + "name": "Mühlemann, Herrliberg/ZH | E. Kunz AG (2022-00573)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab1680f", "hasMains": false, "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1705389354, + "lastPowerUpOrRestart": 1697116608, + "machineSerialNumber": "HQ2211QF4MY", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/282620", + "accessLevel": 1, + "syscreated": 1679666744, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.153", + "vpnName": "HQ2211QF4MY", + "vpnOnline": false + }, + { + "name": "Mukhin, Brügg/BE | KWenergy GmbH /2022-00544)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "501", + "identifier": "c0619ab10622", + "hasMains": true, + "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.66~r5", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1638348495, - "lastPowerUpOrRestart": 1631007294, + "lastConnection": 1718620438, + "lastPowerUpOrRestart": 1691441625, + "machineSerialNumber": "HQ2204RQZJY", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/265577", + "accessLevel": 1, + "syscreated": 1675946711, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.75", + "vpnName": "HQ2204RQZJY", + "vpnOnline": true + }, + { + "name": "Müller, Altbüron/LU | Alectron AG (2019-00014)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "7c386655d53b", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620427, + "lastPowerUpOrRestart": 1712147236, "machineSerialNumber": "HQ18377WLY1", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/36310", "accessLevel": 1, "syscreated": 1557846643, - "vrmOnline": false, + "vrmOnline": true, "alarm": false, "vpnIp": "10.2.0.126", "vpnName": "HQ18377WLY1", + "vpnOnline": true + }, + { + "name": "Müller, Altendorf/SZ | Elektro Rhyner AG (AB2300114) SN20230078", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1dc74", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620410, + "lastPowerUpOrRestart": 1717683717, + "machineSerialNumber": "HQ22173CCKU", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/317208", + "accessLevel": 1, + "syscreated": 1687244501, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", "vpnOnline": false }, + { + "name": "Müller, Giswil/OW | AMSTROM AG (AB2300159) 20230123", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab2e447", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620418, + "lastPowerUpOrRestart": 1691141237, + "machineSerialNumber": "HQ2242WKPQH", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/323870", + "accessLevel": 1, + "syscreated": 1688629476, + "vrmOnline": true, + "alarm": true, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Müller, Heldswil/TG | Gebr. Willi Elektro AG (2022-00153)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "497", + "identifier": "48e7da87b971", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620458, + "lastPowerUpOrRestart": 1681996308, + "machineSerialNumber": "HQ2201T2CD3", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/186753", + "accessLevel": 1, + "syscreated": 1655735920, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.57", + "vpnName": "HQ2201T2CD3", + "vpnOnline": true + }, { "name": "Müller, Hombrechtikon/ZH | Clevergie AG (2019-00070)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "459", + "inverterFw": "502", "identifier": "d0ff505604dd", - "hasMains": false, + "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163738, - "lastPowerUpOrRestart": 1639665358, + "lastConnection": 1718620436, + "lastPowerUpOrRestart": 1717663712, "machineSerialNumber": "HQ192416GBB", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/48493", "accessLevel": 1, "syscreated": 1574520983, "vrmOnline": true, - "alarm": false, + "alarm": true, "vpnIp": "10.2.0.127", "vpnName": "HQ192416GBB", - "vpnOnline": false + "vpnOnline": true }, { "name": "Müller, Muhen/AG | Elektro Hunziker AG (2021-00013)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "481", + "inverterFw": "502", "identifier": "0035ff647244", "hasMains": true, - "hasGenerator": true, + "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 2, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163753, - "lastPowerUpOrRestart": 1634654214, + "lastConnection": 1718620441, + "lastPowerUpOrRestart": 1713025810, "machineSerialNumber": "HQ2032QDMDM", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/102188", "accessLevel": 1, "syscreated": 1617277882, @@ -6836,17 +17029,17 @@ "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "481", "identifier": "0cb2b7b9dc14", - "hasMains": false, + "hasMains": true, "hasGenerator": false, "nbMppts": 1, "nbPvInverters": 2, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163738, - "lastPowerUpOrRestart": 1651060722, + "lastConnection": 1718620446, + "lastPowerUpOrRestart": 1691997484, "machineSerialNumber": "HQ20425448G", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/98487", "accessLevel": 1, "syscreated": 1615282757, @@ -6868,10 +17061,10 @@ "firmware": "v2.60~r4", "autoUpdate": "Off", "updateTo": "Official release", - "lastConnection": 1651163726, - "lastPowerUpOrRestart": 1651065990, + "lastConnection": 1718620464, + "lastPowerUpOrRestart": 1718560441, "machineSerialNumber": "HQ1719MEY2Z", - "type": "Color Control GX", + "controllerType": "Color Control GX", "vrmLink": "vrm.victronenergy.com/installation/21322", "accessLevel": 1, "syscreated": 1527679089, @@ -6882,135 +17075,360 @@ "vpnOnline": true }, { - "name": "Mutzner, Fanas/GR | Elprom Partner AG (2021-00137)", - "inverter": "Quattro 48/10000/140-2x100", - "inverterFw": "476", - "identifier": "0c1c5700342c", - "hasMains": true, - "hasGenerator": true, - "nbMppts": 6, - "nbPvInverters": 0, - "firmware": "v2.73~r6", + "name": "Naef, Beringen/SH/CH | Grossmann Brauchli AG (2022-00093)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "500", + "identifier": "48e7da864f61", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163756, - "lastPowerUpOrRestart": 1638468679, - "machineSerialNumber": "HQ2005SG49G", - "type": "Venus GX", - "vrmLink": "vrm.victronenergy.com/installation/86887", + "lastConnection": 1718620464, + "lastPowerUpOrRestart": 1671108743, + "machineSerialNumber": "HQ2204TJDRQ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/232228", "accessLevel": 1, - "syscreated": 1606323323, + "syscreated": 1667823870, "vrmOnline": true, "alarm": false, - "vpnIp": "10.2.1.9", - "vpnName": "HQ2005SG49G", + "vpnIp": "10.2.2.223", + "vpnName": "HQ2204TJDRQ", + "vpnOnline": true + }, + { + "name": "Naef, Uitikon/ZH/CH | Bouygues E&S In Tec Schweiz AG (2022-00248)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab09837", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620421, + "lastPowerUpOrRestart": 1709663964, + "machineSerialNumber": "HQ21487J4PU", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/238938", + "accessLevel": 1, + "syscreated": 1669295224, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.140", + "vpnName": "HQ21487J4PU", "vpnOnline": true }, { "name": "Näf, Zweisimmen/BE | beosolar.ch (2021-00029)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "485", - "identifier": "e415f6fc9e58", + "identifier": "48e7da85f197", "hasMains": false, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 0, - "firmware": "v2.73~r6", + "firmware": "v2.73~r10", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163743, - "lastPowerUpOrRestart": 1647418179, - "machineSerialNumber": "HQ20428G1MH", - "type": "Venus GX", - "vrmLink": "vrm.victronenergy.com/installation/103569", + "lastConnection": 1718620475, + "lastPowerUpOrRestart": 1718612015, + "machineSerialNumber": "HQ21497GANN", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/248412", "accessLevel": 1, - "syscreated": 1618206857, + "syscreated": 1671451271, "vrmOnline": true, "alarm": false, - "vpnIp": "10.2.1.42", - "vpnName": "HQ20428G1MH", + "vpnIp": "10.2.3.21", + "vpnName": "HQ21497GANN", "vpnOnline": true }, { - "name": "Niederberger, Alpnach/OW | Alectron AG (2019-00001)", - "inverter": "MultiPlus-II 48/3000/35-32 (50A ext sensor)", - "inverterFw": "456", - "identifier": "38d2696270b9", - "hasMains": false, - "hasGenerator": false, - "nbMppts": 0, - "nbPvInverters": 1, - "firmware": "v2.73~r6", - "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1651163764, - "lastPowerUpOrRestart": 1643896885, - "machineSerialNumber": "HQ1832EYDEG", - "type": "Venus GX", - "vrmLink": "vrm.victronenergy.com/installation/32614", - "accessLevel": 1, - "syscreated": 1551446478, - "vrmOnline": true, - "alarm": false, - "vpnIp": "10.2.0.128", - "vpnName": "HQ1832EYDEG", - "vpnOnline": true - }, - { - "name": "Oehrli, Bern/BE | Brunner + Imboden AG (2020-00004)", + "name": "Nagy, Frauenfeld/TG | EWE Elektro AG (2022-00391)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "470", - "identifier": "7c669d4dfa88", + "inverterFw": "502", + "identifier": "48e7da89ffc5", "hasMains": false, "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620450, + "lastPowerUpOrRestart": 1707810123, + "machineSerialNumber": "HQ2148E9N9C", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/235121", + "accessLevel": 1, + "syscreated": 1668502115, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.234", + "vpnName": "HQ2148E9N9C", + "vpnOnline": true + }, + { + "name": "Natura Casa Showroom/DE LOGA consulting (2022-00396)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "501", + "identifier": "48e7da865dc5", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1711038859, + "lastPowerUpOrRestart": 1701787385, + "machineSerialNumber": "HQ21486Q62X", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/217810", + "accessLevel": 1, + "syscreated": 1664448055, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.175", + "vpnName": "HQ21486Q62X", + "vpnOnline": false + }, + { + "name": "Neue Heimat Haus 37a Rum/Tirol/AT | Schmachtl GmbH (2022-00484)-4", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1dd94", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620464, + "lastPowerUpOrRestart": 1697018726, + "machineSerialNumber": "HQ22199MMKK", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/272430", + "accessLevel": 1, + "syscreated": 1677484829, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.110", + "vpnName": "HQ22199MMKK", + "vpnOnline": true + }, + { + "name": "Neue Heimat Haus 37b Rum/Tirol/AT | Schmachtl GmbH (2022-00484)-3", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab16530", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620469, + "lastPowerUpOrRestart": 1697046106, + "machineSerialNumber": "HQ2211VMMZY", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/270342", + "accessLevel": 1, + "syscreated": 1676998380, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.101", + "vpnName": "HQ2211VMMZY", + "vpnOnline": true + }, + { + "name": "Neue Heimat Haus 37c Rum /Tirol AT | Schmachtl GmbH (2022-00484)-1", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab169e3", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620449, + "lastPowerUpOrRestart": 1697083811, + "machineSerialNumber": "HQ22116KQEP", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/270174", + "accessLevel": 1, + "syscreated": 1676981810, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.99", + "vpnName": "HQ22116KQEP", + "vpnOnline": true + }, + { + "name": "Neue Heimat Haus 37d Rum/Tirol/AT | Schmachtl GmbH (2022-00484)-5", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1659d", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620428, + "lastPowerUpOrRestart": 1697030454, + "machineSerialNumber": "HQ2211AWKPT", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/270742", + "accessLevel": 1, + "syscreated": 1677077362, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.105", + "vpnName": "HQ2211AWKPT", + "vpnOnline": true + }, + { + "name": "Neue Heimat Haus 37e Rum/Tirol/AT | Schmachtl GmbH (2022-00484)-2", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab2dcad", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620470, + "lastPowerUpOrRestart": 1698661890, + "machineSerialNumber": "HQ2242JKQQN", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/270297", + "accessLevel": 1, + "syscreated": 1676993143, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.3.100", + "vpnName": "HQ2242JKQQN", + "vpnOnline": true + }, + { + "name": "Neugebauer/DE | Elser Elektro + Haustechnik GmbH & Co.KG (AB2300226)_SN20230180", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d167", + "hasMains": true, + "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.52", - "autoUpdate": "On", - "updateTo": "Official release", - "lastConnection": 1591970447, - "lastPowerUpOrRestart": 1585552252, - "machineSerialNumber": "HQ1927BHTIB", - "type": "Venus GX", - "vrmLink": "vrm.victronenergy.com/installation/54460", + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620471, + "lastPowerUpOrRestart": 1714818698, + "machineSerialNumber": "HQ2217CGXNX", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/341790", "accessLevel": 1, - "syscreated": 1582645923, - "vrmOnline": false, + "syscreated": 1692860858, + "vrmOnline": true, "alarm": false, "vpnIp": "", "vpnName": "", "vpnOnline": false }, { - "name": "Oesch, Schwarzenegg/BE | InnovEnergy (2018-00013)", - "inverter": "MultiPlus 48/5000/70-100", - "inverterFw": "430", - "identifier": "907065b3c782", + "name": "Nicht OnlineKeller, Fulenbach/SO| von arx systems ag (2022-00112)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "500", + "identifier": "48e7da88ebef", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1677687042, + "lastPowerUpOrRestart": 1677680499, + "machineSerialNumber": "HQ22019CUPU", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/175892", + "accessLevel": 1, + "syscreated": 1652259329, + "vrmOnline": false, + "alarm": false, + "vpnIp": "10.2.2.18", + "vpnName": "HQ22019CUPU", + "vpnOnline": false + }, + { + "name": "NICO TEST GRUND", + "inverter": "MultiGrid 48/3000/35-50", + "inverterFw": "506", + "identifier": "9884e3aef071", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v3.31", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1716449423, + "lastPowerUpOrRestart": 1715946610, + "machineSerialNumber": "HQ2046YGGXV", + "controllerType": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/34807", + "accessLevel": 1, + "syscreated": 1555315067, + "vrmOnline": false, + "alarm": false, + "vpnIp": "10.2.2.206", + "vpnName": "HQ2046YGGXV", + "vpnOnline": false + }, + { + "name": "Niederberger, Alpnach/OW | Alectron AG (2019-00001)", + "inverter": "MultiPlus-II 48/3000/35-32 (50A ext sensor)", + "inverterFw": "502", + "identifier": "38d2696270b9", "hasMains": false, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.60~r4", - "autoUpdate": "Off", + "firmware": "v2.73~r11", + "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163746, - "lastPowerUpOrRestart": 1651154325, - "machineSerialNumber": "HQ1810GTLJV", - "type": "Color Control GX", - "vrmLink": "vrm.victronenergy.com/installation/27811", + "lastConnection": 1718620453, + "lastPowerUpOrRestart": 1718290397, + "machineSerialNumber": "HQ1832EYDEG", + "controllerType": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/32614", "accessLevel": 1, - "syscreated": 1540628608, - "vrmOnline": true, - "alarm": false, - "vpnIp": "10.2.0.176", - "vpnName": "HQ1810GTLJV", + "syscreated": 1551446478, + "vrmOnline": false, + "alarm": true, + "vpnIp": "10.2.0.128", + "vpnName": "HQ1832EYDEG", "vpnOnline": true }, { - "name": "Oeschger, Nürensdorf/ZH | e.e.com elektroanlagen ag (2021-00008)", + "name": "Nolzen, Oberhausen/DE | Enerix Ruhrgebiet West (2022-00063)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "481", - "identifier": "0035ff642cba", + "inverterFw": "497", + "identifier": "48e7da888a9b", "hasMains": false, "hasGenerator": false, "nbMppts": 0, @@ -7018,10 +17436,260 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163715, - "lastPowerUpOrRestart": 1647859261, + "lastConnection": 1718620448, + "lastPowerUpOrRestart": 1660901623, + "machineSerialNumber": "HQ2201PZJFZ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/183649", + "accessLevel": 1, + "syscreated": 1654694453, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.42", + "vpnName": "HQ2201PZJFZ", + "vpnOnline": true + }, + { + "name": "Nussbaum, Olten/SO | von arx systems ag (2022-00481)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab16a75", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1715837465, + "lastPowerUpOrRestart": 1691487073, + "machineSerialNumber": "HQ2211CCYDR", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/271707", + "accessLevel": 1, + "syscreated": 1677247025, + "vrmOnline": false, + "alarm": true, + "vpnIp": "10.2.3.109", + "vpnName": "HQ2211CCYDR", + "vpnOnline": false + }, + { + "name": "Nussbaumer, Winterthur/ZH | EKZ Eltop AG (AB2300049)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab2d9e2", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620428, + "lastPowerUpOrRestart": 1713948491, + "machineSerialNumber": "HQ2242ZMFFK", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/306992", + "accessLevel": 1, + "syscreated": 1685024947, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.248", + "vpnName": "HQ2242ZMFFK", + "vpnOnline": true + }, + { + "name": "Nyffeler, Stettlen/BE | Bantiger Elektro AG (2022-00419)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "501", + "identifier": "c0619ab0963d", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620476, + "lastPowerUpOrRestart": 1718613517, + "machineSerialNumber": "HQ2148YDNYD", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/246013", + "accessLevel": 1, + "syscreated": 1670921047, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.15", + "vpnName": "HQ2148YDNYD", + "vpnOnline": true + }, + { + "name": "Oberhänsli, Neunkirch/SH Vivo Solar(2023-00030)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab2e040", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620484, + "lastPowerUpOrRestart": 1718617484, + "machineSerialNumber": "HQ2242Q4RJH", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/282438", + "accessLevel": 1, + "syscreated": 1679648367, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.152", + "vpnName": "HQ2242Q4RJH", + "vpnOnline": true + }, + { + "name": "Ochsner, CH | Elektro Hegg AG (AB2300303) SN20230151", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab1d1a5", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620431, + "lastPowerUpOrRestart": 1704785311, + "machineSerialNumber": "HQ2217R6DFT", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/372521", + "accessLevel": 1, + "syscreated": 1700484283, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Ochsner, Pfäffikon SZ /clevergie ag AB2300276", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab2def5", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620448, + "lastPowerUpOrRestart": 1718599028, + "machineSerialNumber": "HQ2242ZVPRN", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/323411", + "accessLevel": 1, + "syscreated": 1688538400, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Ochsner, Ringgenberg BE | Helion Energy AG (AB2300029)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab167b2", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620471, + "lastPowerUpOrRestart": 1714722175, + "machineSerialNumber": "HQ2211JK9CF", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/314995", + "accessLevel": 1, + "syscreated": 1686737158, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.4.31", + "vpnName": "HQ2211JK9CF", + "vpnOnline": true + }, + { + "name": "Odermatt, Frauenfeld/TG | EWE Elektro AG (2022-00390)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da85a4b3", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 4, + "nbPvInverters": 0, + "firmware": "v2.73~r10", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1717854605, + "lastPowerUpOrRestart": 1689801502, + "machineSerialNumber": "HQ2150H7ERY", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/237798", + "accessLevel": 1, + "syscreated": 1669101622, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.242", + "vpnName": "HQ2150H7ERY", + "vpnOnline": false + }, + { + "name": "Oesch, Schwarzenegg/BE | InnovEnergy (2018-00013)", + "inverter": "MultiPlus 48/5000/70-100", + "inverterFw": "506", + "identifier": "c0619ab2ea62", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620491, + "lastPowerUpOrRestart": 1716388144, + "machineSerialNumber": "HQ22423WA6U", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/343436", + "accessLevel": 1, + "syscreated": 1693298660, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.4.123", + "vpnName": "HQ22423WA6U", + "vpnOnline": false + }, + { + "name": "Oeschger, Nürensdorf/ZH | e.e.com elektroanlagen ag (2021-00008)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "481", + "identifier": "0035ff642cba", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620447, + "lastPowerUpOrRestart": 1660901663, "machineSerialNumber": "HQ2032EQJJT", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/95357", "accessLevel": 1, "syscreated": 1613126814, @@ -7032,44 +17700,196 @@ "vpnOnline": true }, { - "name": "OST Ostschweizer Fachhochschule (2021-00077)", - "identifier": "0cb2b7b9a51b", + "name": "OL Atelier Vez Toitures - Genolier | GE (AB2300290) SN20230221", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "506", + "identifier": "c0619ab3817d", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620435, + "lastPowerUpOrRestart": 1714410941, + "machineSerialNumber": "HQ2247YXAEA", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/363388", + "accessLevel": 1, + "syscreated": 1698235164, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "OL Famille Blanchoud - Coppet | OptimalLiving SA / GE /(AB2300292) SN20230142", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "506", + "identifier": "c0619ab1d0ff", "hasMains": false, "hasGenerator": false, - "nbMppts": 0, - "nbPvInverters": 0, - "firmware": "v2.60~ditto", + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620461, + "lastPowerUpOrRestart": 1718616141, + "machineSerialNumber": "HQ22176GACM", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/337606", + "accessLevel": 1, + "syscreated": 1691752739, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "OL Rossellat, Nyon/VD | OptimalLiving SA (AB2300108)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d187", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r12", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1623277989, - "lastPowerUpOrRestart": 1622931140, - "machineSerialNumber": "HQ2042IBQUL", - "type": "Venus GX", - "vrmLink": "vrm.victronenergy.com/installation/109040", + "lastConnection": 1718620470, + "lastPowerUpOrRestart": 1701072134, + "machineSerialNumber": "HQ2217KG9H4", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/305518", "accessLevel": 1, - "syscreated": 1621325407, - "vrmOnline": false, + "syscreated": 1684768778, + "vrmOnline": true, "alarm": false, - "vpnIp": "10.2.1.51", - "vpnName": "HQ2042IBQUL", - "vpnOnline": false + "vpnIp": "10.2.3.238", + "vpnName": "HQ2217KG9H4", + "vpnOnline": true + }, + { + "name": "Oltramare, Gstaad/BE | solarUp energie GmbH (2022-00352)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "498", + "identifier": "48e7da86f4c3", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620450, + "lastPowerUpOrRestart": 1702365881, + "machineSerialNumber": "HQ2148ZQ4VC", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/232161", + "accessLevel": 1, + "syscreated": 1667816103, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.222", + "vpnName": "HQ2148ZQ4VC", + "vpnOnline": true + }, + { + "name": "Oppliger, Möriken/AG | Frei Elektro AG (2022-00286)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "498", + "identifier": "48e7da86fccb", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r9", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620467, + "lastPowerUpOrRestart": 1718011864, + "machineSerialNumber": "HQ21486XYCQ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/199631", + "accessLevel": 1, + "syscreated": 1659442752, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.104", + "vpnName": "HQ21486XYCQ", + "vpnOnline": true + }, + { + "name": "Ottiger, Flims/GR | elmaplan ag (2022-00510)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab2ddd7", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620477, + "lastPowerUpOrRestart": 1697045198, + "machineSerialNumber": "HQ2242V2DD7", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/272931", + "accessLevel": 1, + "syscreated": 1677575753, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.112", + "vpnName": "HQ2242V2DD7", + "vpnOnline": true + }, + { + "name": "Otz/Sutz/BE | Feldmann & Co.AG (23000051)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1dd26", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620487, + "lastPowerUpOrRestart": 1683288180, + "machineSerialNumber": "HQ2219G92MZ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/292569", + "accessLevel": 1, + "syscreated": 1681976860, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.194", + "vpnName": "HQ2219G92MZ", + "vpnOnline": true }, { "name": "Pantec, Selzach/SO | Gerber AG Elektro + Energie (2021-00146)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "485", "identifier": "e415f6f8835c", - "hasMains": false, + "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Testing", - "lastConnection": 1651163737, - "lastPowerUpOrRestart": 1638896538, + "lastConnection": 1718620444, + "lastPowerUpOrRestart": 1660901665, "machineSerialNumber": "HQ20466E4LS", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/132953", "accessLevel": 1, "syscreated": 1634224685, @@ -7079,6 +17899,156 @@ "vpnName": "HQ20466E4LS", "vpnOnline": true }, + { + "name": "Paravicini, Rifferswil/ZH | Hotz Technik GmbH (2022-00281)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "497", + "identifier": "48e7da88f9ab", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620481, + "lastPowerUpOrRestart": 1707662469, + "machineSerialNumber": "HQ2148GEZER", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/211693", + "accessLevel": 1, + "syscreated": 1662990013, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.154", + "vpnName": "HQ2148GEZER", + "vpnOnline": true + }, + { + "name": "Past, Feldgeding DE | EBS Elektrotechnik Stefan GmbH(2022-00280.2)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da89bb47", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620460, + "lastPowerUpOrRestart": 1678971783, + "machineSerialNumber": "HQ2148DU4TW", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/214669", + "accessLevel": 1, + "syscreated": 1663680153, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.162", + "vpnName": "HQ2148DU4TW", + "vpnOnline": true + }, + { + "name": "Perrin,Nyon/VD | OptimalLiving SA (AB2300136)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d1ab", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620447, + "lastPowerUpOrRestart": 1697130245, + "machineSerialNumber": "HQ2217XJHT2", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/314441", + "accessLevel": 1, + "syscreated": 1686645439, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.4.27", + "vpnName": "HQ2217XJHT2", + "vpnOnline": true + }, + { + "name": "Pessules, Coppet/VD | OptimalLiving SA (2022-00273)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da858425", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620444, + "lastPowerUpOrRestart": 1693858671, + "machineSerialNumber": "HQ2148HJFWN", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/209962", + "accessLevel": 1, + "syscreated": 1662539553, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.2.150", + "vpnName": "HQ2148HJFWN", + "vpnOnline": true + }, + { + "name": "Pfister Erlenbach / ZH | SyEnergy AG (2022-00421)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab16746", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620458, + "lastPowerUpOrRestart": 1699317573, + "machineSerialNumber": "HQ2211DVFQP", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/246315", + "accessLevel": 1, + "syscreated": 1670948682, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.19", + "vpnName": "HQ2211DVFQP", + "vpnOnline": true + }, + { + "name": "Pfister, Bülach/ZH | Senero AG (2022-00373)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "500", + "identifier": "48e7da8700c9", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620452, + "lastPowerUpOrRestart": 1670834912, + "machineSerialNumber": "HQ2204KRDVC", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/235605", + "accessLevel": 1, + "syscreated": 1668597651, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.239", + "vpnName": "HQ2204KRDVC", + "vpnOnline": true + }, { "name": "Pflugi, Breitenbach/SO | STARK STROM GmbH (2021-00046)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", @@ -7091,19 +18061,69 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163774, - "lastPowerUpOrRestart": 1634903498, + "lastConnection": 1718620470, + "lastPowerUpOrRestart": 1685003388, "machineSerialNumber": "HQ2042DFPF3", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/109404", "accessLevel": 1, "syscreated": 1621500921, - "vrmOnline": true, + "vrmOnline": false, "alarm": false, "vpnIp": "10.2.1.54", "vpnName": "HQ2042DFPF3", "vpnOnline": true }, + { + "name": "Philippe, Zollikofen/BE | Jäggi Elektroinstallationen AG (AB2300308)_SN20230154", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab1d10a", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620453, + "lastPowerUpOrRestart": 1711094399, + "machineSerialNumber": "HQ22177VFPJ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/333345", + "accessLevel": 1, + "syscreated": 1690788956, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Piraccini, Wintherthur/ZH | Senero AG (2022-00580)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab2dd9d", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620452, + "lastPowerUpOrRestart": 1690996593, + "machineSerialNumber": "HQ22427A6EW", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/280777", + "accessLevel": 1, + "syscreated": 1679308385, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.147", + "vpnName": "HQ22427A6EW", + "vpnOnline": true + }, { "name": "Plieninger, Löhningen/SH | vivo solar gmbh (2021-00155)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", @@ -7113,13 +18133,13 @@ "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 2, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163779, - "lastPowerUpOrRestart": 1637884805, + "lastConnection": 1718620448, + "lastPowerUpOrRestart": 1698229118, "machineSerialNumber": "HQ204667IAD", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/133965", "accessLevel": 1, "syscreated": 1634742771, @@ -7132,28 +18152,53 @@ { "name": "Plozza, Thun/BE | Brunner + Imboden AG (2021-00015)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "481", + "inverterFw": "496", "identifier": "0035ff919605", "hasMains": true, - "hasGenerator": true, + "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163770, - "lastPowerUpOrRestart": 1637681384, + "lastConnection": 1718620503, + "lastPowerUpOrRestart": 1715659823, "machineSerialNumber": "HQ2037Z68UM", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/97689", "accessLevel": 1, "syscreated": 1614756096, "vrmOnline": true, - "alarm": false, + "alarm": true, "vpnIp": "10.2.1.156", "vpnName": "HQ2037Z68UM", "vpnOnline": true }, + { + "name": "Plüss, Altikon/ZH | M. Schlatter AG (2022-00288)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "500", + "identifier": "c0619ab0be02", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 3, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620500, + "lastPowerUpOrRestart": 1710316824, + "machineSerialNumber": "HQ2201FYYFW", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/239240", + "accessLevel": 1, + "syscreated": 1669369761, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.191", + "vpnName": "HQ2201FYYFW", + "vpnOnline": true + }, { "name": "Pohlen, Immensee/SZ | Elektro Ottinger AG (2020-00029)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", @@ -7166,10 +18211,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163766, - "lastPowerUpOrRestart": 1638861652, + "lastConnection": 1718620495, + "lastPowerUpOrRestart": 1660901672, "machineSerialNumber": "HQ1945RY62M", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/64979", "accessLevel": 1, "syscreated": 1594217130, @@ -7182,7 +18227,7 @@ { "name": "Polak, Wil/SG | Swiss Photovoltaik GmbH (2021-00140)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "485", + "inverterFw": "497", "identifier": "1862e4c6fde9", "hasMains": true, "hasGenerator": false, @@ -7191,35 +18236,110 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163721, - "lastPowerUpOrRestart": 1650580901, + "lastConnection": 1718620461, + "lastPowerUpOrRestart": 1698943426, "machineSerialNumber": "HQ2101ZC3ZT", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/129620", "accessLevel": 1, "syscreated": 1632405867, "vrmOnline": true, - "alarm": false, + "alarm": true, "vpnIp": "10.2.1.124", "vpnName": "HQ2101ZC3ZT", "vpnOnline": true }, + { + "name": "Potocnick,Petersberg Marbach/DE | Sauer Elektrotechnik GmbH (AB2300196) SN20230157 Neu", + "inverter": "unknown", + "inverterFw": "unknown", + "identifier": "c0619ab3ecb1", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718000758, + "lastPowerUpOrRestart": 1718000722, + "machineSerialNumber": "HQ2250QHRGK", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/445770", + "accessLevel": 1, + "syscreated": 1718000357, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "PPE LA Maison du Lèman | OptimalLiving SA (AB2400048) SN20240006", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "508", + "identifier": "c0619ab38ce3", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620486, + "lastPowerUpOrRestart": 1718374780, + "machineSerialNumber": "HQ2247J7WFY", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/390804", + "accessLevel": 1, + "syscreated": 1705409801, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Primeo Energie AG | STARK STROM GmbH (2022-00168)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "48e7da865b5d", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620459, + "lastPowerUpOrRestart": 1714719624, + "machineSerialNumber": "HQ2150KY3DE", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/191917", + "accessLevel": 1, + "syscreated": 1657207714, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.76", + "vpnName": "HQ2150KY3DE", + "vpnOnline": true + }, { "name": "Putz-Scholz, Birkfeld/AT| Sonnenstrom GmbH (2020-00149)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "475", "identifier": "0c1c57002e4a", "hasMains": true, - "hasGenerator": true, + "hasGenerator": false, "nbMppts": 0, - "nbPvInverters": 2, + "nbPvInverters": 3, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163725, - "lastPowerUpOrRestart": 1637665772, + "lastConnection": 1718620497, + "lastPowerUpOrRestart": 1715009809, "machineSerialNumber": "HQ2005WSR4A", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/91695", "accessLevel": 1, "syscreated": 1610544014, @@ -7229,6 +18349,181 @@ "vpnName": "HQ2005WSR4A", "vpnOnline": true }, + { + "name": "PV Hoppler Mels, solplan ag(AB2300301) SN20240001", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "508", + "identifier": "c0619ab388e0", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620461, + "lastPowerUpOrRestart": 1713553453, + "machineSerialNumber": "HQ2247AQTP9", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/388562", + "accessLevel": 1, + "syscreated": 1704792956, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "PV Thut Bad Ragaz AG, solplan ag(AB2400029) SN20240013", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab388fd", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620481, + "lastPowerUpOrRestart": 1713250143, + "machineSerialNumber": "HQ2247UCY4N", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/393032", + "accessLevel": 1, + "syscreated": 1706002775, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "QDrop_Amazon_3_Jaw-Jaw", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab4b49c", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 4, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620478, + "lastPowerUpOrRestart": 1711816169, + "machineSerialNumber": "HQ23073TEV7", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/376472", + "accessLevel": 1, + "syscreated": 1701427198, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Räber, Laax/GR | Solpic AG (2022-00296)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab097b9", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 12, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620478, + "lastPowerUpOrRestart": 1707485120, + "machineSerialNumber": "HQ2148ZV2PG", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/270606", + "accessLevel": 1, + "syscreated": 1677064877, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.2.199", + "vpnName": "HQ2148ZV2PG", + "vpnOnline": true + }, + { + "name": "Rahel Müller, Heldswil/TG | Gebr. Willi Elektro AG (2022-00152)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "497", + "identifier": "48e7da8617a9", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620504, + "lastPowerUpOrRestart": 1681999526, + "machineSerialNumber": "HQ2201JWKH9", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/185858", + "accessLevel": 1, + "syscreated": 1655381761, + "vrmOnline": false, + "alarm": false, + "vpnIp": "10.2.2.52", + "vpnName": "HQ2201JWKH9", + "vpnOnline": true + }, + { + "name": "Raiffeisenbank Jungfrau | Interlaken (2022-00465)", + "inverter": "MultiPlus-II 48/10000/140-100/100", + "inverterFw": "502", + "identifier": "c0619ab09a85", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620511, + "lastPowerUpOrRestart": 1684941500, + "machineSerialNumber": "HQ21497RKQC", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/259263", + "accessLevel": 1, + "syscreated": 1674547033, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.59", + "vpnName": "HQ21497RKQC", + "vpnOnline": true + }, + { + "name": "Rascor, Steinmaur/ZH/CH | Senero AG (2021-00208)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "508", + "identifier": "48e7da8830d3", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620503, + "lastPowerUpOrRestart": 1705510137, + "machineSerialNumber": "HQ2201MYZCP", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/175744", + "accessLevel": 1, + "syscreated": 1652198048, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.17", + "vpnName": "HQ2201MYZCP", + "vpnOnline": true + }, { "name": "RBS, Schanzentunnel/BE | InnovEnergy (2018-00022)", "inverter": "Quattro 48/10000/140-2x100", @@ -7243,8 +18538,8 @@ "updateTo": "Official release", "lastConnection": 1542797758, "lastPowerUpOrRestart": 1542797098, - "machineSerialNumber": null, - "type": "Venus GX", + "machineSerialNumber": "unknown", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/28785", "accessLevel": 1, "syscreated": 1542791007, @@ -7255,54 +18550,104 @@ "vpnOnline": false }, { - "name": "Referenzanlage, Ebersberg/DE | Eberwerk GmbH (2020-00076)", + "name": "Reichel, Feldgeding DE | EBS Elektrotechnik Stefan GmbH (2022-00445.1)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "475", - "identifier": "f8369bf607ec", + "inverterFw": "502", + "identifier": "c0619ab167e2", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620480, + "lastPowerUpOrRestart": 1701329924, + "machineSerialNumber": "HQ2211N9UZ7", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/252363", + "accessLevel": 1, + "syscreated": 1672759272, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.35", + "vpnName": "HQ2211N9UZ7", + "vpnOnline": true + }, + { + "name": "Reichenbach, Rüfi/GL/CH | Marti Elektroanlagen AG (2022-00293)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "498", + "identifier": "48e7da8743cb", "hasMains": false, "hasGenerator": false, "nbMppts": 0, - "nbPvInverters": 0, - "firmware": "v2.60~ditto", + "nbPvInverters": 1, + "firmware": "v2.73~r10", "autoUpdate": "Check", - "updateTo": "Release-candidate", - "lastConnection": 1642063335, - "lastPowerUpOrRestart": 1621080162, - "machineSerialNumber": "HQ2005XWTDQ", - "type": "Venus GX", - "vrmLink": "vrm.victronenergy.com/installation/73003", + "updateTo": "Official release", + "lastConnection": 1718620485, + "lastPowerUpOrRestart": 1666852939, + "machineSerialNumber": "HQ2148PAVEJ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/216767", "accessLevel": 1, - "syscreated": 1600935404, - "vrmOnline": false, + "syscreated": 1664217589, + "vrmOnline": true, "alarm": false, - "vpnIp": "10.2.0.225", - "vpnName": "HQ2005XWTDQ", - "vpnOnline": false + "vpnIp": "10.2.2.170", + "vpnName": "HQ2148PAVEJ", + "vpnOnline": true }, { "name": "Reichlin, Immensee/SZ | KWenergy GmbH (2020-00138)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "475", + "inverterFw": "502", "identifier": "0c1c57073356", "hasMains": true, "hasGenerator": false, "nbMppts": 0, - "nbPvInverters": 1, - "firmware": "v2.73~r6", + "nbPvInverters": 0, + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163760, - "lastPowerUpOrRestart": 1649767363, + "lastConnection": 1718620498, + "lastPowerUpOrRestart": 1711616338, "machineSerialNumber": "HQ20242KCST", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/87928", "accessLevel": 1, "syscreated": 1607072836, "vrmOnline": true, "alarm": false, - "vpnIp": "10.2.0.253", + "vpnIp": "10.2.2.188", "vpnName": "HQ20242KCST", - "vpnOnline": false + "vpnOnline": true + }, + { + "name": "Reinhard, Kastanienbaum/LU | asons ag (2023-00034)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab167f8", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620466, + "lastPowerUpOrRestart": 1689253886, + "machineSerialNumber": "HQ2211NK24Q", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/283844", + "accessLevel": 1, + "syscreated": 1679992915, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.157", + "vpnName": "HQ2211NK24Q", + "vpnOnline": true }, { "name": "Reinhard, Ufhusen/LU | Simon Reinhard (2021-00198)", @@ -7316,10 +18661,10 @@ "firmware": "v2.83~victron", "autoUpdate": "Check", "updateTo": "Testing", - "lastConnection": 1651163743, + "lastConnection": 1674049835, "lastPowerUpOrRestart": 1650970823, "machineSerialNumber": "HQ2101K4EUC", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/143915", "accessLevel": 1, "syscreated": 1639059176, @@ -7329,6 +18674,56 @@ "vpnName": "HQ2101K4EUC", "vpnOnline": false }, + { + "name": "Reiter, Fridolfing DE/ Schupfner GmbH AB2300158 (SN20230122)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab1dd48", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620508, + "lastPowerUpOrRestart": 1699439786, + "machineSerialNumber": "HQ2219NMG4C", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/322626", + "accessLevel": 1, + "syscreated": 1688375315, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Reiter, Lauerz/SZ | ALVA Systems AG (2022-00264)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "48e7da879c35", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 4, + "nbPvInverters": 0, + "firmware": "v2.73~r9", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620477, + "lastPowerUpOrRestart": 1696446257, + "machineSerialNumber": "HQ21486RPHH", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/223157", + "accessLevel": 1, + "syscreated": 1665679891, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.197", + "vpnName": "HQ21486RPHH", + "vpnOnline": true + }, { "name": "Remund, Rizenbach/BE | energy unlimited GmbH (2020-00014)", "inverter": "MultiPlus-II 48/5000/70-48", @@ -7341,24 +18736,49 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163727, - "lastPowerUpOrRestart": 1650449228, + "lastConnection": 1712836529, + "lastPowerUpOrRestart": 1660901688, "machineSerialNumber": "HQ1933CZS3Z", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/59501", "accessLevel": 1, "syscreated": 1588860163, - "vrmOnline": true, + "vrmOnline": false, "alarm": false, "vpnIp": "10.2.0.158", "vpnName": "HQ1933CZS3Z", + "vpnOnline": false + }, + { + "name": "Reust, Affeltrangen/TG | Gebr. Willi Elektro AG (2022-00259)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "498", + "identifier": "48e7da87d631", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620466, + "lastPowerUpOrRestart": 1670581028, + "machineSerialNumber": "HQ2148GY6K9", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/207785", + "accessLevel": 1, + "syscreated": 1661871316, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.142", + "vpnName": "HQ2148GY6K9", "vpnOnline": true }, { - "name": "Richner, Hinterkappelen/BE | Gerber AG (2021-00167)", + "name": "Richner, Biel-Benken/BL | Ruther AG (2022-00110)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "485", - "identifier": "0035ff6448ef", + "inverterFw": "496", + "identifier": "48e7da8717f7", "hasMains": false, "hasGenerator": false, "nbMppts": 0, @@ -7366,10 +18786,35 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163777, - "lastPowerUpOrRestart": 1645084842, + "lastConnection": 1718620508, + "lastPowerUpOrRestart": 1707149679, + "machineSerialNumber": "HQ2148F6FHU", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/172978", + "accessLevel": 1, + "syscreated": 1651235224, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.13", + "vpnName": "HQ2148F6FHU", + "vpnOnline": false + }, + { + "name": "Richner, Hinterkappelen/BE | Gerber AG (2021-00167)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "0035ff6448ef", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620499, + "lastPowerUpOrRestart": 1718528462, "machineSerialNumber": "HQ20466CVYE", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/136620", "accessLevel": 1, "syscreated": 1636019822, @@ -7377,49 +18822,124 @@ "alarm": false, "vpnIp": "10.2.1.146", "vpnName": "HQ20466CVYE", - "vpnOnline": true + "vpnOnline": false + }, + { + "name": "Richner, Sirnach/TG | Elektro Schönenberger AG (AB2300147) SN20230114", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab1dba3", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620506, + "lastPowerUpOrRestart": 1711651412, + "machineSerialNumber": "HQ2217P479G", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/318261", + "accessLevel": 1, + "syscreated": 1687419833, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false }, { "name": "Rickenbach, Neftenbach/ZH | eConnect (2020-00020)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "481", + "inverterFw": "497", "identifier": "e415f6f87cb7", - "hasMains": false, + "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163770, - "lastPowerUpOrRestart": 1646053750, + "lastConnection": 1718620524, + "lastPowerUpOrRestart": 1718576845, "machineSerialNumber": "HQ2032EDLPI", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/58176", "accessLevel": 1, "syscreated": 1587036944, "vrmOnline": true, - "alarm": false, + "alarm": true, "vpnIp": "10.2.1.27", "vpnName": "HQ2032EDLPI", "vpnOnline": true }, { - "name": "Riedi, Ortsschwaben/BE | Gerber AG (2021-00238)", + "name": "Rickli, Thun/BE | Johner Elektro AG (2022-00149)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "497", + "identifier": "48e7da88666d", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620509, + "lastPowerUpOrRestart": 1661268120, + "machineSerialNumber": "HQ2139F6C4W", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/184237", + "accessLevel": 1, + "syscreated": 1654854645, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.45", + "vpnName": "HQ2139F6C4W", + "vpnOnline": true + }, + { + "name": "Riedi, Niederuzwil/SG | Jaeggi Gmünder Energietechnik AG (2022-00094)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "490", + "identifier": "48e7da889583", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620523, + "lastPowerUpOrRestart": 1660901618, + "machineSerialNumber": "HQ213937AJJ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/170526", + "accessLevel": 1, + "syscreated": 1650382332, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.2", + "vpnName": "HQ213937AJJ", + "vpnOnline": true + }, + { + "name": "Riedi, Ortsschwaben/BE | Gerber AG (2021-00238)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", "identifier": "48e7da896141", "hasMains": false, "hasGenerator": false, "nbMppts": 3, "nbPvInverters": 0, - "firmware": "v2.73~r6", + "firmware": "v2.73~r12", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163776, - "lastPowerUpOrRestart": 1649865571, + "lastConnection": 1718620494, + "lastPowerUpOrRestart": 1718608962, "machineSerialNumber": "HQ2128TF97Q", - "type": "Cerbo GX", + "controllerType": "Cerbo GX", "vrmLink": "vrm.victronenergy.com/installation/157263", "accessLevel": 1, "syscreated": 1645458418, @@ -7430,59 +18950,10 @@ "vpnOnline": true }, { - "name": "Rohner, Remetschwil/AG | Ronald Rohner (2021-00009)", + "name": "Rindlisbacher, Allschwil/BL | STARK STROM GmbH (2022-00009)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "494", - "identifier": "0c1c570039bd", - "hasMains": true, - "hasGenerator": false, - "nbMppts": 2, - "nbPvInverters": 2, - "firmware": "v2.73~r6", - "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1651163786, - "lastPowerUpOrRestart": 1648685607, - "machineSerialNumber": "HQ2005UFMG1", - "type": "Venus GX", - "vrmLink": "vrm.victronenergy.com/installation/76825", - "accessLevel": 1, - "syscreated": 1603981513, - "vrmOnline": true, - "alarm": false, - "vpnIp": "10.2.0.241", - "vpnName": "HQ2005UFMG1", - "vpnOnline": true - }, - { - "name": "Rohr, Schwanden/BE | InnovEnergy (2019-00006)", - "inverter": "VE.Bus System", - "identifier": "102c6b8607e6", - "hasMains": false, - "hasGenerator": false, - "nbMppts": 0, - "nbPvInverters": 2, - "firmware": "v2.60~r4", - "autoUpdate": "Off", - "updateTo": "Official release", - "lastConnection": 1651163758, - "lastPowerUpOrRestart": 1622014850, - "machineSerialNumber": "HQ18266ZP14", - "type": "Color Control GX", - "vrmLink": "vrm.victronenergy.com/installation/33162", - "accessLevel": 1, - "syscreated": 1552403847, - "vrmOnline": true, - "alarm": false, - "vpnIp": "10.2.0.177", - "vpnName": "HQ18266ZP14", - "vpnOnline": false - }, - { - "name": "Rohrer, Frick/AG | Elektro Siegrist AG (2021-00169)", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "485", - "identifier": "e415f6f88de8", + "identifier": "102c6b9d06b9", "hasMains": true, "hasGenerator": false, "nbMppts": 0, @@ -7490,10 +18961,210 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163755, - "lastPowerUpOrRestart": 1647278064, + "lastConnection": 1718555985, + "lastPowerUpOrRestart": 1660901603, + "machineSerialNumber": "HQ2118D6HKR", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/157562", + "accessLevel": 1, + "syscreated": 1645601364, + "vrmOnline": false, + "alarm": false, + "vpnIp": "10.2.1.207", + "vpnName": "HQ2118D6HKR", + "vpnOnline": false + }, + { + "name": "Ringgenberg - Jungfrauweg 12, 3053/BE | Feldmann & Co. AG (AB2300121) Lätti", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d19c", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620485, + "lastPowerUpOrRestart": 1718455123, + "machineSerialNumber": "HQ2217TMN69", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/314370", + "accessLevel": 1, + "syscreated": 1686637411, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.4.26", + "vpnName": "HQ2217TMN69", + "vpnOnline": true + }, + { + "name": "Risch Rüti/ZH | E.Kunz AG Elektroinstallationen (AB2300215) SN20230108", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d211", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620508, + "lastPowerUpOrRestart": 1712729378, + "machineSerialNumber": "HQ2217HHJ7Q", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/319742", + "accessLevel": 1, + "syscreated": 1687768638, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Ritter, Meilen/ZH | Elektro Möhl AG (2022-00330)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da883745", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620526, + "lastPowerUpOrRestart": 1687811500, + "machineSerialNumber": "HQ2150GVRK2", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/222435", + "accessLevel": 1, + "syscreated": 1665566774, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.193", + "vpnName": "HQ2150GVRK2", + "vpnOnline": true + }, + { + "name": "Rogenmoser, Oberägeri/ZG | Elektrotech Grab AG (AB2400004)_SN20240009", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "508", + "identifier": "c0619ab3869f", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620514, + "lastPowerUpOrRestart": 1706199456, + "machineSerialNumber": "HQ2247PEFY6", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/389291", + "accessLevel": 1, + "syscreated": 1704957184, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Rohner, Remetschwil/AG | Ronald Rohner (2021-00009)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "494", + "identifier": "0c1c570039bd", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1717999113, + "lastPowerUpOrRestart": 1674697690, + "machineSerialNumber": "HQ2005UFMG1", + "controllerType": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/76825", + "accessLevel": 1, + "syscreated": 1603981513, + "vrmOnline": false, + "alarm": false, + "vpnIp": "10.2.0.241", + "vpnName": "HQ2005UFMG1", + "vpnOnline": false + }, + { + "name": "Rohner, Remetschwil/AG | Ronald Rohner (2022-00506))", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "500", + "identifier": "48e7da86ab67", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 2, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620510, + "lastPowerUpOrRestart": 1677249507, + "machineSerialNumber": "HQ2148DC6M6", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/229885", + "accessLevel": 1, + "syscreated": 1667227317, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.214", + "vpnName": "HQ2148DC6M6", + "vpnOnline": true + }, + { + "name": "Rohr, Schwanden/BE | InnovEnergy (2019-00006)", + "inverter": "MultiPlus-II 48/3000/35-32 (50A ext sensor)", + "inverterFw": "497", + "identifier": "102c6b8607e6", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620514, + "lastPowerUpOrRestart": 1718596873, + "machineSerialNumber": "HQ2104DZ7N5", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/33162", + "accessLevel": 1, + "syscreated": 1552403847, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.104", + "vpnName": "HQ2104DZ7N5", + "vpnOnline": true + }, + { + "name": "Rohrer, Frick/AG | Elektro Siegrist AG (2021-00169)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "e415f6f88de8", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620497, + "lastPowerUpOrRestart": 1701355206, "machineSerialNumber": "HQ20462H3UH", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/136483", "accessLevel": 1, "syscreated": 1635951810, @@ -7512,13 +19183,13 @@ "hasGenerator": true, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.66~rc5", + "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163786, - "lastPowerUpOrRestart": 1630324717, + "lastConnection": 1718620496, + "lastPowerUpOrRestart": 1683530402, "machineSerialNumber": "HQ20426QVYN", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/110567", "accessLevel": 1, "syscreated": 1622119024, @@ -7531,19 +19202,19 @@ { "name": "Rohrer, Walzenhausen/AR | Swiss Photovoltaik GmbH (2021-00160)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "485", + "inverterFw": "502", "identifier": "e415f6f1a343", - "hasMains": false, + "hasMains": true, "hasGenerator": false, "nbMppts": 0, - "nbPvInverters": 0, + "nbPvInverters": 1, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163756, - "lastPowerUpOrRestart": 1642514727, + "lastConnection": 1718620502, + "lastPowerUpOrRestart": 1697015131, "machineSerialNumber": "HQ21015DJYW", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/130579", "accessLevel": 1, "syscreated": 1632990770, @@ -7551,7 +19222,7 @@ "alarm": false, "vpnIp": "10.2.1.128", "vpnName": "HQ21015DJYW", - "vpnOnline": true + "vpnOnline": false }, { "name": "Rohrschneider, Troisdorf/DE | IL sun+ Innovative Energie (2020-00139)", @@ -7562,13 +19233,13 @@ "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.60~ditto", + "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163751, - "lastPowerUpOrRestart": 1649348646, + "lastConnection": 1718620486, + "lastPowerUpOrRestart": 1660901667, "machineSerialNumber": "HQ2028K5H19", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/87978", "accessLevel": 1, "syscreated": 1607086953, @@ -7578,22 +19249,72 @@ "vpnName": "HQ2028K5H19", "vpnOnline": true }, + { + "name": "Roland Meier/CH / Roost + Aeberli AG (AB2300160) SN20230118", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1dcad", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620520, + "lastPowerUpOrRestart": 1711725624, + "machineSerialNumber": "HQ2219X9A4V", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/320750", + "accessLevel": 1, + "syscreated": 1687946705, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Römisch-Katholische Gesamtkirchgemeinde, Bern/BE | Brunner + Imboden AG (2020-00004)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "470", + "identifier": "7c669d4dfa88", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v3.33", + "autoUpdate": "On", + "updateTo": "Official release", + "lastConnection": 1718620534, + "lastPowerUpOrRestart": 1718618134, + "machineSerialNumber": "HQ1927BHTIB", + "controllerType": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/54460", + "accessLevel": 1, + "syscreated": 1582645923, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, { "name": "Rosenberger, Tittmoning/DE | Schupfner & Co. GmbH (2021-00011)", "inverter": "MultiPlus-II 48/5000/70-48", - "inverterFw": "475", + "inverterFw": "502", "identifier": "0035ff8d7eb6", "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 2, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163750, - "lastPowerUpOrRestart": 1651134353, + "lastConnection": 1718620526, + "lastPowerUpOrRestart": 1695982050, "machineSerialNumber": "HQ2032Z82RD", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/97049", "accessLevel": 1, "syscreated": 1614258119, @@ -7604,21 +19325,121 @@ "vpnOnline": true }, { - "name": "Roth, Kandersteg/BE | Bouygues AG (2020-00144)", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "475", - "identifier": "0cb2b7b9dc47", - "hasMains": true, + "name": "Roser,Allschwil / BL| Tims Dächer GmbH (AB2300071)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab1cdca", + "hasMains": false, "hasGenerator": false, - "nbMppts": 0, - "nbPvInverters": 3, - "firmware": "v2.66~rc5", + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r12", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163743, - "lastPowerUpOrRestart": 1631791493, + "lastConnection": 1718620514, + "lastPowerUpOrRestart": 1696003666, + "machineSerialNumber": "HQ2217P7JUH", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/302373", + "accessLevel": 1, + "syscreated": 1684137249, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.222", + "vpnName": "HQ2217P7JUH", + "vpnOnline": true + }, + { + "name": "Rosgartenstrasse28", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab0975f", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620487, + "lastPowerUpOrRestart": 1713528232, + "machineSerialNumber": "HQ2148TH2PC", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/272732", + "accessLevel": 1, + "syscreated": 1677519065, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.227", + "vpnName": "HQ2148TH2PC", + "vpnOnline": true + }, + { + "name": "Rosner, Tumegl/GR/CH | Solpic AG (2022-00083)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "48e7da86bd05", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620539, + "lastPowerUpOrRestart": 1660901615, + "machineSerialNumber": "HQ2128VT9YV", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/169632", + "accessLevel": 1, + "syscreated": 1649927692, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.254", + "vpnName": "HQ2128VT9YV", + "vpnOnline": true + }, + { + "name": "Rostek, DE | Kabis EHS (AB2300137)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab2e688", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620512, + "lastPowerUpOrRestart": 1700219527, + "machineSerialNumber": "HQ2242UGRN6", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/314607", + "accessLevel": 1, + "syscreated": 1686661420, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.4.28", + "vpnName": "HQ2242UGRN6", + "vpnOnline": true + }, + { + "name": "Roth, Kandersteg/BE | Bouygues AG (2020-00144)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "0cb2b7b9dc47", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620503, + "lastPowerUpOrRestart": 1714215589, "machineSerialNumber": "HQ202863MWG", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/92684", "accessLevel": 1, "syscreated": 1611312946, @@ -7629,46 +19450,121 @@ "vpnOnline": true }, { - "name": "Rüdisühli, Lanterswil/TG | Gebr. Willi Elektro AG (2021-00038)", + "name": "Röthlisberger, BE | Terrasystems AG (2022-00113)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "481", - "identifier": "e415f6fd877a", - "hasMains": false, + "inverterFw": "502", + "identifier": "48e7da88a743", + "hasMains": true, "hasGenerator": false, - "nbMppts": 0, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620513, + "lastPowerUpOrRestart": 1681374809, + "machineSerialNumber": "HQ2148FEAZC", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/175403", + "accessLevel": 1, + "syscreated": 1652108706, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.15", + "vpnName": "HQ2148FEAZC", + "vpnOnline": true + }, + { + "name": "Rubin Gartenbau, Utzigen/BE/CH | Burkhard Elektro AG (2022-00071)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "48e7da886407", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 4, "nbPvInverters": 0, "firmware": "v2.73~r6", "autoUpdate": "Check", - "updateTo": "Release-candidate", - "lastConnection": 1651163757, - "lastPowerUpOrRestart": 1647278027, + "updateTo": "Official release", + "lastConnection": 1718620501, + "lastPowerUpOrRestart": 1660901628, + "machineSerialNumber": "HQ21393FGNM", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/169422", + "accessLevel": 1, + "syscreated": 1649859321, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.253", + "vpnName": "HQ21393FGNM", + "vpnOnline": true + }, + { + "name": "Rüdisühli, Lanterswil/TG | Gebr. Willi Elektro AG (2021-00038)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "e415f6fd877a", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620513, + "lastPowerUpOrRestart": 1704976799, "machineSerialNumber": "HQ2042BKEES", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/109480", "accessLevel": 1, "syscreated": 1621520523, "vrmOnline": true, - "alarm": false, + "alarm": true, "vpnIp": "10.2.1.55", "vpnName": "HQ2042BKEES", "vpnOnline": true }, + { + "name": "Rüede Grüningen /ZH | Kunz AG Grüningen (2022-00285)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "501", + "identifier": "48e7da88ae47", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620508, + "lastPowerUpOrRestart": 1689690404, + "machineSerialNumber": "HQ2208TAXEV", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/214314", + "accessLevel": 1, + "syscreated": 1663596211, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.159", + "vpnName": "HQ2208TAXEV", + "vpnOnline": true + }, { "name": "Rüeger, Winterthur/ZH | EWE Elektro AG (2020-00009)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "471", + "inverterFw": "502", "identifier": "7c669d48ba7e", - "hasMains": false, + "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163737, - "lastPowerUpOrRestart": 1639401901, + "lastConnection": 1718620511, + "lastPowerUpOrRestart": 1710232064, "machineSerialNumber": "HQ1933NJ7Y6", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/54683", "accessLevel": 1, "syscreated": 1582814131, @@ -7678,47 +19574,147 @@ "vpnName": "HQ1933NJ7Y6", "vpnOnline": true }, + { + "name": "Rüegger, Rothrist/AG | Elektro H.Frei AG (AB2300033)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1dd30", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620510, + "lastPowerUpOrRestart": 1718138992, + "machineSerialNumber": "HQ2219NXXZF", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/292702", + "accessLevel": 1, + "syscreated": 1681990997, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.3.195", + "vpnName": "HQ2219NXXZF", + "vpnOnline": true + }, { "name": "Rufer, Meiringen/BE | InnovEnergy (2017-00006)", "inverter": "MultiGrid 48/3000/35-50", "inverterFw": "465", "identifier": "04a316e173ca", "hasMains": true, - "hasGenerator": true, + "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.60~r4", + "firmware": "v3.32", "autoUpdate": "Check", - "updateTo": "Release-candidate", - "lastConnection": 1651163739, - "lastPowerUpOrRestart": 1649159404, + "updateTo": "Official release", + "lastConnection": 1716810195, + "lastPowerUpOrRestart": 1716810015, "machineSerialNumber": "HQ1724TB1P1", - "type": "Color Control GX", + "controllerType": "Color Control GX", "vrmLink": "vrm.victronenergy.com/installation/15352", "accessLevel": 1, "syscreated": 1508501387, - "vrmOnline": true, + "vrmOnline": false, "alarm": false, "vpnIp": "10.2.0.179", "vpnName": "HQ1724TB1P1", "vpnOnline": true }, + { + "name": "Rufer, Meiringen/BE | InnovEnergy (2017-00006) Cerbo", + "inverter": "MultiGrid 48/3000/35-50", + "inverterFw": "510", + "identifier": "102c6bc2b1de", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v3.31", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620537, + "lastPowerUpOrRestart": 1716972283, + "machineSerialNumber": "HQ2118TDDEF", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/439594", + "accessLevel": 1, + "syscreated": 1716555309, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Ruoss, Aarberg/BE | Feldmann & Co. AG (2022-00121)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da856ebf", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620530, + "lastPowerUpOrRestart": 1715703095, + "machineSerialNumber": "HQ2150HQMKZ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/191134", + "accessLevel": 1, + "syscreated": 1657022858, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.70", + "vpnName": "HQ2150HQMKZ", + "vpnOnline": true + }, + { + "name": "Rutishauser, Stein/AR | Hablützel AG (2022-00134)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "497", + "identifier": "48e7da866a1d", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620495, + "lastPowerUpOrRestart": 1661160470, + "machineSerialNumber": "HQ2201AE4GU", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/181850", + "accessLevel": 1, + "syscreated": 1654096721, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.34", + "vpnName": "HQ2201AE4GU", + "vpnOnline": true + }, { "name": "Rüttimann, Ebertswil/ZH | ecoEN (2020-00045)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "474", + "inverterFw": "502", "identifier": "0479b7ef71f4", "hasMains": true, "hasGenerator": false, "nbMppts": 1, "nbPvInverters": 2, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163761, - "lastPowerUpOrRestart": 1649927784, + "lastConnection": 1718620541, + "lastPowerUpOrRestart": 1716988891, "machineSerialNumber": "HQ1930DCWYX", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/62080", "accessLevel": 1, "syscreated": 1591696851, @@ -7728,22 +19724,172 @@ "vpnName": "HQ1930DCWYX", "vpnOnline": true }, + { + "name": "Ryffel, Schwarzenburg/BE | Breu AG (AB2300300)_SN20230222", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab38900", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718574333, + "lastPowerUpOrRestart": 1715174815, + "machineSerialNumber": "HQ2247KUHZX", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/372787", + "accessLevel": 1, + "syscreated": 1700550873, + "vrmOnline": false, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Sager, Stettfurt/TG | EWE Elektro AG (2022-00386)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "500", + "identifier": "48e7da892917", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620507, + "lastPowerUpOrRestart": 1701590097, + "machineSerialNumber": "HQ2149DYXR2", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/235741", + "accessLevel": 1, + "syscreated": 1668610801, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.241", + "vpnName": "HQ2149DYXR2", + "vpnOnline": true + }, + { + "name": "Salidomo 9 Batterieraum , Bergkirchen/DE | EBS Elektrotechnik Stefan GmbH (2022-00092)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "00e93aac3463", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 3, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620541, + "lastPowerUpOrRestart": 1708528902, + "machineSerialNumber": "HQ2139WHQNE", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/163872", + "accessLevel": 1, + "syscreated": 1648047796, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.232", + "vpnName": "HQ2139WHQNE", + "vpnOnline": true + }, + { + "name": "Salidomo Meiringen Victron 3.31 (Cerbo)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "510", + "identifier": "48e7da86de07", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v3.32", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1717577563, + "lastPowerUpOrRestart": 1717577233, + "machineSerialNumber": "HQ2201UMAG2", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/356858", + "accessLevel": 1, + "syscreated": 1696600977, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.4.155", + "vpnName": "HQ2201UMAG2", + "vpnOnline": false + }, + { + "name": "Salidomo Meiringen Victron 3.32 (Venus)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "510", + "identifier": "e415f6fc9a8f", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1717417502, + "lastPowerUpOrRestart": 1717409363, + "machineSerialNumber": "unknown", + "controllerType": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/442842", + "accessLevel": 1, + "syscreated": 1717271306, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "SaliGO Bohren-Brand Marcel | Clevertrailer Lyss/BE (2023)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab2e5ce", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620545, + "lastPowerUpOrRestart": 1718369377, + "machineSerialNumber": "HQ22427VZMZ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/296730", + "accessLevel": 1, + "syscreated": 1682932123, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.209", + "vpnName": "HQ22427VZMZ", + "vpnOnline": true + }, { "name": "SaliGO!-Mietspeicher, Meiringen/BE | InnovEnergy", "inverter": "MultiPlus 48/1200/12-16", - "inverterFw": "430", + "inverterFw": "497", "identifier": "6064054cdc7a", - "hasMains": true, + "hasMains": false, "hasGenerator": true, "nbMppts": 0, "nbPvInverters": 0, - "firmware": "v2.57~ie", + "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1603373093, - "lastPowerUpOrRestart": 1603093970, + "lastConnection": 1717398960, + "lastPowerUpOrRestart": 1717056409, "machineSerialNumber": "HQ1751U9E6Q", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/25261", "accessLevel": 1, "syscreated": 1535801086, @@ -7753,35 +19899,185 @@ "vpnName": "HQ1751U9E6Q", "vpnOnline": false }, + { + "name": "Salipro 45 Batterieraum , Bergkirchen / DE | EBS Elektrotechnik GmbH ( 2022-00230 )", + "inverter": "MultiPlus-II 48/10000/140-100/100", + "inverterFw": "502", + "identifier": "c0619ab1047f", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 3, + "nbPvInverters": 3, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620494, + "lastPowerUpOrRestart": 1712320013, + "machineSerialNumber": "HQ2204K7HWT", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/223567", + "accessLevel": 1, + "syscreated": 1665756622, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.198", + "vpnName": "HQ2204K7HWT", + "vpnOnline": true + }, { "name": "Saner, Laufen/BL | STARK STROM GmbH (2021-00188)", "inverter": "MultiPlus-II 48/5000/70-48", "inverterFw": "490", "identifier": "e415f6f87e7c", - "hasMains": true, + "hasMains": false, "hasGenerator": false, - "nbMppts": 0, + "nbMppts": 1, "nbPvInverters": 1, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651144077, - "lastPowerUpOrRestart": 1648203643, + "lastConnection": 1718620546, + "lastPowerUpOrRestart": 1710272178, "machineSerialNumber": "HQ2046NRUVI", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/141874", "accessLevel": 1, "syscreated": 1638264003, - "vrmOnline": false, + "vrmOnline": true, "alarm": false, "vpnIp": "10.2.1.166", "vpnName": "HQ2046NRUVI", + "vpnOnline": true + }, + { + "name": "Santner, Mariapfarr/AT | Elektro Meissnitzer (2022-00574)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab169df", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620522, + "lastPowerUpOrRestart": 1684843552, + "machineSerialNumber": "HQ22117VKN6", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/276230", + "accessLevel": 1, + "syscreated": 1678268497, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.125", + "vpnName": "HQ22117VKN6", + "vpnOnline": true + }, + { + "name": "Sarah Gold, Kanalweg 10, Deitingen/ SO | Helion Energy AG (AB2300326) SN20230207", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab3933a", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620502, + "lastPowerUpOrRestart": 1712870004, + "machineSerialNumber": "HQ2247J4FNJ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/353042", + "accessLevel": 1, + "syscreated": 1695730434, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "SATELEC - Pilote 1", + "inverter": "unknown", + "inverterFw": "unknown", + "identifier": "48e7da85a943", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1677215009, + "lastPowerUpOrRestart": 1674039780, + "machineSerialNumber": "HQ2149DF4ZF", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/179781", + "accessLevel": 1, + "syscreated": 1653468845, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.28", + "vpnName": "HQ2149DF4ZF", + "vpnOnline": false + }, + { + "name": "SBB Bauwagen / Xs_tief 629-4/ Brig", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "94e36dce9703", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620529, + "lastPowerUpOrRestart": 1717490181, + "machineSerialNumber": "HQ2028CLPYC", + "controllerType": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/94239", + "accessLevel": 1, + "syscreated": 1612359464, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.19", + "vpnName": "HQ2028CLPYC", + "vpnOnline": true + }, + { + "name": "SBB Bauwagen / Xs_tief 630-2 / Erstfeld", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "0035ff646c74", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1702167027, + "lastPowerUpOrRestart": 1702166678, + "machineSerialNumber": "HQ2032N3QK8", + "controllerType": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/94190", + "accessLevel": 1, + "syscreated": 1612347681, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.1.20", + "vpnName": "HQ2032N3QK8", "vpnOnline": false }, { "name": "Schaffer, Greifensee/ZH | Jaeggi Gmünder Energietechnik AG (2020-00112)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "475", + "inverterFw": "502", "identifier": "1862e4d154a4", "hasMains": true, "hasGenerator": false, @@ -7790,10 +20086,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163782, - "lastPowerUpOrRestart": 1649784191, + "lastConnection": 1718620502, + "lastPowerUpOrRestart": 1690378362, "machineSerialNumber": "HQ2021U1XFF", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/76838", "accessLevel": 1, "syscreated": 1603985139, @@ -7804,21 +20100,171 @@ "vpnOnline": true }, { - "name": "Scharpf, Böttlingen/DE | Elser Elektro + Haustechnik GmbH (2021-00222)", - "inverter": "MultiPlus-II 48/5000/70-48", - "inverterFw": "490", - "identifier": "48e7da86b0f5", + "name": "Schäfli, Ermatigen/TG | EWE Elektro AG (2022-00193)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "500", + "identifier": "48e7da8974c5", "hasMains": true, "hasGenerator": false, - "nbMppts": 0, + "nbMppts": 1, "nbPvInverters": 1, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163761, - "lastPowerUpOrRestart": 1649788764, + "lastConnection": 1718620500, + "lastPowerUpOrRestart": 1670226555, + "machineSerialNumber": "HQ21507AE69", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/193958", + "accessLevel": 1, + "syscreated": 1657798637, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.83", + "vpnName": "HQ21507AE69", + "vpnOnline": true + }, + { + "name": "Schäfli, Frauenfeld/TG | EWE Elektro AG (2022-00216)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "48e7da8729e5", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620516, + "lastPowerUpOrRestart": 1712739995, + "machineSerialNumber": "HQ2148EVPKP", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/201578", + "accessLevel": 1, + "syscreated": 1660032611, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.111", + "vpnName": "HQ2148EVPKP", + "vpnOnline": true + }, + { + "name": "Schäfli, Rüti/ZH | Tim's Dächer GmbH (AB2300065)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab167ec", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 3, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620523, + "lastPowerUpOrRestart": 1711533932, + "machineSerialNumber": "HQ2211NT6AD", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/295584", + "accessLevel": 1, + "syscreated": 1682594773, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.205", + "vpnName": "HQ2211NT6AD", + "vpnOnline": true + }, + { + "name": "Schalkhammer, Dietmannsdorf/AT | GetroniX e.U. (AB2300004)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab2e017", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620534, + "lastPowerUpOrRestart": 1696327862, + "machineSerialNumber": "HQ2242WKNDA", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/307239", + "accessLevel": 1, + "syscreated": 1685082200, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.246", + "vpnName": "HQ2242WKNDA", + "vpnOnline": true + }, + { + "name": "Schär/ Winterthur| Solventure AG (AB2300244) SN20230125", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab2e055", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620519, + "lastPowerUpOrRestart": 1706640496, + "machineSerialNumber": "HQ2242TGYUM", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/326481", + "accessLevel": 1, + "syscreated": 1689235843, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Scharl, Kirchseeon/DE | Heiss Service und Verrtriebs - GmbH (2022-00155)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "500", + "identifier": "48e7da871157", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 1, + "firmware": "v2.73~r10", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620547, + "lastPowerUpOrRestart": 1701522070, + "machineSerialNumber": "HQ2201AT4FA", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/187024", + "accessLevel": 1, + "syscreated": 1655816127, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.58", + "vpnName": "HQ2201AT4FA", + "vpnOnline": true + }, + { + "name": "Scharpf, Böttlingen/DE | Elser Elektro + Haustechnik GmbH (2021-00222)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "490", + "identifier": "48e7da86b0f5", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620522, + "lastPowerUpOrRestart": 1670239179, "machineSerialNumber": "HQ212894QGY", - "type": "Cerbo GX", + "controllerType": "Cerbo GX", "vrmLink": "vrm.victronenergy.com/installation/153181", "accessLevel": 1, "syscreated": 1643730759, @@ -7829,21 +20275,46 @@ "vpnOnline": true }, { - "name": "Scheffbuch, Allschwill/BL | STARK STROM GmbH (2021-00074)", + "name": "Schatt, Hochdorf/LU | meier elektro ag (2022-00411)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "481", - "identifier": "94e36dce9b14", - "hasMains": true, - "hasGenerator": true, - "nbMppts": 0, - "nbPvInverters": 2, - "firmware": "v2.73~r6", + "inverterFw": "502", + "identifier": "c0619ab0983d", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r12", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163746, - "lastPowerUpOrRestart": 1647277835, + "lastConnection": 1718620553, + "lastPowerUpOrRestart": 1712563111, + "machineSerialNumber": "HQ214897FZ7", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/243726", + "accessLevel": 1, + "syscreated": 1670398749, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.8", + "vpnName": "HQ214897FZ7", + "vpnOnline": true + }, + { + "name": "Scheffbuch, Allschwill/BL | STARK STROM GmbH (2021-00074)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "94e36dce9b14", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 2, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620511, + "lastPowerUpOrRestart": 1715779952, "machineSerialNumber": "HQ2042NHY7J", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/113780", "accessLevel": 1, "syscreated": 1623853803, @@ -7854,28 +20325,253 @@ "vpnOnline": true }, { - "name": "Scheuner, Linden/BE | InnovEnergy (2017-00009)", - "inverter": "MultiGrid 48/3000/35-50", - "inverterFw": "478", - "identifier": "c8fd19e5471b", + "name": "Scheidegger-Waser Alpnach/OW | SyEnergy AG (2023-00048)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab2dc37", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620559, + "lastPowerUpOrRestart": 1713330664, + "machineSerialNumber": "HQ22423ZDJA", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/288986", + "accessLevel": 1, + "syscreated": 1681203577, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.3.176", + "vpnName": "HQ22423ZDJA", + "vpnOnline": true + }, + { + "name": "Scheuer-Sax, Ortenburg/DE | Elektrotechnik Schmidt (2022-00016)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "c0619ab0350c", "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.60~r4", - "autoUpdate": "Off", + "firmware": "v2.73~r6", + "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163754, - "lastPowerUpOrRestart": 1649693851, - "machineSerialNumber": "HQ1803ZTZUW", - "type": "Color Control GX", - "vrmLink": "vrm.victronenergy.com/installation/28105", + "lastConnection": 1718620515, + "lastPowerUpOrRestart": 1718348780, + "machineSerialNumber": "HQ2122MJGT4", + "controllerType": "MultiPlus-II GX", + "vrmLink": "vrm.victronenergy.com/installation/160387", "accessLevel": 1, - "syscreated": 1541171698, + "syscreated": 1646746079, "vrmOnline": true, "alarm": false, - "vpnIp": "10.2.0.180", - "vpnName": "HQ1803ZTZUW", + "vpnIp": "10.2.1.222", + "vpnName": "HQ2122MJGT4", + "vpnOnline": true + }, + { + "name": "Scheuner, CH | Breu AG (AB2300320) SN20230226", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "506", + "identifier": "c0619ab39247", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620541, + "lastPowerUpOrRestart": 1714738954, + "machineSerialNumber": "HQ2247JADAA", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/380390", + "accessLevel": 1, + "syscreated": 1702293344, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Schicker, Baar | Blum Elco (AB2300333)", + "inverter": "MultiPlus-II 48/10000/140-100/100", + "inverterFw": "508", + "identifier": "c0619ab2df0c", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620546, + "lastPowerUpOrRestart": 1716813765, + "machineSerialNumber": "HQ2242PZQEU", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/332620", + "accessLevel": 1, + "syscreated": 1690542382, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.4.99", + "vpnName": "HQ2242PZQEU", + "vpnOnline": true + }, + { + "name": "Schindler, Rüeggisberg/BE | Staub + Zbinden Elektro GmbH (2022-00349)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "48e7da89ffa3", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620566, + "lastPowerUpOrRestart": 1697637829, + "machineSerialNumber": "HQ2148CWZ3A", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/230643", + "accessLevel": 1, + "syscreated": 1667401927, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.219", + "vpnName": "HQ2148CWZ3A", + "vpnOnline": true + }, + { + "name": "Schindler/AR | Steffen Energie + Elektro GmbH (AB2300251) SN20230134", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d432", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620553, + "lastPowerUpOrRestart": 1702661812, + "machineSerialNumber": "HQ2217GGU76", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/325591", + "accessLevel": 1, + "syscreated": 1689067371, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Schipfistrasse 7, Schattdorf/UR | EWA-energieURI AG (2022-00047)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "00e93aac3e17", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620562, + "lastPowerUpOrRestart": 1660901615, + "machineSerialNumber": "HQ2139JG3E3", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/163626", + "accessLevel": 1, + "syscreated": 1647967436, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.231", + "vpnName": "HQ2139JG3E3", + "vpnOnline": true + }, + { + "name": "Schmid Thomas, Gersthofen/DE | PV Total GmbH & Co. KG (AB2300209) SN20230126", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d223", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620529, + "lastPowerUpOrRestart": 1698208546, + "machineSerialNumber": "HQ2217GM44U", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/326031", + "accessLevel": 1, + "syscreated": 1689155901, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Schmid Utzigen /BE | Feldmann und CO. AG AB2300122", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d13b", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 3, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620515, + "lastPowerUpOrRestart": 1709455423, + "machineSerialNumber": "HQ22172AXYX", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/311216", + "accessLevel": 1, + "syscreated": 1685974695, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.4.10", + "vpnName": "HQ22172AXYX", + "vpnOnline": true + }, + { + "name": "Schmid-Monn, Egolzwil/LU | SyEnergy AG (2022-00185)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "48e7da86349d", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 3, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620548, + "lastPowerUpOrRestart": 1709887860, + "machineSerialNumber": "HQ22019HGNT", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/193624", + "accessLevel": 1, + "syscreated": 1657718947, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.82", + "vpnName": "HQ22019HGNT", "vpnOnline": true }, { @@ -7883,22 +20579,22 @@ "inverter": "MultiGrid 48/3000/35-50", "inverterFw": "430", "identifier": "508cb1e557ce", - "hasMains": true, - "hasGenerator": true, + "hasMains": false, + "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 0, "firmware": "v2.60~r4", "autoUpdate": "Off", "updateTo": "Official release", - "lastConnection": 1651163760, - "lastPowerUpOrRestart": 1646651379, + "lastConnection": 1718620522, + "lastPowerUpOrRestart": 1713432075, "machineSerialNumber": "HQ17345F86W", - "type": "Color Control GX", + "controllerType": "Color Control GX", "vrmLink": "vrm.victronenergy.com/installation/18926", "accessLevel": 1, "syscreated": 1521009886, "vrmOnline": true, - "alarm": false, + "alarm": true, "vpnIp": "10.2.0.208", "vpnName": "HQ17345F86W", "vpnOnline": true @@ -7908,17 +20604,17 @@ "inverter": "MultiPlus-II 48/5000/70-48", "inverterFw": "494", "identifier": "102c6bc2ada2", - "hasMains": true, + "hasMains": false, "hasGenerator": false, "nbMppts": 3, "nbPvInverters": 0, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163750, - "lastPowerUpOrRestart": 1646405858, + "lastConnection": 1718620550, + "lastPowerUpOrRestart": 1660901611, "machineSerialNumber": "HQ21184F7MH", - "type": "Cerbo GX", + "controllerType": "Cerbo GX", "vrmLink": "vrm.victronenergy.com/installation/132480", "accessLevel": 1, "syscreated": 1634044898, @@ -7928,6 +20624,106 @@ "vpnName": "HQ21184F7MH", "vpnOnline": true }, + { + "name": "Schmid, Winterthur/ZH | Tims Dächer (2022-00143)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "490", + "identifier": "48e7da8a1c91", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 5, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620552, + "lastPowerUpOrRestart": 1662388339, + "machineSerialNumber": "HQ2201NJ22V", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/176606", + "accessLevel": 1, + "syscreated": 1652446458, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.20", + "vpnName": "HQ2201NJ22V", + "vpnOnline": true + }, + { + "name": "Schmidbauer, Deutenhausen/DE | EBS Elektrotechnik Stefan GmbH (2022-00445.4)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab02210", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620574, + "lastPowerUpOrRestart": 1702454617, + "machineSerialNumber": "HQ2118T24VQ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/252969", + "accessLevel": 1, + "syscreated": 1672923995, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.3.39", + "vpnName": "HQ2118T24VQ", + "vpnOnline": true + }, + { + "name": "Schmidt, Anzonico/TI | BE Netz AG, (2022-00523)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab2e492", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620514, + "lastPowerUpOrRestart": 1686091135, + "machineSerialNumber": "HQ2242HHRGN", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/275258", + "accessLevel": 1, + "syscreated": 1678091965, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.120", + "vpnName": "HQ2242HHRGN", + "vpnOnline": true + }, + { + "name": "Schmitter, Amsoldingen/BE | Vogt Elektro AG (2022-00509)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da880907", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r10", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620516, + "lastPowerUpOrRestart": 1680526966, + "machineSerialNumber": "HQ2204QKQ62", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/266961", + "accessLevel": 1, + "syscreated": 1676296052, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.3.78", + "vpnName": "HQ2204QKQ62", + "vpnOnline": true + }, { "name": "Schmutz Duer, Couvet/NE | (2020-00132)", "inverter": "Quattro 48/10000/140-2x100", @@ -7940,10 +20736,10 @@ "firmware": "v2.73~victron", "autoUpdate": "Check", "updateTo": "Testing", - "lastConnection": 1651163758, - "lastPowerUpOrRestart": 1642135627, + "lastConnection": 1718620534, + "lastPowerUpOrRestart": 1697341003, "machineSerialNumber": "HQ2005KC2SZ", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/88461", "accessLevel": 1, "syscreated": 1607511544, @@ -7955,18 +20751,20 @@ }, { "name": "Schmutz, Tschingel/BE | Bernhard Ponpool (2020-00109.1)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "475", "identifier": "102c6b643300", - "hasMains": true, + "hasMains": false, "hasGenerator": false, - "nbMppts": 0, - "nbPvInverters": 0, - "firmware": "v2.66~acd9c91172", + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v3.11~2", "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1627484405, - "lastPowerUpOrRestart": 1627484255, + "updateTo": "Release-candidate", + "lastConnection": 1716867569, + "lastPowerUpOrRestart": 1716706041, "machineSerialNumber": "HQ2048YN8X2", - "type": "Cerbo GX", + "controllerType": "Cerbo GX", "vrmLink": "vrm.victronenergy.com/installation/121050", "accessLevel": 1, "syscreated": 1627480977, @@ -7991,7 +20789,7 @@ "lastConnection": 1603204202, "lastPowerUpOrRestart": 1603203809, "machineSerialNumber": "HQ2005NEUYH", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/75865", "accessLevel": 1, "syscreated": 1603200430, @@ -8001,6 +20799,56 @@ "vpnName": "HQ2005NEUYH", "vpnOnline": false }, + { + "name": "Schneeberger, Schüpfen/BE | Bouygues / Helion (2022-00434)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1670f", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620542, + "lastPowerUpOrRestart": 1678868162, + "machineSerialNumber": "HQ22117GGPQ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/250784", + "accessLevel": 1, + "syscreated": 1672150979, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.25", + "vpnName": "HQ22117GGPQ", + "vpnOnline": true + }, + { + "name": "Schneider, Schüpfen/BE (2022-00076) XEEO", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "48e7da89e199", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 3, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620559, + "lastPowerUpOrRestart": 1695635504, + "machineSerialNumber": "HQ213936424", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/167987", + "accessLevel": 1, + "syscreated": 1649345965, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.248", + "vpnName": "HQ213936424", + "vpnOnline": true + }, { "name": "Schneider, Uetendorf/BE | Brunner + Imboden AG (2020-00077)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", @@ -8013,10 +20861,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163800, - "lastPowerUpOrRestart": 1636392018, + "lastConnection": 1718620541, + "lastPowerUpOrRestart": 1703191301, "machineSerialNumber": "HQ2005XNZNL", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/69092", "accessLevel": 1, "syscreated": 1597674477, @@ -8024,6 +20872,31 @@ "alarm": false, "vpnIp": "10.2.0.192", "vpnName": "HQ2005XNZNL", + "vpnOnline": false + }, + { + "name": "Schneiter, Wald/AR | Swiss Photovoltaik GmbH (2022-00227)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da874333", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620568, + "lastPowerUpOrRestart": 1709676426, + "machineSerialNumber": "HQ2148G2KKY", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/198704", + "accessLevel": 1, + "syscreated": 1659099394, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.102", + "vpnName": "HQ2148G2KKY", "vpnOnline": true }, { @@ -8038,10 +20911,10 @@ "firmware": "v2.60~r4", "autoUpdate": "Off", "updateTo": "Official release", - "lastConnection": 1651163799, - "lastPowerUpOrRestart": 1650981363, + "lastConnection": 1718620520, + "lastPowerUpOrRestart": 1718170541, "machineSerialNumber": "HQ180382L4C", - "type": "Color Control GX", + "controllerType": "Color Control GX", "vrmLink": "vrm.victronenergy.com/installation/22934", "accessLevel": 1, "syscreated": 1530881643, @@ -8052,21 +20925,171 @@ "vpnOnline": true }, { - "name": "Schurter, Jona/SG | Bachtel Elektro GmbH (2019-00037)", + "name": "Schöger, Günding/DE | EBS Elektrotechnik Stefan GmbH(2022-00280.4)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "459", - "identifier": "c4f3129a29cc", + "inverterFw": "502", + "identifier": "48e7da8a012b", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620525, + "lastPowerUpOrRestart": 1704702435, + "machineSerialNumber": "HQ2148G993D", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/215282", + "accessLevel": 1, + "syscreated": 1663831793, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.165", + "vpnName": "HQ2148G993D", + "vpnOnline": true + }, + { + "name": "Scholl, Lenzburg/AG | ALVA Systems AG (2022-00351)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "500", + "identifier": "48e7da89f395", "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.60~ditto", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163763, - "lastPowerUpOrRestart": 1612428972, + "lastConnection": 1718620567, + "lastPowerUpOrRestart": 1696426640, + "machineSerialNumber": "HQ22012HTYQ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/227865", + "accessLevel": 1, + "syscreated": 1666770434, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.210", + "vpnName": "HQ22012HTYQ", + "vpnOnline": true + }, + { + "name": "Schönemann, Oberessendorf/DE | Elektro- und Gebäudetechnik Lemmle (AB2300083)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab16880", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620555, + "lastPowerUpOrRestart": 1708914974, + "machineSerialNumber": "HQ2211U3HZM", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/309574", + "accessLevel": 1, + "syscreated": 1685600240, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.4.1", + "vpnName": "HQ2211U3HZM", + "vpnOnline": true + }, + { + "name": "Schönthal, Forch/ZH | Schibli AG (2022-00525)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "501", + "identifier": "c0619ab169f4", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620579, + "lastPowerUpOrRestart": 1694947895, + "machineSerialNumber": "HQ22117TFFX", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/267407", + "accessLevel": 1, + "syscreated": 1676379925, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.88", + "vpnName": "HQ22117TFFX", + "vpnOnline": true + }, + { + "name": "Schüle, Schachen/AR/CH | A+ Elektro AG (2022-00095)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da87804b", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620532, + "lastPowerUpOrRestart": 1696707619, + "machineSerialNumber": "HQ2148D2XNN", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/171261", + "accessLevel": 1, + "syscreated": 1650627289, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.6", + "vpnName": "HQ2148D2XNN", + "vpnOnline": true + }, + { + "name": "Schürmann Reigoldswil, BL | Aquatech Sanitär GmbH (AB2300238) SN20230191", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab38984", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620557, + "lastPowerUpOrRestart": 1711552553, + "machineSerialNumber": "HQ2247F2P79", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/345417", + "accessLevel": 1, + "syscreated": 1693813693, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Schurter, Jona/SG | Bachtel Elektro GmbH (2019-00037)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c4f3129a29cc", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620545, + "lastPowerUpOrRestart": 1717677509, "machineSerialNumber": "HQ19072NE7P", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/41688", "accessLevel": 1, "syscreated": 1565694019, @@ -8076,54 +21099,154 @@ "vpnName": "HQ19072NE7P", "vpnOnline": true }, + { + "name": "Schurter, Nürensdorf/ZH/CH | Bachtel Elektro GmbH (2022-00205)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da857153", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620552, + "lastPowerUpOrRestart": 1702372561, + "machineSerialNumber": "HQ2201FE43P", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/195458", + "accessLevel": 1, + "syscreated": 1658245514, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.88", + "vpnName": "HQ2201FE43P", + "vpnOnline": true + }, + { + "name": "Schwab Mohlitz, CH Allenbach Holzbau und Solartechnik AG (AB2300165) SN20230119", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab2e39d", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620573, + "lastPowerUpOrRestart": 1699004336, + "machineSerialNumber": "HQ2242FQ497", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/321256", + "accessLevel": 1, + "syscreated": 1688030487, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, { "name": "Schwander, Baldegg/LU | CKW Conex AG (2019-00043)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "474", "identifier": "0cae7d54553d", - "hasMains": true, + "hasMains": false, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 0, - "firmware": "v2.60~ditto", + "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163766, - "lastPowerUpOrRestart": 1649925724, + "lastConnection": 1718620552, + "lastPowerUpOrRestart": 1661770985, "machineSerialNumber": "HQ1907HP192", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/42831", "accessLevel": 1, "syscreated": 1567172510, "vrmOnline": true, - "alarm": false, + "alarm": true, "vpnIp": "10.2.0.131", "vpnName": "HQ1907HP192", "vpnOnline": true }, { - "name": "Schwarz-Müller, Guntalingen/ZH | InnovEnergy (2019-00030)", - "inverter": "MultiPlus-II 48/3000/35-32 (50A ext sensor)", - "inverterFw": "459", - "identifier": "985dadd06186", - "hasMains": false, + "name": "Schwarb, Zwingen/BL/CH | STARK STROM GmbH (2022-00146)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "497", + "identifier": "48e7da863137", + "hasMains": true, "hasGenerator": false, - "nbMppts": 0, + "nbMppts": 1, "nbPvInverters": 1, - "firmware": "v2.60~ditto", + "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163781, - "lastPowerUpOrRestart": 1612541081, - "machineSerialNumber": "HQ1825RFQ8E", - "type": "Venus GX", - "vrmLink": "vrm.victronenergy.com/installation/31469", + "lastConnection": 1718620537, + "lastPowerUpOrRestart": 1671462892, + "machineSerialNumber": "HQ2150JFUYT", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/196172", "accessLevel": 1, - "syscreated": 1549441654, + "syscreated": 1658413719, "vrmOnline": true, "alarm": false, - "vpnIp": "10.2.0.133", - "vpnName": "HQ1825RFQ8E", + "vpnIp": "10.2.2.92", + "vpnName": "HQ2150JFUYT", + "vpnOnline": true + }, + { + "name": "Schwarz, Hüttwilen/TG | EWE Elektro AG (2022-00530)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab1665c", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620528, + "lastPowerUpOrRestart": 1689948895, + "machineSerialNumber": "HQ2211TZP97", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/277134", + "accessLevel": 1, + "syscreated": 1678434961, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.3.128", + "vpnName": "HQ2211TZP97", + "vpnOnline": true + }, + { + "name": "Schwarz, Kaltenbach/TG | EWE Elektro AG (2022-00473)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab167fc", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620541, + "lastPowerUpOrRestart": 1681197078, + "machineSerialNumber": "HQ2211QAUNM", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/256411", + "accessLevel": 1, + "syscreated": 1673875700, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.50", + "vpnName": "HQ2211QAUNM", "vpnOnline": true }, { @@ -8135,13 +21258,13 @@ "hasGenerator": true, "nbMppts": 0, "nbPvInverters": 0, - "firmware": "v2.66~rc5", + "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163771, - "lastPowerUpOrRestart": 1628847551, + "lastConnection": 1718620542, + "lastPowerUpOrRestart": 1703195344, "machineSerialNumber": "HQ2024UTG53", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/94475", "accessLevel": 1, "syscreated": 1612508145, @@ -8154,19 +21277,19 @@ { "name": "Schwegler, Meggen/LU | Alectron AG (2019-00044)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "466", + "inverterFw": "496", "identifier": "6064054fb2b0", - "hasMains": false, + "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.66~rc5", + "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163783, - "lastPowerUpOrRestart": 1629695483, + "lastConnection": 1718620552, + "lastPowerUpOrRestart": 1660901659, "machineSerialNumber": "HQ1738AJNT8", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/19264", "accessLevel": 1, "syscreated": 1522240336, @@ -8181,17 +21304,17 @@ "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "475", "identifier": "2c6b7d454bf7", - "hasMains": false, + "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163748, - "lastPowerUpOrRestart": 1646986018, + "lastConnection": 1718609984, + "lastPowerUpOrRestart": 1711732706, "machineSerialNumber": "HQ202417A2M", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/78999", "accessLevel": 1, "syscreated": 1605779766, @@ -8199,24 +21322,49 @@ "alarm": false, "vpnIp": "10.2.0.247", "vpnName": "HQ202417A2M", - "vpnOnline": true + "vpnOnline": false }, { - "name": "Schwingerhalle, Ruswil/LU | Alectron AG (2019-00052)", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "459", - "identifier": "0cae7d545066", + "name": "Schwinger", + "inverter": "unknown", + "inverterFw": "unknown", + "identifier": "b8804f1ea264", "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 0, - "firmware": "v2.60~ditto", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163777, - "lastPowerUpOrRestart": 1639586182, + "lastConnection": 1716452911, + "lastPowerUpOrRestart": 1716452012, + "machineSerialNumber": "HQ2123KDGFY", + "controllerType": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/438912", + "accessLevel": 1, + "syscreated": 1716451815, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.4.221", + "vpnName": "HQ2123KDGFY", + "vpnOnline": false + }, + { + "name": "Schwingerhalle, Ruswil/LU | Alectron AG (2019-00052)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "510", + "identifier": "0cae7d545066", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620569, + "lastPowerUpOrRestart": 1717756330, "machineSerialNumber": "HQ1907888BP", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/46398", "accessLevel": 1, "syscreated": 1571837864, @@ -8226,20 +21374,397 @@ "vpnName": "HQ1907888BP", "vpnOnline": true }, + { + "name": "Schwyzer /Wollerau SZ | Clevergie AG (2023-00137)", + "inverter": "MultiPlus-II 48/10000/140-100/100", + "inverterFw": "502", + "identifier": "c0619ab1de0b", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 3, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620589, + "lastPowerUpOrRestart": 1716290877, + "machineSerialNumber": "HQ221932CTN", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/293031", + "accessLevel": 1, + "syscreated": 1682056315, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.3.196", + "vpnName": "HQ221932CTN", + "vpnOnline": true + }, + { + "name": "Sclabas,Kirchberg/BE | Feldmann & Co.AG (AB2300009)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1dd4e", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620577, + "lastPowerUpOrRestart": 1699524721, + "machineSerialNumber": "HQ2219K6D9P", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/292530", + "accessLevel": 1, + "syscreated": 1681973174, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.3.193", + "vpnName": "HQ2219K6D9P", + "vpnOnline": true + }, + { + "name": "Scotton, Lätti/BE | Feldmann & Co. AG (2022-00007)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da85ce63", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620543, + "lastPowerUpOrRestart": 1709714069, + "machineSerialNumber": "HQ2139J9WHD", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/157963", + "accessLevel": 1, + "syscreated": 1645717404, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.210", + "vpnName": "HQ2139J9WHD", + "vpnOnline": false + }, + { + "name": "Seiler,Interlaken/BE | Elektro Seiler (2022-00572)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab2dba4", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620589, + "lastPowerUpOrRestart": 1706817714, + "machineSerialNumber": "HQ2242A2479", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/280740", + "accessLevel": 1, + "syscreated": 1679301611, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.3.145", + "vpnName": "HQ2242A2479", + "vpnOnline": true + }, + { + "name": "Senn, Schwadernau/BE/CH | Feldmann & Co. AG (2022-00244)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da86e181", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620556, + "lastPowerUpOrRestart": 1685521020, + "machineSerialNumber": "HQ2201G9J63", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/196402", + "accessLevel": 1, + "syscreated": 1658479868, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.2.93", + "vpnName": "HQ2201G9J63", + "vpnOnline": true + }, + { + "name": "Sennheiser, Romanshorn/TG | A.Graf Elektro-Installationen AG (2022-00458)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab0fd66", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620579, + "lastPowerUpOrRestart": 1686316507, + "machineSerialNumber": "HQ2204Q6HMX", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/254012", + "accessLevel": 1, + "syscreated": 1673273277, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.3.43", + "vpnName": "HQ2204Q6HMX", + "vpnOnline": true + }, + { + "name": "SGC Bali Cameroun | (2022-00262)", + "inverter": "Quattro 48/15000/200-2x100", + "inverterFw": "502", + "identifier": "c0619ab1047c", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620575, + "lastPowerUpOrRestart": 1718593076, + "machineSerialNumber": "HQ2204NCGPW", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/190837", + "accessLevel": 1, + "syscreated": 1656938632, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.2.67", + "vpnName": "HQ2204NCGPW", + "vpnOnline": true + }, + { + "name": "SGC GAROUA", + "inverter": "Quattro 48/10000/140-2x100", + "inverterFw": "510", + "identifier": "c0619ab1dd28", + "hasMains": true, + "hasGenerator": true, + "nbMppts": 0, + "nbPvInverters": 4, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718372026, + "lastPowerUpOrRestart": 1718127096, + "machineSerialNumber": "HQ2219GZECH", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/393852", + "accessLevel": 1, + "syscreated": 1706170454, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "SGC Hippodrome Cameroun | (2022-00262)", + "inverter": "Quattro 48/15000/200-2x100", + "inverterFw": "502", + "identifier": "48e7da87fa69", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1712176984, + "lastPowerUpOrRestart": 1712125624, + "machineSerialNumber": "HQ2204KNQGJ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/287661", + "accessLevel": 1, + "syscreated": 1680773650, + "vrmOnline": false, + "alarm": false, + "vpnIp": "10.2.4.139", + "vpnName": "HQ2204KNQGJ", + "vpnOnline": false + }, + { + "name": "SI I´Asse Sa - Nyon / CH | OptimalLiving SA (AB2300172) SN20230104", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "508", + "identifier": "c0619ab1dd43", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620550, + "lastPowerUpOrRestart": 1707307708, + "machineSerialNumber": "HQ2219FG24J", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/316908", + "accessLevel": 1, + "syscreated": 1687177932, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.4.46", + "vpnName": "HQ2219FG24J", + "vpnOnline": true + }, + { + "name": "Siebenbrunnen", + "inverter": "Quattro 48/8000/110-2x100 rev2", + "inverterFw": "485", + "identifier": "94e36dce8c11", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1689938016, + "lastPowerUpOrRestart": 1689862023, + "machineSerialNumber": "HQ2042G4C9V", + "controllerType": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/121847", + "accessLevel": 1, + "syscreated": 1627994854, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Siegrist, Zufikon/AG | IB Wohlen AG (2022-00061)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "48e7da8829af", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620569, + "lastPowerUpOrRestart": 1697137361, + "machineSerialNumber": "HQ2139YWUUM", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/167022", + "accessLevel": 1, + "syscreated": 1649089142, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.242", + "vpnName": "HQ2139YWUUM", + "vpnOnline": true + }, + { + "name": "Siegwart, Brigels/GR | Solpic AG (AB2300032)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab2e5d1", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620551, + "lastPowerUpOrRestart": 1714988679, + "machineSerialNumber": "HQ2242TUCYU", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/291723", + "accessLevel": 1, + "syscreated": 1681820385, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.191", + "vpnName": "HQ2242TUCYU", + "vpnOnline": true + }, + { + "name": "Simon, Ötlingen/DE | Elser Elektro + Haustechnik (2022-00498)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1068a", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620575, + "lastPowerUpOrRestart": 1680654438, + "machineSerialNumber": "HQ2204R2NGJ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/269670", + "accessLevel": 1, + "syscreated": 1676882668, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.95", + "vpnName": "HQ2204R2NGJ", + "vpnOnline": true + }, + { + "name": "Sirius Technologies AG, Roches BE | (AB2300123)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab1cdd0", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620567, + "lastPowerUpOrRestart": 1712615447, + "machineSerialNumber": "HQ2217UEPHP", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/313939", + "accessLevel": 1, + "syscreated": 1686554118, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.4.23", + "vpnName": "HQ2217UEPHP", + "vpnOnline": true + }, { "name": "SOB BHF Samstagern | Innolutions (2019-00035.1)", + "inverter": "unknown", + "inverterFw": "unknown", "identifier": "0cb2b7b9cb46", "hasMains": true, "hasGenerator": true, "nbMppts": 0, "nbPvInverters": 0, - "firmware": "v2.66~rc5", + "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163769, - "lastPowerUpOrRestart": 1624454882, + "lastConnection": 1718620556, + "lastPowerUpOrRestart": 1660901646, "machineSerialNumber": "HQ2028CN751", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/88673", "accessLevel": 1, "syscreated": 1607618036, @@ -8251,18 +21776,20 @@ }, { "name": "SOB BU Schutt | Innolutions (2019-00035.2)", + "inverter": "unknown", + "inverterFw": "unknown", "identifier": "94e36dce93f1", - "hasMains": false, - "hasGenerator": false, + "hasMains": true, + "hasGenerator": true, "nbMppts": 0, "nbPvInverters": 0, - "firmware": "v2.66~rc5", + "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163777, - "lastPowerUpOrRestart": 1624438589, + "lastConnection": 1718620574, + "lastPowerUpOrRestart": 1690754341, "machineSerialNumber": "HQ20424Z7NE", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/101834", "accessLevel": 1, "syscreated": 1617111994, @@ -8272,8 +21799,35 @@ "vpnName": "HQ20424Z7NE", "vpnOnline": true }, + { + "name": "SOB BUE Höli | SZ (2022-00002)", + "inverter": "unknown", + "inverterFw": "unknown", + "identifier": "c0619ab2edf6", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620587, + "lastPowerUpOrRestart": 1701079888, + "machineSerialNumber": "HQ2242UZCCD", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/259271", + "accessLevel": 1, + "syscreated": 1674548611, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.60", + "vpnName": "HQ2242UZCCD", + "vpnOnline": true + }, { "name": "SOB WHK Einsiedeln | Innolutions (2019-00035.3)", + "inverter": "unknown", + "inverterFw": "unknown", "identifier": "6064053c4971", "hasMains": true, "hasGenerator": true, @@ -8282,10 +21836,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163793, - "lastPowerUpOrRestart": 1644942700, + "lastConnection": 1718620588, + "lastPowerUpOrRestart": 1711371140, "machineSerialNumber": "HQ20246JMU9", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/72847", "accessLevel": 1, "syscreated": 1600846498, @@ -8297,41 +21851,45 @@ }, { "name": "SOB, Biberegg/SZ | Innolutions (2019-00035.4)", + "inverter": "unknown", + "inverterFw": "unknown", "identifier": "c8df84d370da", "hasMains": true, - "hasGenerator": true, + "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 0, - "firmware": "v2.33", - "autoUpdate": "On", + "firmware": "v2.73~r11", + "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1594372768, - "lastPowerUpOrRestart": 1594372238, - "machineSerialNumber": null, - "type": "Venus GX", + "lastConnection": 1718620562, + "lastPowerUpOrRestart": 1712914307, + "machineSerialNumber": "HQ1851PJRWQ", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/48359", "accessLevel": 1, "syscreated": 1574355640, - "vrmOnline": false, + "vrmOnline": true, "alarm": false, - "vpnIp": "", - "vpnName": "", - "vpnOnline": false + "vpnIp": "10.2.4.210", + "vpnName": "HQ1851PJRWQ", + "vpnOnline": true }, { "name": "SOB, Bonel/SZ | Innolutions (2019-00035.5)", + "inverter": "unknown", + "inverterFw": "unknown", "identifier": "3403de78d200", - "hasMains": true, - "hasGenerator": true, + "hasMains": false, + "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 0, - "firmware": "v2.66~rc5", + "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163783, - "lastPowerUpOrRestart": 1624436147, + "lastConnection": 1718620571, + "lastPowerUpOrRestart": 1691037992, "machineSerialNumber": "HQ1907TRBSQ", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/48348", "accessLevel": 1, "syscreated": 1574349136, @@ -8343,18 +21901,20 @@ }, { "name": "SOB, Krummenau/SG | Innolutions (2019-00035.6)", + "inverter": "unknown", + "inverterFw": "unknown", "identifier": "0cae7d5ffd26", - "hasMains": false, - "hasGenerator": false, + "hasMains": true, + "hasGenerator": true, "nbMppts": 0, "nbPvInverters": 0, - "firmware": "v2.60~ditto", + "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163771, - "lastPowerUpOrRestart": 1616486903, + "lastConnection": 1718620604, + "lastPowerUpOrRestart": 1660901643, "machineSerialNumber": "HQ1907YBNTW", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/48364", "accessLevel": 1, "syscreated": 1574357789, @@ -8366,18 +21926,20 @@ }, { "name": "SOB, Neuberg/SZ | Innolutions (2019-00035.7)", + "inverter": "unknown", + "inverterFw": "unknown", "identifier": "9c1d58393482", - "hasMains": false, + "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 0, - "firmware": "v2.60~ditto", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163780, - "lastPowerUpOrRestart": 1614940436, + "lastConnection": 1718620569, + "lastPowerUpOrRestart": 1704371590, "machineSerialNumber": "HQ1907Z9AVR", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/48361", "accessLevel": 1, "syscreated": 1574356498, @@ -8389,18 +21951,20 @@ }, { "name": "SOB, Sattel/SZ | Innolutions (2019-00035.8)", + "inverter": "unknown", + "inverterFw": "unknown", "identifier": "f045da7a76fa", - "hasMains": false, - "hasGenerator": false, + "hasMains": true, + "hasGenerator": true, "nbMppts": 0, "nbPvInverters": 0, - "firmware": "v2.66~rc5", + "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163770, - "lastPowerUpOrRestart": 1645025363, + "lastConnection": 1718620579, + "lastPowerUpOrRestart": 1691494210, "machineSerialNumber": "HQ1851VTE9Z", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/49212", "accessLevel": 1, "syscreated": 1575455327, @@ -8412,18 +21976,20 @@ }, { "name": "SOB, Wilen/SZ | Innolutions (2019-00035.9)", + "inverter": "unknown", + "inverterFw": "unknown", "identifier": "f045da77edc8", - "hasMains": false, - "hasGenerator": false, + "hasMains": true, + "hasGenerator": true, "nbMppts": 0, "nbPvInverters": 0, - "firmware": "v2.66~rc5", + "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163778, - "lastPowerUpOrRestart": 1624457991, + "lastConnection": 1718610576, + "lastPowerUpOrRestart": 1716884503, "machineSerialNumber": "HQ190389CXC", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/48362", "accessLevel": 1, "syscreated": 1574357226, @@ -8431,6 +21997,156 @@ "alarm": false, "vpnIp": "10.2.1.80", "vpnName": "HQ190389CXC", + "vpnOnline": false + }, + { + "name": "Sommer, Forstinning/DE | Eberwerk GmbH (2022-00209)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "481", + "identifier": "48e7da8712c9", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620602, + "lastPowerUpOrRestart": 1675330272, + "machineSerialNumber": "HQ2148DPHME", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/197420", + "accessLevel": 1, + "syscreated": 1658818723, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.94", + "vpnName": "HQ2148DPHME", + "vpnOnline": true + }, + { + "name": "Sommer, Uhwiesen/ZH | Scherrer Gebäudehüllen AG (2021-00239)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "102c6b86164d", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1716970519, + "lastPowerUpOrRestart": 1660901621, + "machineSerialNumber": "HQ2118MV2KV", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/155739", + "accessLevel": 1, + "syscreated": 1644832775, + "vrmOnline": false, + "alarm": false, + "vpnIp": "10.2.1.198", + "vpnName": "HQ2118MV2KV", + "vpnOnline": false + }, + { + "name": "Sonderegger, Staad/SG | Hablützel AG (2022-00133)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "48e7da893ac7", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 3, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620579, + "lastPowerUpOrRestart": 1708955346, + "machineSerialNumber": "HQ22014FDRT", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/181209", + "accessLevel": 1, + "syscreated": 1653921490, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.31", + "vpnName": "HQ22014FDRT", + "vpnOnline": true + }, + { + "name": "Sonnenhofstrasse 15, Oberhelfentschwil/SG | solarmotion ag (2022-00234)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "497", + "identifier": "48e7da87543d", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620600, + "lastPowerUpOrRestart": 1663329360, + "machineSerialNumber": "HQ21489CQ4R", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/201381", + "accessLevel": 1, + "syscreated": 1659965910, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.110", + "vpnName": "HQ21489CQ4R", + "vpnOnline": true + }, + { + "name": "Späni, Goldingen/CH Kessler&Arnold (2022-00274)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da85ca49", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620607, + "lastPowerUpOrRestart": 1682430771, + "machineSerialNumber": "HQ2148HDVYC", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/294612", + "accessLevel": 1, + "syscreated": 1682428365, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.148", + "vpnName": "HQ2148HDVYC", + "vpnOnline": true + }, + { + "name": "Spaniol, Landeron/NE | Feldmann & Co. AG (2022-00243)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da89bc97", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620560, + "lastPowerUpOrRestart": 1679920905, + "machineSerialNumber": "HQ2148EDDU7", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/205930", + "accessLevel": 1, + "syscreated": 1661328890, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.130", + "vpnName": "HQ2148EDDU7", "vpnOnline": true }, { @@ -8438,25 +22154,25 @@ "inverter": "MultiGrid 48/3000/35-50", "inverterFw": "459", "identifier": "9070659d2143", - "hasMains": true, + "hasMains": false, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 0, "firmware": "v2.60~r4", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163808, - "lastPowerUpOrRestart": 1635490578, + "lastConnection": 1671013510, + "lastPowerUpOrRestart": 1668928100, "machineSerialNumber": "HQ18034VIIY", - "type": "Color Control GX", + "controllerType": "Color Control GX", "vrmLink": "vrm.victronenergy.com/installation/22794", "accessLevel": 1, "syscreated": 1530622391, - "vrmOnline": true, + "vrmOnline": false, "alarm": false, "vpnIp": "10.2.0.182", "vpnName": "HQ18034VIIY", - "vpnOnline": true + "vpnOnline": false }, { "name": "Spinnler, Grindelwald/BE| Marcel Fischer, Heizungen, san. Installationen, Planungen (2021-00065)", @@ -8470,10 +22186,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163810, - "lastPowerUpOrRestart": 1647277262, + "lastConnection": 1718620593, + "lastPowerUpOrRestart": 1660901674, "machineSerialNumber": "HQ204254BD7", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/112992", "accessLevel": 1, "syscreated": 1623416998, @@ -8483,6 +22199,31 @@ "vpnName": "HQ204254BD7", "vpnOnline": true }, + { + "name": "SPP_Kromhout-Utrecht", + "inverter": "MultiPlus-II 48/10000/140-100/100", + "inverterFw": "502", + "identifier": "48e7da85f02d", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620559, + "lastPowerUpOrRestart": 1712751715, + "machineSerialNumber": "HQ21496UEXW", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/188624", + "accessLevel": 1, + "syscreated": 1656320954, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.2.62", + "vpnName": "HQ21496UEXW", + "vpnOnline": true + }, { "name": "Spühler, Wasterkingen/ZH | Vivo Solar GmbH (2020-00146)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", @@ -8492,18 +22233,18 @@ "hasGenerator": true, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163765, - "lastPowerUpOrRestart": 1644856797, + "lastConnection": 1718620564, + "lastPowerUpOrRestart": 1693360807, "machineSerialNumber": "HQ2005ZSB67", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/92664", "accessLevel": 1, "syscreated": 1611306898, "vrmOnline": true, - "alarm": false, + "alarm": true, "vpnIp": "10.2.1.15", "vpnName": "HQ2005ZSB67", "vpnOnline": true @@ -8523,7 +22264,7 @@ "lastConnection": 1607354741, "lastPowerUpOrRestart": 1607354711, "machineSerialNumber": "HQ18376YVQB", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/36346", "accessLevel": 1, "syscreated": 1557913405, @@ -8533,10 +22274,60 @@ "vpnName": "HQ18376YVQB", "vpnOnline": false }, + { + "name": "Stähle, Neunkirch/SH | ALVA Systems AG (2022-00559)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab16850", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620560, + "lastPowerUpOrRestart": 1696424942, + "machineSerialNumber": "HQ2211M7WCF", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/279256", + "accessLevel": 1, + "syscreated": 1678892327, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.140", + "vpnName": "HQ2211M7WCF", + "vpnOnline": true + }, + { + "name": "Stählin, Rafz/ZH | clevergie ag (AB2300053)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab2e3c8", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620612, + "lastPowerUpOrRestart": 1698773830, + "machineSerialNumber": "HQ2242EK9KY", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/310095", + "accessLevel": 1, + "syscreated": 1685690629, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.4.6", + "vpnName": "HQ2242EK9KY", + "vpnOnline": true + }, { "name": "Stark, Huttwil/BE | STARK STROM GmbH (2020-00059)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "475", + "inverterFw": "502", "identifier": "028167dc0a44", "hasMains": true, "hasGenerator": false, @@ -8544,11 +22335,11 @@ "nbPvInverters": 1, "firmware": "v2.73~r6", "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1651163756, - "lastPowerUpOrRestart": 1649121844, + "updateTo": "Testing", + "lastConnection": 1718620610, + "lastPowerUpOrRestart": 1701867059, "machineSerialNumber": "HQ1942AIPF4", - "type": "MultiPlus-II GX", + "controllerType": "MultiPlus-II GX", "vrmLink": "vrm.victronenergy.com/installation/68127", "accessLevel": 1, "syscreated": 1596814089, @@ -8559,71 +22350,146 @@ "vpnOnline": true }, { - "name": "Stark, Laufen/BL | STARK STROM GmbH (2019-00007)", - "inverter": "MultiPlus-II 48/3000/35-32 (50A ext sensor)", - "inverterFw": "456", - "identifier": "0cb2b7c5564c", - "hasMains": false, + "name": "Staub, Menzingen/ZG | Nussbaumer Bedachungen AG (AB2300037)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d184", + "hasMains": true, "hasGenerator": false, - "nbMppts": 0, + "nbMppts": 1, "nbPvInverters": 1, - "firmware": "v2.60~r4", + "firmware": "v2.73~r11", "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1651163811, - "lastPowerUpOrRestart": 1651158112, - "machineSerialNumber": "HQ18266ZCVN", - "type": "Color Control GX", - "vrmLink": "vrm.victronenergy.com/installation/33161", + "updateTo": "Testing", + "lastConnection": 1718620615, + "lastPowerUpOrRestart": 1695988089, + "machineSerialNumber": "HQ2217MMNVK", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/310989", "accessLevel": 1, - "syscreated": 1552401793, + "syscreated": 1685951369, "vrmOnline": true, "alarm": false, - "vpnIp": "10.2.0.207", - "vpnName": "HQ18266ZCVN", + "vpnIp": "10.2.4.8", + "vpnName": "HQ2217MMNVK", + "vpnOnline": true + }, + { + "name": "StaubF+B, Rüeggisberg/BE | Staub + Zbinden Elektro GmbH (2022-00486)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab16970", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620606, + "lastPowerUpOrRestart": 1715690454, + "machineSerialNumber": "HQ2211YXFV4", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/267393", + "accessLevel": 1, + "syscreated": 1676379134, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.87", + "vpnName": "HQ2211YXFV4", "vpnOnline": true }, { "name": "Stauffer, Kehrsatz/BE | Elentec GmbH (2020-00048)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "474", + "inverterFw": "500", "identifier": 780473400264, - "hasMains": false, + "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 2, - "firmware": "v2.66~rc5", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163809, - "lastPowerUpOrRestart": 1624975184, + "lastConnection": 1718620615, + "lastPowerUpOrRestart": 1699263571, "machineSerialNumber": "HQ1945M31XT", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/64854", "accessLevel": 1, "syscreated": 1594130707, "vrmOnline": true, - "alarm": false, + "alarm": true, "vpnIp": "10.2.0.193", "vpnName": "HQ1945M31XT", "vpnOnline": true }, + { + "name": "Stauffer,Staub + Zbinden Elektro GmbH - Projekt", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab1663c", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620616, + "lastPowerUpOrRestart": 1698685545, + "machineSerialNumber": "HQ2211RDDXF", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/329431", + "accessLevel": 1, + "syscreated": 1689853523, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.163", + "vpnName": "HQ2211RDDXF", + "vpnOnline": true + }, + { + "name": "Stefan, Feldgeding/DE | EBS Elektrotechnik Stefan GmbH (2022-00211.1)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da861327", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620593, + "lastPowerUpOrRestart": 1701505309, + "machineSerialNumber": "HQ21486NXRU", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/197525", + "accessLevel": 1, + "syscreated": 1658833843, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.95", + "vpnName": "HQ21486NXRU", + "vpnOnline": true + }, { "name": "Steg, Bronschhofen/SG | Jaeggi Gmünder Energietechnik AG (2021-00157)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "485", "identifier": "e415f6f8a399", - "hasMains": false, + "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163796, - "lastPowerUpOrRestart": 1647277987, + "lastConnection": 1718620562, + "lastPowerUpOrRestart": 1712828054, "machineSerialNumber": "HQ2046PRLJF", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/135173", "accessLevel": 1, "syscreated": 1635324441, @@ -8634,21 +22500,21 @@ "vpnOnline": true }, { - "name": "Steger, Emmenbrücke/LU | Bouygues E&S InTec Schweiz AG (2021-00111)", + "name": "Steger, Emmenbrücke/LU | Bouygues ES InTec Schweiz AG (2021-00111)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "485", + "inverterFw": "502", "identifier": "e415f6f828db", "hasMains": true, "hasGenerator": false, "nbMppts": 1, "nbPvInverters": 1, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163768, - "lastPowerUpOrRestart": 1648568071, + "lastConnection": 1718620581, + "lastPowerUpOrRestart": 1700828258, "machineSerialNumber": "HQ2046PPZ7H", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/135068", "accessLevel": 1, "syscreated": 1635261565, @@ -8661,19 +22527,19 @@ { "name": "Stegmüller, Arni/BE | Elentec GmbH (2021-00070)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "487", + "inverterFw": "502", "identifier": "94e36dceabf7", - "hasMains": false, + "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.66~r5", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163777, - "lastPowerUpOrRestart": 1647277060, + "lastConnection": 1718620591, + "lastPowerUpOrRestart": 1704805385, "machineSerialNumber": "HQ2042IAASY", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/113791", "accessLevel": 1, "syscreated": 1623856966, @@ -8686,19 +22552,19 @@ { "name": "Steiger, Rheinau/ZH | Scherrer Gebäudehüllen AG (2020-00058)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "474", + "inverterFw": "502", "identifier": "c4f31281e4ce", - "hasMains": true, + "hasMains": false, "hasGenerator": false, "nbMppts": 0, - "nbPvInverters": 1, - "firmware": "v2.73~r6", + "nbPvInverters": 0, + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163778, - "lastPowerUpOrRestart": 1636619624, + "lastConnection": 1718620590, + "lastPowerUpOrRestart": 1708002207, "machineSerialNumber": "HQ1930MZBM7", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/66028", "accessLevel": 1, "syscreated": 1595069739, @@ -8708,22 +22574,47 @@ "vpnName": "HQ1930MZBM7", "vpnOnline": true }, + { + "name": "Steinegger,Feusisberg/SZ| Alva Systems AG,(AB2300150)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1dc98", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620581, + "lastPowerUpOrRestart": 1718226674, + "machineSerialNumber": "HQ2217NG6UR", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/318510", + "accessLevel": 1, + "syscreated": 1687440255, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, { "name": "Steiner, Alpthal/SZ | Alectron AG (2019-00039)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "487", + "inverterFw": "497", "identifier": "0cae7d545579", - "hasMains": false, + "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 0, - "firmware": "v2.66~rc5", + "firmware": "v2.73~r6", "autoUpdate": "Check", - "updateTo": "Release-candidate", - "lastConnection": 1651163815, - "lastPowerUpOrRestart": 1647263475, + "updateTo": "Official release", + "lastConnection": 1718620572, + "lastPowerUpOrRestart": 1703201968, "machineSerialNumber": "HQ1907D99PB", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/46369", "accessLevel": 1, "syscreated": 1571822915, @@ -8731,6 +22622,156 @@ "alarm": false, "vpnIp": "10.2.0.141", "vpnName": "HQ1907D99PB", + "vpnOnline": false + }, + { + "name": "Steiner, Goldau/SZ/CH | Elektro Ottinger AG (2022-00258)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "498", + "identifier": "48e7da87268f", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620585, + "lastPowerUpOrRestart": 1692885357, + "machineSerialNumber": "HQ2148HGW7A", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/213083", + "accessLevel": 1, + "syscreated": 1663261367, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.157", + "vpnName": "HQ2148HGW7A", + "vpnOnline": true + }, + { + "name": "Steiner, Sempach / LU | Alectron AG ( 2022-00087 )", + "inverter": "MultiPlus-II 48/10000/140-100/100", + "inverterFw": "502", + "identifier": "c0619ab12a66", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620571, + "lastPowerUpOrRestart": 1687521719, + "machineSerialNumber": "HQ22086PPR2", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/223062", + "accessLevel": 1, + "syscreated": 1665669361, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.195", + "vpnName": "HQ22086PPR2", + "vpnOnline": true + }, + { + "name": "Steiner, Wolfwil/SO | von arx systems ag (2022-00480)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "501", + "identifier": "c0619ab02221", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620586, + "lastPowerUpOrRestart": 1712671780, + "machineSerialNumber": "HQ2118XD992", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/259494", + "accessLevel": 1, + "syscreated": 1674573374, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.3.63", + "vpnName": "HQ2118XD992", + "vpnOnline": true + }, + { + "name": "Steinwandel Bad Buchau, DE | Elektro und Gebädetechnik Lemmle (AB2300233) SN20230140", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1dd4d", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620572, + "lastPowerUpOrRestart": 1718100892, + "machineSerialNumber": "HQ2219K7FTK", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/327050", + "accessLevel": 1, + "syscreated": 1689326798, + "vrmOnline": true, + "alarm": true, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Stelzig, Feldgeding/DE | EBS Elektrotechnik Stefan GmbH (2022-00099)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "48e7da87e683", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620622, + "lastPowerUpOrRestart": 1662996487, + "machineSerialNumber": "HQ2139EHQ4C", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/172142", + "accessLevel": 1, + "syscreated": 1650985700, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.9", + "vpnName": "HQ2139EHQ4C", + "vpnOnline": true + }, + { + "name": "Sterki, Schönenwerd/SO/CH | von arx systems ag (2022-00235)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "497", + "identifier": "48e7da89dd1f", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620575, + "lastPowerUpOrRestart": 1662558909, + "machineSerialNumber": "HQ2148CG3K4", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/205333", + "accessLevel": 1, + "syscreated": 1661163383, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.125", + "vpnName": "HQ2148CG3K4", "vpnOnline": true }, { @@ -8738,17 +22779,17 @@ "inverter": "Quattro 48/10000/140-2x100", "inverterFw": "459", "identifier": "985dadd0cf29", - "hasMains": true, - "hasGenerator": true, + "hasMains": false, + "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163806, - "lastPowerUpOrRestart": 1650898246, + "lastConnection": 1718620596, + "lastPowerUpOrRestart": 1692006848, "machineSerialNumber": "HQ1751QHCII", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/27162", "accessLevel": 1, "syscreated": 1539516033, @@ -8758,60 +22799,160 @@ "vpnName": "HQ1751QHCII", "vpnOnline": true }, + { + "name": "Stettler, Eggiwil/BE Elektro Stettler AG | (AB2300149)_SN20230115", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab1032d", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620623, + "lastPowerUpOrRestart": 1714480432, + "machineSerialNumber": "HQ2204GC6YK", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/240628", + "accessLevel": 1, + "syscreated": 1669714565, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.252", + "vpnName": "HQ2204GC6YK", + "vpnOnline": true + }, + { + "name": "Stirnimann, Glashütten/AG | Baumann Haustechnik GmbH (AB2300060)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d0d6", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620595, + "lastPowerUpOrRestart": 1697541465, + "machineSerialNumber": "HQ2217MMEKV", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/295441", + "accessLevel": 1, + "syscreated": 1682579117, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.204", + "vpnName": "HQ2217MMEKV", + "vpnOnline": true + }, { "name": "Stocker, Fahrwangen/AG | Meier Elektro AG (2021-00033)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "481", + "inverterFw": "500", "identifier": "0281b4e7bcf9", "hasMains": false, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.60~ie", + "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163817, - "lastPowerUpOrRestart": 1641289223, + "lastConnection": 1718620597, + "lastPowerUpOrRestart": 1717059725, "machineSerialNumber": "HQ2050CUV6Z", - "type": "MultiPlus-II GX", + "controllerType": "MultiPlus-II GX", "vrmLink": "vrm.victronenergy.com/installation/106506", "accessLevel": 1, "syscreated": 1619771374, "vrmOnline": true, - "alarm": false, + "alarm": true, "vpnIp": "10.2.1.48", "vpnName": "HQ2050CUV6Z", "vpnOnline": true }, { - "name": "Stöcklin, Laufen/BL | STARK STROM GmbH (2019-00057)", + "name": "Stocker, Oberriet/SG | Kobler Energie AG (2022-00177)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "459", - "identifier": "c8df84d36d65", + "inverterFw": "502", + "identifier": "48e7da885d81", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620575, + "lastPowerUpOrRestart": 1695376159, + "machineSerialNumber": "HQ2148CFQ3Z", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/200649", + "accessLevel": 1, + "syscreated": 1659694000, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.108", + "vpnName": "HQ2148CFQ3Z", + "vpnOnline": true + }, + { + "name": "stöcklin/test INNOV2", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d0b1", "hasMains": false, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.60~ditto", + "firmware": "v2.73~r12", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163775, - "lastPowerUpOrRestart": 1647418830, - "machineSerialNumber": "HQ18511Z94Z", - "type": "Venus GX", - "vrmLink": "vrm.victronenergy.com/installation/49204", + "lastConnection": 1718620614, + "lastPowerUpOrRestart": 1717054045, + "machineSerialNumber": "HQ2217Q6ETM", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/335143", "accessLevel": 1, - "syscreated": 1575451039, + "syscreated": 1691141461, "vrmOnline": true, "alarm": false, - "vpnIp": "10.2.0.137", - "vpnName": "HQ18511Z94Z", + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Stodden, Schmitten/DE | Daniel Gebert Technik Gebert (2022-00345)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "498", + "identifier": "48e7da87dc1b", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r10", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620611, + "lastPowerUpOrRestart": 1669732822, + "machineSerialNumber": "HQ22016XTTQ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/229718", + "accessLevel": 1, + "syscreated": 1667207944, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.213", + "vpnName": "HQ22016XTTQ", "vpnOnline": true }, { "name": "Stoll, Oberembrach/ZH | Vivo Solar GmbH (2019-00053)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "469", + "inverterFw": "502", "identifier": "f045da7a8df8", "hasMains": false, "hasGenerator": false, @@ -8820,10 +22961,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163791, - "lastPowerUpOrRestart": 1647498642, + "lastConnection": 1718620630, + "lastPowerUpOrRestart": 1695037355, "machineSerialNumber": "HQ1907F7X6C", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/45900", "accessLevel": 1, "syscreated": 1571217936, @@ -8833,6 +22974,131 @@ "vpnName": "HQ1907F7X6C", "vpnOnline": true }, + { + "name": "Stooss, Luzern LU/CH | Alva Systems AG (AB2300059)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d12e", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620628, + "lastPowerUpOrRestart": 1710452630, + "machineSerialNumber": "HQ2217TEH4C", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/300390", + "accessLevel": 1, + "syscreated": 1683708448, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.220", + "vpnName": "HQ2217TEH4C", + "vpnOnline": true + }, + { + "name": "Storde, Dorfen/DE | Heiss Service und Vertriebs - GmbH (2022-00560)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab2dd0b", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620630, + "lastPowerUpOrRestart": 1689857978, + "machineSerialNumber": "HQ2242Z2HPC", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/278734", + "accessLevel": 1, + "syscreated": 1678804332, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.134", + "vpnName": "HQ2242Z2HPC", + "vpnOnline": true + }, + { + "name": "Strasser, Scherz/AG | Kabeltechnik swiss ag (2022-00379)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da87279f", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620625, + "lastPowerUpOrRestart": 1710781959, + "machineSerialNumber": "HQ2148DNWVM", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/232115", + "accessLevel": 1, + "syscreated": 1667810322, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.221", + "vpnName": "HQ2148DNWVM", + "vpnOnline": true + }, + { + "name": "Strasser, Zweisimmen/BE/CH | solarUp energie GmbH (2022-00145)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da870d71", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620606, + "lastPowerUpOrRestart": 1705480355, + "machineSerialNumber": "HQ21484YTPV", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/184327", + "accessLevel": 1, + "syscreated": 1654869056, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.46", + "vpnName": "HQ21484YTPV", + "vpnOnline": true + }, + { + "name": "Straub, Markt Schwaben/DE | Heiss GmbH (AB 2300007) SN20230092", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1ce96", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620618, + "lastPowerUpOrRestart": 1702292726, + "machineSerialNumber": "HQ2217N3FWT", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/315353", + "accessLevel": 1, + "syscreated": 1686809068, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.4.37", + "vpnName": "HQ2217N3FWT", + "vpnOnline": true + }, { "name": "Strebel, Bünzen/AG | Immoflat GmbH (2021-00078.2)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", @@ -8845,10 +23111,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163784, - "lastPowerUpOrRestart": 1643378266, + "lastConnection": 1718620594, + "lastPowerUpOrRestart": 1660901699, "machineSerialNumber": "HQ2101V8DJ7", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/127276", "accessLevel": 1, "syscreated": 1631181069, @@ -8858,22 +23124,122 @@ "vpnName": "HQ2101V8DJ7", "vpnOnline": true }, + { + "name": "Strobino, Le Vaud/VD | OptimalLiving SA (AB2300038)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "506", + "identifier": "c0619ab1d0a7", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620597, + "lastPowerUpOrRestart": 1696504630, + "machineSerialNumber": "HQ2217M94HA", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/302841", + "accessLevel": 1, + "syscreated": 1684223147, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.226", + "vpnName": "HQ2217M94HA", + "vpnOnline": true + }, + { + "name": "Strub , Wynigen/BE | Planergie AG (2022-00393)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da891df7", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620597, + "lastPowerUpOrRestart": 1694096793, + "machineSerialNumber": "HQ2204NGPY7", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/239381", + "accessLevel": 1, + "syscreated": 1669382750, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.2.245", + "vpnName": "HQ2204NGPY7", + "vpnOnline": true + }, + { + "name": "Studerus, Guntalingen/ZH | InnovEnergy (2019-00030)", + "inverter": "MultiPlus-II 48/3000/35-32 (50A ext sensor)", + "inverterFw": "502", + "identifier": "985dadd06186", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620607, + "lastPowerUpOrRestart": 1709289616, + "machineSerialNumber": "HQ1825RFQ8E", + "controllerType": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/31469", + "accessLevel": 1, + "syscreated": 1549441654, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.0.133", + "vpnName": "HQ1825RFQ8E", + "vpnOnline": true + }, + { + "name": "Stutz, Siblingen/SH | BEsolar GmbH (2022-00489)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab16805", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620591, + "lastPowerUpOrRestart": 1680326055, + "machineSerialNumber": "HQ2211PZWGV", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/264278", + "accessLevel": 1, + "syscreated": 1675694558, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.66", + "vpnName": "HQ2211PZWGV", + "vpnOnline": true + }, { "name": "Styger, Steinerberg/SZ | Elektro Ottinger AG (2020-00114)", "inverter": "Quattro 48/8000/110-2x100 rev2", "inverterFw": "496", "identifier": "94e36dd5002b", - "hasMains": false, - "hasGenerator": false, + "hasMains": true, + "hasGenerator": true, "nbMppts": 2, "nbPvInverters": 1, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163769, - "lastPowerUpOrRestart": 1650460999, + "lastConnection": 1718620637, + "lastPowerUpOrRestart": 1696254817, "machineSerialNumber": "HQ20285JVMW", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/79543", "accessLevel": 1, "syscreated": 1606220507, @@ -8883,22 +23249,47 @@ "vpnName": "HQ20285JVMW", "vpnOnline": true }, + { + "name": "Süess, Founex/ VD | Optimal Living SA (2022-00546)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab16620", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620633, + "lastPowerUpOrRestart": 1689567568, + "machineSerialNumber": "HQ2211Q2P4P", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/276283", + "accessLevel": 1, + "syscreated": 1678272433, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.124", + "vpnName": "HQ2211Q2P4P", + "vpnOnline": true + }, { "name": "Sutter, Hellsau/BE | Elektro Grogg AG (2021-00030)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "481", "identifier": "0cb2b7cd4b7a", - "hasMains": false, + "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 0, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163786, - "lastPowerUpOrRestart": 1634761804, + "lastConnection": 1718620589, + "lastPowerUpOrRestart": 1660901662, "machineSerialNumber": "HQ2032HD84T", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/99854", "accessLevel": 1, "syscreated": 1615992982, @@ -8909,21 +23300,46 @@ "vpnOnline": true }, { - "name": "Sutter, Trogen/AR | CE Concept Energy AG (2021-00026)", - "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "481", - "identifier": "0035ff91e777", - "hasMains": false, + "name": "Sutter, Märwil/TG | Gebr. Willi Elektro AG (2022-00028)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "48e7da8872fd", + "hasMains": true, "hasGenerator": false, "nbMppts": 0, - "nbPvInverters": 1, - "firmware": "v2.73~r6", + "nbPvInverters": 2, + "firmware": "v2.73~r12", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163784, - "lastPowerUpOrRestart": 1643321143, + "lastConnection": 1718620611, + "lastPowerUpOrRestart": 1716994675, + "machineSerialNumber": "HQ2139P363G", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/161756", + "accessLevel": 1, + "syscreated": 1647277400, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.227", + "vpnName": "HQ2139P363G", + "vpnOnline": true + }, + { + "name": "Sutter, Trogen/AR | CE Concept Energy AG (2021-00026)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "0035ff91e777", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620594, + "lastPowerUpOrRestart": 1683685607, "machineSerialNumber": "HQ2032HFPFF", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/102229", "accessLevel": 1, "syscreated": 1617286398, @@ -8934,28 +23350,253 @@ "vpnOnline": true }, { - "name": "taNET, Goldau/SZ | Elektro Ottinger AG (2019-00076)", + "name": "Swoboda, Balingen/DE | ETE Neumaier Elektrotechnik (2022-00350)", "inverter": "MultiPlus-II 48/5000/70-48", - "inverterFw": "471", - "identifier": "0479b7efc3e1", + "inverterFw": "502", + "identifier": "48e7da87b8df", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620603, + "lastPowerUpOrRestart": 1698046743, + "machineSerialNumber": "HQ22019APMP", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/232322", + "accessLevel": 1, + "syscreated": 1667832749, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.224", + "vpnName": "HQ22019APMP", + "vpnOnline": true + }, + { + "name": "Tanner 4054 Basel, CH | Kolb AG (2022-00413)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "498", + "identifier": "c0619ab09641", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1683071005, + "lastPowerUpOrRestart": 1674211298, + "machineSerialNumber": "HQ2148ZJA63", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/246031", + "accessLevel": 1, + "syscreated": 1670922386, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.16", + "vpnName": "HQ2148ZJA63", + "vpnOnline": false + }, + { + "name": "Tappy / La Rippe/VD | OptimalLiving SA (AB2300064)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab2e434", "hasMains": true, "hasGenerator": false, - "nbMppts": 2, + "nbMppts": 1, "nbPvInverters": 1, - "firmware": "v2.64~victron", + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620586, + "lastPowerUpOrRestart": 1718350517, + "machineSerialNumber": "HQ2242MQD9Y", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/308654", + "accessLevel": 1, + "syscreated": 1685440663, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.252", + "vpnName": "HQ2242MQD9Y", + "vpnOnline": true + }, + { + "name": "Tappy 2", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "e8fb1caa0247", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.83~victron", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1698141965, + "lastPowerUpOrRestart": 1698140345, + "machineSerialNumber": "HQ2242MQD9Y", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/308662", + "accessLevel": 1, + "syscreated": 1685441980, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.252", + "vpnName": "HQ2242MQD9Y", + "vpnOnline": true + }, + { + "name": "Tauss Zweisimmen 2022-00115/ SolarUP energie Gmbh", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da86bee5", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620606, + "lastPowerUpOrRestart": 1706524267, + "machineSerialNumber": "HQ2201DWD9Z", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/178272", + "accessLevel": 1, + "syscreated": 1652973786, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.23", + "vpnName": "HQ2201DWD9Z", + "vpnOnline": true + }, + { + "name": "Tchamkerten, Tannay/VD | Optimal Living SA (2023-00020)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab167a8", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Testing", - "lastConnection": 1635231840, - "lastPowerUpOrRestart": 1615800376, - "machineSerialNumber": "HQ1933KNGAF", - "type": "Venus GX", - "vrmLink": "vrm.victronenergy.com/installation/53830", + "lastConnection": 1718620637, + "lastPowerUpOrRestart": 1683673694, + "machineSerialNumber": "HQ2211JQPKE", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/283372", "accessLevel": 1, - "syscreated": 1581954999, + "syscreated": 1679906484, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.155", + "vpnName": "HQ2211JQPKE", + "vpnOnline": true + }, + { + "name": "TD181 OURANG-Systeme solaire", + "inverter": "Quattro 48/8000/110-2x100 rev2", + "inverterFw": "501", + "identifier": "48e7da86d5a1", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 6, + "nbPvInverters": 0, + "firmware": "v2.73~r10", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620618, + "lastPowerUpOrRestart": 1702838179, + "machineSerialNumber": "HQ2204TJP96", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/235145", + "accessLevel": 1, + "syscreated": 1668504170, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.235", + "vpnName": "HQ2204TJP96", + "vpnOnline": true + }, + { + "name": "Tellenbach, Pieterlen/SO | Elektro Fahrni AG (2022-00033)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "496", + "identifier": "48e7da869825", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620645, + "lastPowerUpOrRestart": 1660901621, + "machineSerialNumber": "HQ2139FARR6", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/162598", + "accessLevel": 1, + "syscreated": 1647531354, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.229", + "vpnName": "HQ2139FARR6", + "vpnOnline": true + }, + { + "name": "Test Cerbo GX Ivo", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "48e7da86f9e5", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r9", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1666022409, + "lastPowerUpOrRestart": 1666022170, + "machineSerialNumber": "HQ2128ZWCR7", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/154862", + "accessLevel": 1, + "syscreated": 1644412841, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.2.200", + "vpnName": "HQ2128ZWCR7", + "vpnOnline": false + }, + { + "name": "TEST CERBO MEI", + "inverter": "MultiPlus-II 48/10000/140-100/100", + "inverterFw": "510", + "identifier": "c0619ab2eb44", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.91", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1714037720, + "lastPowerUpOrRestart": 1714024220, + "machineSerialNumber": "HQ2242FFGFY", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/424815", + "accessLevel": 1, + "syscreated": 1713429452, "vrmOnline": false, "alarm": false, - "vpnIp": "10.2.0.213", - "vpnName": "HQ1933KNGAF", + "vpnIp": "", + "vpnName": "", "vpnOnline": false }, { @@ -8970,10 +23611,10 @@ "firmware": "v2.73", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1637768429, - "lastPowerUpOrRestart": 1637768383, + "lastConnection": 1660117032, + "lastPowerUpOrRestart": 1660117011, "machineSerialNumber": "HQ2042DKYKB", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/109034", "accessLevel": 1, "syscreated": 1621321817, @@ -8983,6 +23624,81 @@ "vpnName": "", "vpnOnline": false }, + { + "name": "TEST_Strasser, Scherz/AG | Kabeltechnik Swiss AG (2022-00379)", + "inverter": "unknown", + "inverterFw": "unknown", + "identifier": "c0619ab43579", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1698396157, + "lastPowerUpOrRestart": 1698396038, + "machineSerialNumber": "HQ2302UMT3A", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/364174", + "accessLevel": 1, + "syscreated": 1698394383, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Thierstein, Hofstetten/SO", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "497", + "identifier": "48e7da868e71", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620599, + "lastPowerUpOrRestart": 1660901614, + "machineSerialNumber": "HQ2201W4H92", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/191156", + "accessLevel": 1, + "syscreated": 1657026109, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.71", + "vpnName": "HQ2201W4H92", + "vpnOnline": true + }, + { + "name": "Thomann, Wallbach/AG | D. Vonarburg GmbH (2023-00011)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab2dcfb", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1714784109, + "lastPowerUpOrRestart": 1683896285, + "machineSerialNumber": "HQ2242XAPXH", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/284516", + "accessLevel": 1, + "syscreated": 1680098282, + "vrmOnline": false, + "alarm": false, + "vpnIp": "10.2.3.161", + "vpnName": "HQ2242XAPXH", + "vpnOnline": false + }, { "name": "Thöni, Meiringen/BE | InnovEnergy (2017-00005)", "inverter": "MultiGrid 48/3000/35-50", @@ -8995,10 +23711,10 @@ "firmware": "v2.60~r4", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163792, - "lastPowerUpOrRestart": 1650768560, + "lastConnection": 1718620624, + "lastPowerUpOrRestart": 1717348596, "machineSerialNumber": "HQ1724LNX4Q", - "type": "Color Control GX", + "controllerType": "Color Control GX", "vrmLink": "vrm.victronenergy.com/installation/15838", "accessLevel": 1, "syscreated": 1510167138, @@ -9008,6 +23724,231 @@ "vpnName": "HQ1724LNX4Q", "vpnOnline": true }, + { + "name": "Thorsten Roos, Trebur/DE | Daniel Gebert Technik Gebert (2023-00037)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab2e353", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620616, + "lastPowerUpOrRestart": 1692602537, + "machineSerialNumber": "HQ2242VHYFP", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/287236", + "accessLevel": 1, + "syscreated": 1680695712, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.173", + "vpnName": "HQ2242VHYFP", + "vpnOnline": true + }, + { + "name": "Thüring Dornacherstrasse 7; Ettingen / Selnet 2022-000497", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab10681", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620596, + "lastPowerUpOrRestart": 1700835915, + "machineSerialNumber": "HQ2204THAVZ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/240789", + "accessLevel": 1, + "syscreated": 1669730800, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.2.253", + "vpnName": "HQ2204THAVZ", + "vpnOnline": true + }, + { + "name": "Tobler-Seitz, Büriswilen/AI | Kobler Energie AG (2022-00254)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "500", + "identifier": "c0619ab12c12", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 5, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620611, + "lastPowerUpOrRestart": 1695365468, + "machineSerialNumber": "HQ2208V6CJ7", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/205797", + "accessLevel": 1, + "syscreated": 1661271258, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.2.129", + "vpnName": "HQ2208V6CJ7", + "vpnOnline": true + }, + { + "name": "Trachsel, Schwarzenburg/BE | Breu AG (2022-00399)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "500", + "identifier": "c0619ab1676c", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620628, + "lastPowerUpOrRestart": 1671021791, + "machineSerialNumber": "HQ2211F4XZE", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/238281", + "accessLevel": 1, + "syscreated": 1669189226, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.243", + "vpnName": "HQ2211F4XZE", + "vpnOnline": false + }, + { + "name": "Traud-Künzell/DE | Sauer Elektotechnik GmbH (AB2300236) SN20230190", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "506", + "identifier": "c0619ab38132", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v3.33~1", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620609, + "lastPowerUpOrRestart": 1717508409, + "machineSerialNumber": "HQ2247DKCAZ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/344689", + "accessLevel": 1, + "syscreated": 1693559421, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Treuthardt, Hasliberg/BE | Alex Gemperle AG (2021-00205)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "496", + "identifier": "48e7da869953", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 2, + "firmware": "v2.73~r10", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620653, + "lastPowerUpOrRestart": 1712639753, + "machineSerialNumber": "HQ2139NHVQP", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/161174", + "accessLevel": 1, + "syscreated": 1647006314, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.226", + "vpnName": "HQ2139NHVQP", + "vpnOnline": true + }, + { + "name": "Trümpi, Ennetgühls/GL | Elektro Rhyner AG (2022-00522)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab09a83", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1702543233, + "lastPowerUpOrRestart": 1702488392, + "machineSerialNumber": "HQ21497WQ6K", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/259474", + "accessLevel": 1, + "syscreated": 1674572133, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.62", + "vpnName": "HQ21497WQ6K", + "vpnOnline": false + }, + { + "name": "Trunz, Oftringen/AG | Baumann Haustechnik GmbH (AB2300075)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d1e9", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620640, + "lastPowerUpOrRestart": 1699436265, + "machineSerialNumber": "HQ221792ZPU", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/299619", + "accessLevel": 1, + "syscreated": 1683556503, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.218", + "vpnName": "HQ221792ZPU", + "vpnOnline": true + }, + { + "name": "Truttmann Fruttweg 12 / Gemeindewerk Beckenried (AB2400008) SN20240023", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "508", + "identifier": "c0619ab3826f", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620659, + "lastPowerUpOrRestart": 1714767992, + "machineSerialNumber": "HQ2247Z6KMT", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/391535", + "accessLevel": 1, + "syscreated": 1705572570, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, { "name": "Tschannen, Erlach/BE | KWenergy GmbH (2020-00111) | Inselnetz", "inverter": "MultiPlus-II 48/5000/70-48", @@ -9020,18 +23961,18 @@ "firmware": "v2.73~r6", "autoUpdate": "On", "updateTo": "Official release", - "lastConnection": 1651163825, - "lastPowerUpOrRestart": 1649325170, + "lastConnection": 1714760207, + "lastPowerUpOrRestart": 1713948729, "machineSerialNumber": "HQ2021SL9SF", - "type": "MultiPlus-II GX", + "controllerType": "MultiPlus-II GX", "vrmLink": "vrm.victronenergy.com/installation/78246", "accessLevel": 1, "syscreated": 1605186174, - "vrmOnline": true, + "vrmOnline": false, "alarm": false, "vpnIp": "10.2.1.245", "vpnName": "HQ2021SL9SF", - "vpnOnline": true + "vpnOnline": false }, { "name": "Tschannen, Murzelen/BE | Elektro Hegg AG (2021-00117)", @@ -9042,13 +23983,13 @@ "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 2, - "firmware": "v2.66~rc5", + "firmware": "v2.73~r11", "autoUpdate": "Check", - "updateTo": "Release-candidate", - "lastConnection": 1651163792, - "lastPowerUpOrRestart": 1646926395, + "updateTo": "Official release", + "lastConnection": 1718620657, + "lastPowerUpOrRestart": 1714109527, "machineSerialNumber": "HQ2046ZUJFC", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/124145", "accessLevel": 1, "syscreated": 1629383896, @@ -9066,39 +24007,64 @@ "hasMains": false, "hasGenerator": false, "nbMppts": 0, - "nbPvInverters": 0, - "firmware": "v2.53", + "nbPvInverters": 1, + "firmware": "v3.33", "autoUpdate": "On", "updateTo": "Official release", - "lastConnection": 1589906251, - "lastPowerUpOrRestart": 1589897311, + "lastConnection": 1718620626, + "lastPowerUpOrRestart": 1718202716, "machineSerialNumber": "HQ1933ILBWB", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/60232", "accessLevel": 1, "syscreated": 1589784122, - "vrmOnline": false, + "vrmOnline": true, "alarm": false, "vpnIp": "", "vpnName": "", "vpnOnline": false }, { - "name": "Uehlinger, Reuti/BE | InnovEnergy (2020-00003)", + "name": "Uehli, Valens/SG/CH | Elektro Rhyner AG (2022-00260)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "471", - "identifier": "0479b7a3a8de", - "hasMains": true, - "hasGenerator": true, - "nbMppts": 0, - "nbPvInverters": 1, - "firmware": "v2.60~ditto", + "inverterFw": "502", + "identifier": "48e7da876c53", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 3, + "nbPvInverters": 0, + "firmware": "v2.73~r12", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163807, - "lastPowerUpOrRestart": 1633235572, + "lastConnection": 1718620627, + "lastPowerUpOrRestart": 1694504998, + "machineSerialNumber": "HQ2208DKYU9", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/208120", + "accessLevel": 1, + "syscreated": 1661954262, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.144", + "vpnName": "HQ2208DKYU9", + "vpnOnline": true + }, + { + "name": "Uehlinger, Reuti/BE | InnovEnergy (2020-00003)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "0479b7a3a8de", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620653, + "lastPowerUpOrRestart": 1707127505, "machineSerialNumber": "HQ19337Y9KF", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/53863", "accessLevel": 1, "syscreated": 1582016330, @@ -9106,24 +24072,49 @@ "alarm": false, "vpnIp": "10.2.0.140", "vpnName": "HQ19337Y9KF", + "vpnOnline": false + }, + { + "name": "Ulrich, Adelboden/BE | Elektro Gyger AG (2022-00343)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "498", + "identifier": "48e7da871205", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r10", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620609, + "lastPowerUpOrRestart": 1691067990, + "machineSerialNumber": "HQ22019X3JP", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/225172", + "accessLevel": 1, + "syscreated": 1666170513, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.203", + "vpnName": "HQ22019X3JP", "vpnOnline": true }, { "name": "Ulrich, Kerns/OW | Alectron AG (2019-00040)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "494", + "inverterFw": "502", "identifier": "0cae7d548d47", "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163804, - "lastPowerUpOrRestart": 1647448784, + "lastConnection": 1718620620, + "lastPowerUpOrRestart": 1718022875, "machineSerialNumber": "HQ1907YG6WS", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/41668", "accessLevel": 1, "syscreated": 1565685094, @@ -9131,24 +24122,24 @@ "alarm": false, "vpnIp": "10.2.0.142", "vpnName": "HQ1907YG6WS", - "vpnOnline": true + "vpnOnline": false }, { "name": "Umweltarena, Spreitenbach/AG | W. Schmid Projekte AG (2019-00028)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "459", "identifier": "9c1d583913a2", - "hasMains": false, + "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 0, - "firmware": "v2.60~ditto", + "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163832, - "lastPowerUpOrRestart": 1608299350, + "lastConnection": 1718620646, + "lastPowerUpOrRestart": 1660901660, "machineSerialNumber": "HQ1903FPAY3", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/38949", "accessLevel": 1, "syscreated": 1561652746, @@ -9163,17 +24154,17 @@ "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "485", "identifier": "0cb2b7b9a07d", - "hasMains": false, + "hasMains": true, "hasGenerator": false, "nbMppts": 0, - "nbPvInverters": 2, + "nbPvInverters": 1, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163830, - "lastPowerUpOrRestart": 1639107824, + "lastConnection": 1718620629, + "lastPowerUpOrRestart": 1660901669, "machineSerialNumber": "HQ2046A59PI", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/135280", "accessLevel": 1, "syscreated": 1635344191, @@ -9186,19 +24177,19 @@ { "name": "Utz, Münchenbuchsee/BE | Elektro Fahrni AG (2021-00219)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "490", + "inverterFw": "502", "identifier": "48e7da865029", "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.73~r6", + "firmware": "v2.73~r12", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163833, - "lastPowerUpOrRestart": 1647277287, + "lastConnection": 1718620647, + "lastPowerUpOrRestart": 1697545294, "machineSerialNumber": "HQ2128NUYV2", - "type": "Cerbo GX", + "controllerType": "Cerbo GX", "vrmLink": "vrm.victronenergy.com/installation/152497", "accessLevel": 1, "syscreated": 1643377303, @@ -9209,7 +24200,7 @@ "vpnOnline": true }, { - "name": "Utzschneider, Buchloe /DE | PV Total Der Energiesparberater (2021-00153)", + "name": "Utzschneider, Buchloe /DE | PV Total (2021-00153)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "485", "identifier": "e415f6f4d0a3", @@ -9217,17 +24208,17 @@ "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.73~615dd5c4c8", + "firmware": "v2.73~r6", "autoUpdate": "Check", - "updateTo": "Release-candidate", - "lastConnection": 1651163833, - "lastPowerUpOrRestart": 1642072454, + "updateTo": "Official release", + "lastConnection": 1718620646, + "lastPowerUpOrRestart": 1696750639, "machineSerialNumber": "HQ21017LR18", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/130677", "accessLevel": 1, "syscreated": 1633015904, - "vrmOnline": true, + "vrmOnline": false, "alarm": false, "vpnIp": "10.2.1.130", "vpnName": "HQ21017LR18", @@ -9236,19 +24227,19 @@ { "name": "VBAU Architektur AG, Adliswil/ZH | InnovEnergy (2019-00008)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "494", + "inverterFw": "507", "identifier": "c8df84d37593", "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163784, - "lastPowerUpOrRestart": 1649248516, + "lastConnection": 1718620660, + "lastPowerUpOrRestart": 1701763883, "machineSerialNumber": "HQ18513GKK1", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/41336", "accessLevel": 1, "syscreated": 1565164304, @@ -9258,22 +24249,47 @@ "vpnName": "HQ18513GKK1", "vpnOnline": true }, + { + "name": "Venus_Ersatzgerät_vorkonfiguriert_@Frey", + "inverter": "unknown", + "inverterFw": "unknown", + "identifier": "6433db2ff408", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1689924356, + "lastPowerUpOrRestart": 1689924297, + "machineSerialNumber": "HQ21239JMG9", + "controllerType": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/201851", + "accessLevel": 1, + "syscreated": 1660117205, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.4.93", + "vpnName": "HQ21239JMG9", + "vpnOnline": false + }, { "name": "Venzi, Mettmenstetten/ZH | Hotz Technik GmbH (2021-00034)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "481", "identifier": "0cb2b7cc67e9", "hasMains": true, - "hasGenerator": true, + "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163796, - "lastPowerUpOrRestart": 1636482706, + "lastConnection": 1718620649, + "lastPowerUpOrRestart": 1695920331, "machineSerialNumber": "HQ2032ANKF3", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/102642", "accessLevel": 1, "syscreated": 1617694355, @@ -9283,22 +24299,147 @@ "vpnName": "HQ2032ANKF3", "vpnOnline": true }, + { + "name": "Verbeke-Van Passel, CH | Baumann Haustechnik GmbH ( AB2300270 ) SN20230204", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "506", + "identifier": "c0619ab38174", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620667, + "lastPowerUpOrRestart": 1714637192, + "machineSerialNumber": "HQ22476YQG4", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/351865", + "accessLevel": 1, + "syscreated": 1695382924, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Vez Jean-Francois - Genolier, VD | OptimalLiving SA (AB2300288) SN20230220", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "506", + "identifier": "c0619ab3897a", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 2, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620629, + "lastPowerUpOrRestart": 1710371423, + "machineSerialNumber": "HQ2247FHAWZ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/363271", + "accessLevel": 1, + "syscreated": 1698221710, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Vignali, Richterswil/ZH | clevergie ag - Region Zentralschweiz (2022-00547)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab2e490", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620638, + "lastPowerUpOrRestart": 1711456740, + "machineSerialNumber": "HQ2242ZKVKK", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/279026", + "accessLevel": 1, + "syscreated": 1678872582, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.138", + "vpnName": "HQ2242ZKVKK", + "vpnOnline": true + }, + { + "name": "Vilfroy, Fulenbach / SO | Baumann HAustechnik GmbH (AB2300259) SN20230200", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab38aff", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620624, + "lastPowerUpOrRestart": 1698389205, + "machineSerialNumber": "HQ22479YFDP", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/348407", + "accessLevel": 1, + "syscreated": 1694585601, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Villa Castagna, Contra/TI/CH (2021-00207)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "48e7da859291", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620658, + "lastPowerUpOrRestart": 1712831700, + "machineSerialNumber": "HQ2128FPAYJ", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/152257", + "accessLevel": 1, + "syscreated": 1643294439, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.1.185", + "vpnName": "HQ2128FPAYJ", + "vpnOnline": true + }, { "name": "Vitzthum, Thayngen/SH | Vivo Solar GmbH (2021-00079)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "481", + "inverterFw": "502", "identifier": "1862e4cbde5e", "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163786, - "lastPowerUpOrRestart": 1647590217, + "lastConnection": 1718620627, + "lastPowerUpOrRestart": 1715397142, "machineSerialNumber": "HQ20466WTFX", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/115298", "accessLevel": 1, "syscreated": 1624609224, @@ -9308,6 +24449,56 @@ "vpnName": "HQ20466WTFX", "vpnOnline": true }, + { + "name": "Vogel, Hochdorf/LU | asons ag (AB2300020)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab2dd2f", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620622, + "lastPowerUpOrRestart": 1686053180, + "machineSerialNumber": "HQ2242QTNV3", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/289860", + "accessLevel": 1, + "syscreated": 1681375303, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.181", + "vpnName": "HQ2242QTNV3", + "vpnOnline": true + }, + { + "name": "Vogel, Winterthur/ZH/CH | Senero AG (2022-00148)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da85ee19", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620625, + "lastPowerUpOrRestart": 1716365870, + "machineSerialNumber": "HQ2201J9EFK", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/184051", + "accessLevel": 1, + "syscreated": 1654786624, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.2.43", + "vpnName": "HQ2201J9EFK", + "vpnOnline": true + }, { "name": "Von Allmen, Matten/BE | Elentec GmbH (2021-00022)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", @@ -9317,13 +24508,13 @@ "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 0, - "firmware": "v2.60~ditto", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163827, - "lastPowerUpOrRestart": 1620812789, + "lastConnection": 1718620642, + "lastPowerUpOrRestart": 1694445434, "machineSerialNumber": "HQ1930WMDZE", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/95736", "accessLevel": 1, "syscreated": 1613464765, @@ -9333,6 +24524,81 @@ "vpnName": "HQ1930WMDZE", "vpnOnline": true }, + { + "name": "Von Ins, Krauchthal/BE | Bantiger Elektro AG (AB2300232)_SN20230148", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab1dcca", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620652, + "lastPowerUpOrRestart": 1706521602, + "machineSerialNumber": "HQ2219AD9W6", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/328921", + "accessLevel": 1, + "syscreated": 1689767761, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "von Steiger Schiltknecht, Meiringen/BE | Christen Elektro Telematik AG (2022-00271)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "497", + "identifier": "48e7da87cd7f", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620650, + "lastPowerUpOrRestart": 1707824476, + "machineSerialNumber": "HQ2148C3PJ3", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/209803", + "accessLevel": 1, + "syscreated": 1662479509, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.151", + "vpnName": "HQ2148C3PJ3", + "vpnOnline": true + }, + { + "name": "Waber-Stalder, CH | Tim s Dächer GmbH (AB2300068)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab1d190", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 3, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620645, + "lastPowerUpOrRestart": 1712297599, + "machineSerialNumber": "HQ2217NMXMR", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/299455", + "accessLevel": 1, + "syscreated": 1683541032, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.3.216", + "vpnName": "HQ2217NMXMR", + "vpnOnline": true + }, { "name": "Wäger, Waldkirch/SG | Wäger (2019-00042)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", @@ -9348,7 +24614,7 @@ "lastConnection": 1608222620, "lastPowerUpOrRestart": 1602875785, "machineSerialNumber": "HQ19076JS77", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/42823", "accessLevel": 1, "syscreated": 1567167818, @@ -9358,6 +24624,31 @@ "vpnName": "HQ19076JS77", "vpnOnline": false }, + { + "name": "Waleffe, Bettlach/SO/CH | Feldmann & Co. AG (2022-00246)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "497", + "identifier": "48e7da885e7d", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620635, + "lastPowerUpOrRestart": 1718509332, + "machineSerialNumber": "HQ21487Y9HD", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/205986", + "accessLevel": 1, + "syscreated": 1661336679, + "vrmOnline": false, + "alarm": false, + "vpnIp": "10.2.2.131", + "vpnName": "HQ21487Y9HD", + "vpnOnline": true + }, { "name": "Walser, Urnäsch/AR | Swiss Photovoltaik GmbH (2021-00035)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", @@ -9370,10 +24661,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163831, - "lastPowerUpOrRestart": 1649687541, + "lastConnection": 1718620676, + "lastPowerUpOrRestart": 1714191551, "machineSerialNumber": "HQ2032UAWYM", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/104768", "accessLevel": 1, "syscreated": 1618829320, @@ -9395,10 +24686,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163783, - "lastPowerUpOrRestart": 1650825991, + "lastConnection": 1718620652, + "lastPowerUpOrRestart": 1690553310, "machineSerialNumber": "HQ2114K3YTP", - "type": "MultiPlus-II GX", + "controllerType": "MultiPlus-II GX", "vrmLink": "vrm.victronenergy.com/installation/151486", "accessLevel": 1, "syscreated": 1643030331, @@ -9417,13 +24708,13 @@ "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.73~r6", + "firmware": "v2.73~r12", "autoUpdate": "Check", - "updateTo": "Testing", - "lastConnection": 1651163839, - "lastPowerUpOrRestart": 1646931988, + "updateTo": "Official release", + "lastConnection": 1718620680, + "lastPowerUpOrRestart": 1714635412, "machineSerialNumber": "HQ2118M2CH9", - "type": "Cerbo GX", + "controllerType": "Cerbo GX", "vrmLink": "vrm.victronenergy.com/installation/156670", "accessLevel": 1, "syscreated": 1645169266, @@ -9434,10 +24725,35 @@ "vpnOnline": true }, { - "name": "Weibel, Henggart/ZH | Scherrer Gebäudehüllen AG (2020-00056)", + "name": "Walther, Wattenwil/BE |I ES-Elektro Seftigen AG (AB2300015)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "478", - "identifier": "0c1c5705d480", + "inverterFw": "502", + "identifier": "c0619ab1d0d7", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620678, + "lastPowerUpOrRestart": 1690237284, + "machineSerialNumber": "HQ2217MFPWF", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/330767", + "accessLevel": 1, + "syscreated": 1690199614, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Wandiger, Mettenheim/DE | Elektrotechnik Schmidt (2022-00189.1)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "02815deb11bc", "hasMains": true, "hasGenerator": false, "nbMppts": 0, @@ -9445,10 +24761,210 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163791, - "lastPowerUpOrRestart": 1644405223, + "lastConnection": 1718620645, + "lastPowerUpOrRestart": 1694876187, + "machineSerialNumber": "HQ2052IJ7FE", + "controllerType": "MultiPlus-II GX", + "vrmLink": "vrm.victronenergy.com/installation/185261", + "accessLevel": 1, + "syscreated": 1655221214, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.48", + "vpnName": "HQ2052IJ7FE", + "vpnOnline": true + }, + { + "name": "Wanner, Siblingen/SH | BEsolar GMBH (AB2300322) SN20230128", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d4f7", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620635, + "lastPowerUpOrRestart": 1713179739, + "machineSerialNumber": "HQ2217NE2Y6", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/325166", + "accessLevel": 1, + "syscreated": 1688979306, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Warehouse Test INNOV", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "498", + "identifier": "c0619ab3f5ef", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1697722880, + "lastPowerUpOrRestart": 1697721801, + "machineSerialNumber": "HQ2250ZJW4G", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/361357", + "accessLevel": 1, + "syscreated": 1697720081, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Wasem, Wengi /BE | Terrasystems AG (AB2300252) SN20230109", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d276", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620665, + "lastPowerUpOrRestart": 1712749382, + "machineSerialNumber": "HQ2217JWKPR", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/319714", + "accessLevel": 1, + "syscreated": 1687764903, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Weber, Walzenhausen/AR | A+ Elektro AG (2023-00005)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1696e", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620680, + "lastPowerUpOrRestart": 1681369131, + "machineSerialNumber": "HQ2211YUTTV", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/283791", + "accessLevel": 1, + "syscreated": 1679984969, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.156", + "vpnName": "HQ2211YUTTV", + "vpnOnline": true + }, + { + "name": "Weberbauer, SZ| JUD ENERGIE AG (AB2300163) SN20230129", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab168a2", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620678, + "lastPowerUpOrRestart": 1718459873, + "machineSerialNumber": "HQ2211XHGJR", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/323099", + "accessLevel": 1, + "syscreated": 1688468724, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Wechner, Bergdietikon/AG | kabeltechnik swiss ag (AB2300110)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab09a7e", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620653, + "lastPowerUpOrRestart": 1709942641, + "machineSerialNumber": "HQ214973W2R", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/306740", + "accessLevel": 1, + "syscreated": 1685000917, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.243", + "vpnName": "HQ214973W2R", + "vpnOnline": true + }, + { + "name": "Weibel-Cornel, Kirchberg/SG/CH | Elektro Iten (2022-00377)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "500", + "identifier": "48e7da881dc9", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620639, + "lastPowerUpOrRestart": 1670330108, + "machineSerialNumber": "HQ2204TJG6T", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/235700", + "accessLevel": 1, + "syscreated": 1668606927, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.240", + "vpnName": "HQ2204TJG6T", + "vpnOnline": true + }, + { + "name": "Weibel, Henggart/ZH | Scherrer Gebäudehüllen AG (2020-00056)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "0c1c5705d480", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620665, + "lastPowerUpOrRestart": 1714485487, "machineSerialNumber": "HQ20021INYL", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/66036", "accessLevel": 1, "syscreated": 1595079375, @@ -9458,6 +24974,106 @@ "vpnName": "HQ20021INYL", "vpnOnline": true }, + { + "name": "Weibel, Kaltbrunn/SG | Elektrizitätsversorgung Kaltbrunn AG (2022-00294)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "48e7da8817e5", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 3, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620668, + "lastPowerUpOrRestart": 1678185216, + "machineSerialNumber": "HQ2201DE76A", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/227416", + "accessLevel": 1, + "syscreated": 1666686373, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.208", + "vpnName": "HQ2201DE76A", + "vpnOnline": true + }, + { + "name": "Weibel, Rapperswil /BE | Terrasystems AG (2022-00383)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab09ac4", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620636, + "lastPowerUpOrRestart": 1709058111, + "machineSerialNumber": "HQ2149D4CGC", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/240238", + "accessLevel": 1, + "syscreated": 1669640106, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.249", + "vpnName": "HQ2149D4CGC", + "vpnOnline": true + }, + { + "name": "Weibel, Rapperswil | eltanorm GmbH ( AB2400044) SN20240045", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "506", + "identifier": "c0619ab393b1", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620683, + "lastPowerUpOrRestart": 1716900021, + "machineSerialNumber": "HQ22479NKCU", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/434743", + "accessLevel": 1, + "syscreated": 1715599368, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Weingut Zimmermann, DE | Daniel Gebert Technik Gebert (AB2300235) SN20230152", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab1d0f8", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620639, + "lastPowerUpOrRestart": 1711359334, + "machineSerialNumber": "HQ22174WAYC", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/332090", + "accessLevel": 1, + "syscreated": 1690446956, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, { "name": "Weisshaupt, Neunkirch/SH | Vivo Solar GmbH (2020-00083)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", @@ -9467,38 +25083,38 @@ "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 2, - "firmware": "v2.60~ditto", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1643896263, - "lastPowerUpOrRestart": 1633525854, + "lastConnection": 1718620670, + "lastPowerUpOrRestart": 1695377457, "machineSerialNumber": "HQ20249WQRE", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/71491", "accessLevel": 1, "syscreated": 1599665197, - "vrmOnline": false, + "vrmOnline": true, "alarm": false, "vpnIp": "10.2.0.216", "vpnName": "HQ20249WQRE", - "vpnOnline": false + "vpnOnline": true }, { "name": "Wendland, Oberaudorf/DE | Tino Electric - Anker & Funk GbR (2021-00031)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "481", + "inverterFw": "502", "identifier": "0cb2b7b9b535", - "hasMains": false, - "hasGenerator": false, + "hasMains": true, + "hasGenerator": true, "nbMppts": 0, "nbPvInverters": 1, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163814, - "lastPowerUpOrRestart": 1637931577, + "lastConnection": 1718620684, + "lastPowerUpOrRestart": 1713153896, "machineSerialNumber": "HQ20428K13Y", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/104399", "accessLevel": 1, "syscreated": 1618564216, @@ -9508,31 +25124,231 @@ "vpnName": "HQ20428K13Y", "vpnOnline": true }, + { + "name": "Werdenberg, Allschwil/BL | STARKSTROM GmbH (2022-00420)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab0ab04", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620636, + "lastPowerUpOrRestart": 1687267990, + "machineSerialNumber": "HQ2150KK7DX", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/246332", + "accessLevel": 1, + "syscreated": 1670950844, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.20", + "vpnName": "HQ2150KK7DX", + "vpnOnline": true + }, { "name": "Werkhof Archäologie, Frauenfeld/TG | Kantonales Hochbauamt (2021-00165)", "inverter": "Quattro 48/10000/140-2x100", - "inverterFw": "494", + "inverterFw": "502", "identifier": "48e7da87cfb9", "hasMains": true, "hasGenerator": false, "nbMppts": 4, - "nbPvInverters": 0, - "firmware": "v2.73~r6", + "nbPvInverters": 2, + "firmware": "v2.73~r12", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163819, - "lastPowerUpOrRestart": 1651135919, + "lastConnection": 1718620670, + "lastPowerUpOrRestart": 1701008266, "machineSerialNumber": "HQ21393HYZF", - "type": "Cerbo GX", - "vrmLink": "vrm.victronenergy.com/installation/158204", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/242987", "accessLevel": 1, - "syscreated": 1645800757, + "syscreated": 1670238253, "vrmOnline": true, "alarm": false, "vpnIp": "10.2.1.211", "vpnName": "HQ21393HYZF", "vpnOnline": true }, + { + "name": "Werkhof, Büsserach, CH | STARK STROM GmbH (AB2300284) SN20230215", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "506", + "identifier": "c0619ab381dd", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620685, + "lastPowerUpOrRestart": 1717108791, + "machineSerialNumber": "HQ2247RPQRD", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/359982", + "accessLevel": 1, + "syscreated": 1697449329, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Wernli, Seedorf/BE | Tritec AG (2022-00213)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "497", + "identifier": "48e7da8754d3", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620651, + "lastPowerUpOrRestart": 1660901621, + "machineSerialNumber": "HQ2148FKUEC", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/200371", + "accessLevel": 1, + "syscreated": 1659623485, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.107", + "vpnName": "HQ2148FKUEC", + "vpnOnline": true + }, + { + "name": "Werth, Bonaduz/GR | Solpic AG (2022-00287)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab167ef", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620677, + "lastPowerUpOrRestart": 1683258558, + "machineSerialNumber": "HQ2211NPDRD", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/241241", + "accessLevel": 1, + "syscreated": 1669815455, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.1", + "vpnName": "HQ2211NPDRD", + "vpnOnline": true + }, + { + "name": "Wettstein, Müntschemier/BE | Jakob Wettstein (2022-00261)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "48e7da85f0dd", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620646, + "lastPowerUpOrRestart": 1709538618, + "machineSerialNumber": "HQ2148FFU3W", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/209505", + "accessLevel": 1, + "syscreated": 1662392649, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.146", + "vpnName": "HQ2148FFU3W", + "vpnOnline": true + }, + { + "name": "Wettstein, Winkel/Zürich | Senero AG (AB2300271)", + "inverter": "MultiPlus-II 48/10000/140-100/100", + "inverterFw": "502", + "identifier": "c0619ab1d0ab", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 3, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620693, + "lastPowerUpOrRestart": 1712562626, + "machineSerialNumber": "HQ2217MADZH", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/366913", + "accessLevel": 1, + "syscreated": 1699024627, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Wetzel, Anwil/BL | BS Elektro Telematik AG (2022-00311)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "497", + "identifier": "48e7da858515", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620690, + "lastPowerUpOrRestart": 1693520294, + "machineSerialNumber": "HQ2148GWURH", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/219141", + "accessLevel": 1, + "syscreated": 1664803610, + "vrmOnline": true, + "alarm": true, + "vpnIp": "10.2.2.180", + "vpnName": "HQ2148GWURH", + "vpnOnline": true + }, + { + "name": "Wey und Schnydrig Ruswil/LU | Alectron AG (2022-00219)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da882eeb", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620679, + "lastPowerUpOrRestart": 1687216847, + "machineSerialNumber": "HQ2148F3JZE", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/201243", + "accessLevel": 1, + "syscreated": 1659942672, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.109", + "vpnName": "HQ2148F3JZE", + "vpnOnline": true + }, { "name": "Wey, Thun/BE | Brunner + Imboden AG (2019-00062)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", @@ -9542,13 +25358,13 @@ "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.60~ditto", + "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163833, - "lastPowerUpOrRestart": 1608222372, + "lastConnection": 1718620667, + "lastPowerUpOrRestart": 1716066213, "machineSerialNumber": "HQ1903J4VF5", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/38743", "accessLevel": 1, "syscreated": 1561384805, @@ -9570,10 +25386,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163825, - "lastPowerUpOrRestart": 1636482403, + "lastConnection": 1718620692, + "lastPowerUpOrRestart": 1671442587, "machineSerialNumber": "HQ2032BJWTR", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/99629", "accessLevel": 1, "syscreated": 1615903421, @@ -9592,13 +25408,13 @@ "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 2, - "firmware": "v2.60~ditto", + "firmware": "v2.73~r11", "autoUpdate": "Check", - "updateTo": "Release-candidate", - "lastConnection": 1651163796, - "lastPowerUpOrRestart": 1636517670, + "updateTo": "Official release", + "lastConnection": 1718620640, + "lastPowerUpOrRestart": 1710500015, "machineSerialNumber": "HQ2046PQVU8", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/120970", "accessLevel": 1, "syscreated": 1627463735, @@ -9620,10 +25436,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1647692403, - "lastPowerUpOrRestart": 1644209857, + "lastConnection": 1651581509, + "lastPowerUpOrRestart": 1651579950, "machineSerialNumber": "HQ1907VJ3X5", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/46686", "accessLevel": 1, "syscreated": 1572338683, @@ -9645,10 +25461,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163828, - "lastPowerUpOrRestart": 1647564564, + "lastConnection": 1718620649, + "lastPowerUpOrRestart": 1660901621, "machineSerialNumber": "HQ2139XJDP6", - "type": "Cerbo GX", + "controllerType": "Cerbo GX", "vrmLink": "vrm.victronenergy.com/installation/156549", "accessLevel": 1, "syscreated": 1645110256, @@ -9659,26 +25475,76 @@ "vpnOnline": true }, { - "name": "Wiesner, Mönchaltorf/ZH | Schibli AG (2022-00001)", - "inverter": "MultiPlus-II 48/5000/70-48", + "name": "Widmer-Reichlin, Adligenswil/LU | Kunz-Solartech GmbH (2022-00053)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "490", - "identifier": "00e93aac4a4f", - "hasMains": true, + "identifier": "48e7da875a8d", + "hasMains": false, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163801, - "lastPowerUpOrRestart": 1649062782, + "lastConnection": 1718620680, + "lastPowerUpOrRestart": 1660901619, + "machineSerialNumber": "HQ2148UF9W7", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/166385", + "accessLevel": 1, + "syscreated": 1648814557, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.240", + "vpnName": "HQ2148UF9W7", + "vpnOnline": true + }, + { + "name": "Wiese, Düsseldorf DE/ Mrotzek (2023-0088)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1ce93", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620663, + "lastPowerUpOrRestart": 1718490641, + "machineSerialNumber": "HQ2217R6MRX", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/311462", + "accessLevel": 1, + "syscreated": 1686040401, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.4.12", + "vpnName": "HQ2217R6MRX", + "vpnOnline": true + }, + { + "name": "Wiesner, Mönchaltorf/ZH | Schibli AG (2022-00001)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "00e93aac4a4f", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620665, + "lastPowerUpOrRestart": 1695728016, "machineSerialNumber": "HQ21393TN7Z", - "type": "Cerbo GX", + "controllerType": "Cerbo GX", "vrmLink": "vrm.victronenergy.com/installation/158672", "accessLevel": 1, "syscreated": 1646065452, "vrmOnline": true, - "alarm": false, + "alarm": true, "vpnIp": "10.2.1.212", "vpnName": "HQ21393TN7Z", "vpnOnline": true @@ -9686,24 +25552,24 @@ { "name": "Wiest, Unterramsern/SO | Genossenschaft Elektra (2020-00075)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "475", + "inverterFw": "502", "identifier": "0c1c5701912e", "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.66~rc5", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163805, - "lastPowerUpOrRestart": 1650021419, + "lastConnection": 1718620664, + "lastPowerUpOrRestart": 1718098912, "machineSerialNumber": "HQ2005XYN3P", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/70218", "accessLevel": 1, "syscreated": 1598596065, "vrmOnline": true, - "alarm": false, + "alarm": true, "vpnIp": "10.2.0.209", "vpnName": "HQ2005XYN3P", "vpnOnline": true @@ -9713,17 +25579,17 @@ "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "485", "identifier": "0035ff6448b9", - "hasMains": false, + "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163800, - "lastPowerUpOrRestart": 1639671540, + "lastConnection": 1718620698, + "lastPowerUpOrRestart": 1660901658, "machineSerialNumber": "HQ20462N383", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/134049", "accessLevel": 1, "syscreated": 1634799316, @@ -9733,22 +25599,147 @@ "vpnName": "HQ20462N383", "vpnOnline": true }, + { + "name": "Will, Grossenlüder/DE | Sauer Elektrotechnik GmbH (AB2300221)_SN20230179", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "506", + "identifier": "c0619ab1d112", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620645, + "lastPowerUpOrRestart": 1713950140, + "machineSerialNumber": "HQ2217APG44", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/342238", + "accessLevel": 1, + "syscreated": 1692945303, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Willi,Brione.D.S /TI| Urs Willi (2022-00438)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab16851", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620698, + "lastPowerUpOrRestart": 1708422071, + "machineSerialNumber": "HQ2211KXFUE", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/250721", + "accessLevel": 1, + "syscreated": 1672137510, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.24", + "vpnName": "HQ2211KXFUE", + "vpnOnline": true + }, + { + "name": "William, Unterbachern/DE | EBS Elektrotechnik Stefan GmbH (2022-00211.5)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da873d21", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1683725923, + "lastPowerUpOrRestart": 1663760424, + "machineSerialNumber": "HQ2148EYYEN", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/198325", + "accessLevel": 1, + "syscreated": 1659008371, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.100", + "vpnName": "HQ2148EYYEN", + "vpnOnline": true + }, + { + "name": "Willibald, Feldgeding/DE | EBS Elektrotechnik Stefan GmbH(2022-00280.5)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da85f281", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620671, + "lastPowerUpOrRestart": 1706772379, + "machineSerialNumber": "HQ2148P77PE", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/215436", + "accessLevel": 1, + "syscreated": 1663850520, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.166", + "vpnName": "HQ2148P77PE", + "vpnOnline": true + }, + { + "name": "Windisch, Densbüren/AG | Elektro H. Frei AG (2022-00467)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1064c", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620697, + "lastPowerUpOrRestart": 1683192954, + "machineSerialNumber": "HQ2204RAJHH", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/253893", + "accessLevel": 1, + "syscreated": 1673254301, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.40", + "vpnName": "HQ2204RAJHH", + "vpnOnline": true + }, { "name": "Wintermantel, Liesberg/BL | XEEO GmbH (2021-00180)", "inverter": "MultiPlus-II 48/5000/70-48", - "inverterFw": "490", + "inverterFw": "502", "identifier": "1862e4cbf943", "hasMains": false, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 0, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163848, - "lastPowerUpOrRestart": 1650363238, + "lastConnection": 1718620673, + "lastPowerUpOrRestart": 1698999957, "machineSerialNumber": "HQ21013VSTM", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/141033", "accessLevel": 1, "syscreated": 1637857056, @@ -9758,10 +25749,85 @@ "vpnName": "HQ21013VSTM", "vpnOnline": true }, + { + "name": "Wirth Riedenburg /DE | Kälte Wirth GmbH (AB2300025)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab2e6dd", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620675, + "lastPowerUpOrRestart": 1710252823, + "machineSerialNumber": "HQ2242P7AFK", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/314968", + "accessLevel": 1, + "syscreated": 1686734866, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.4.30", + "vpnName": "HQ2242P7AFK", + "vpnOnline": true + }, + { + "name": "Wirth, Altmannstein-Pondorf/DE | Kälte Wirth GmbH (AB2300026)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1dc02", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620653, + "lastPowerUpOrRestart": 1704637277, + "machineSerialNumber": "HQ2217QAKFF", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/311899", + "accessLevel": 1, + "syscreated": 1686116981, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.4.14", + "vpnName": "HQ2217QAKFF", + "vpnOnline": true + }, + { + "name": "Wirth, Waltensburg/GR | Solpic AG (2022-00360)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "48e7da87ecf5", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 5, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620656, + "lastPowerUpOrRestart": 1699522148, + "machineSerialNumber": "HQ2201JHPHT", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/232579", + "accessLevel": 1, + "syscreated": 1667901315, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.225", + "vpnName": "HQ2201JHPHT", + "vpnOnline": true + }, { "name": "Wirz, Binningen/BL | b+s Elektro Telematik AG (2021-00189)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "490", + "inverterFw": "502", "identifier": "94e36dce5bc9", "hasMains": true, "hasGenerator": false, @@ -9770,10 +25836,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163840, - "lastPowerUpOrRestart": 1640130010, + "lastConnection": 1718620687, + "lastPowerUpOrRestart": 1709431769, "machineSerialNumber": "HQ20427EYI2", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/140683", "accessLevel": 1, "syscreated": 1637769202, @@ -9783,22 +25849,47 @@ "vpnName": "HQ20427EYI2", "vpnOnline": true }, + { + "name": "Wittenberg, Märwil/TG | Senero AG (2022-00357)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da89a631", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r10", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620676, + "lastPowerUpOrRestart": 1684922818, + "machineSerialNumber": "HQ2148RUA4Z", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/229705", + "accessLevel": 1, + "syscreated": 1667206100, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.212", + "vpnName": "HQ2148RUA4Z", + "vpnOnline": true + }, { "name": "Wittwer, Obergoldbach/BE | Elektro Frommherz AG (2020-00054)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "474", + "inverterFw": "502", "identifier": "7804733ff108", "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163797, - "lastPowerUpOrRestart": 1647709118, + "lastConnection": 1718620696, + "lastPowerUpOrRestart": 1717514831, "machineSerialNumber": "HQ1945MP1KD", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/62078", "accessLevel": 1, "syscreated": 1591696209, @@ -9809,10 +25900,35 @@ "vpnOnline": true }, { - "name": "Wyssbrod, Büren/BE | KWenergy GmbH (2021-00184)", + "name": "Wollscheid 1 Nürenberg, DE | Elektro Nürenberg GbR (AB2300195) SN20230156", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1d1d9", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620672, + "lastPowerUpOrRestart": 1706631647, + "machineSerialNumber": "HQ2217AJUAD", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/335996", + "accessLevel": 1, + "syscreated": 1691413833, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Wunderlin, Männerdorf/ZH/CH | Solarchain AG (2022-00036)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "490", - "identifier": "0479b7ae9c4f", + "identifier": "48e7da886489", "hasMains": false, "hasGenerator": false, "nbMppts": 0, @@ -9820,10 +25936,110 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163800, - "lastPowerUpOrRestart": 1642752359, + "lastConnection": 1718620676, + "lastPowerUpOrRestart": 1682513825, + "machineSerialNumber": "HQ2139ADQ6M", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/160938", + "accessLevel": 1, + "syscreated": 1646926244, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.224", + "vpnName": "HQ2139ADQ6M", + "vpnOnline": true + }, + { + "name": "Wurstbauer, Mühldorf/DE | Elektrotechnik Schmidt (2022-00189.3)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "497", + "identifier": "0281ce514d14", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620696, + "lastPowerUpOrRestart": 1713679772, + "machineSerialNumber": "HQ2107XARH2", + "controllerType": "MultiPlus-II GX", + "vrmLink": "vrm.victronenergy.com/installation/185598", + "accessLevel": 1, + "syscreated": 1655304421, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.50", + "vpnName": "HQ2107XARH2", + "vpnOnline": true + }, + { + "name": "Wüthrich, Eichberg/SG | müggler spenglertechnik gmbh (2022-00568)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab09864", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620667, + "lastPowerUpOrRestart": 1686832587, + "machineSerialNumber": "HQ2148AKKEK", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/278531", + "accessLevel": 1, + "syscreated": 1678782877, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.132", + "vpnName": "HQ2148AKKEK", + "vpnOnline": true + }, + { + "name": "Wüthrich, Münchenstein/BL/CH | Planeco GmbH (2022-00233)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab0224d", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620674, + "lastPowerUpOrRestart": 1694762748, + "machineSerialNumber": "HQ2118XADMY", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/240117", + "accessLevel": 1, + "syscreated": 1669627414, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.121", + "vpnName": "HQ2118XADMY", + "vpnOnline": true + }, + { + "name": "Wyssbrod, Büren/BE | KWenergy GmbH (2021-00184)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "0479b7ae9c4f", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620696, + "lastPowerUpOrRestart": 1660901677, "machineSerialNumber": "HQ210179R4D", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/139352", "accessLevel": 1, "syscreated": 1637240451, @@ -9834,71 +26050,96 @@ "vpnOnline": true }, { - "name": "Xs_tief 629-4", - "inverter": "MultiPlus-II 48/5000/70-48", - "inverterFw": "494", - "identifier": "94e36dce9703", + "name": "Zahn, Küsnacht/ZH | Senero AG (2022-00404)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab16727", "hasMains": true, "hasGenerator": false, "nbMppts": 0, - "nbPvInverters": 0, - "firmware": "v2.73~r6", + "nbPvInverters": 1, + "firmware": "v2.73~r12", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1648798628, - "lastPowerUpOrRestart": 1648639945, - "machineSerialNumber": "HQ2028CLPYC", - "type": "Venus GX", - "vrmLink": "vrm.victronenergy.com/installation/94239", + "lastConnection": 1718620693, + "lastPowerUpOrRestart": 1704877698, + "machineSerialNumber": "HQ2211AAWCT", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/243013", "accessLevel": 1, - "syscreated": 1612359464, - "vrmOnline": false, - "alarm": false, - "vpnIp": "10.2.1.19", - "vpnName": "HQ2028CLPYC", - "vpnOnline": false - }, - { - "name": "Xs_tief 630-2", - "inverter": "MultiPlus-II 48/5000/70-48", - "inverterFw": "481", - "identifier": "0035ff646c74", - "hasMains": true, - "hasGenerator": true, - "nbMppts": 0, - "nbPvInverters": 0, - "firmware": "v2.60~ditto", - "autoUpdate": "Check", - "updateTo": "Official release", - "lastConnection": 1651009969, - "lastPowerUpOrRestart": 1651009970, - "machineSerialNumber": "HQ2032N3QK8", - "type": "Venus GX", - "vrmLink": "vrm.victronenergy.com/installation/94190", - "accessLevel": 1, - "syscreated": 1612347681, + "syscreated": 1670241313, "vrmOnline": true, "alarm": false, - "vpnIp": "10.2.1.20", - "vpnName": "HQ2032N3QK8", - "vpnOnline": false + "vpnIp": "10.2.3.2", + "vpnName": "HQ2211AAWCT", + "vpnOnline": true + }, + { + "name": "Zaugg, Thun/BE/CH | Elektro Gyger AG (2022-00154)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "48e7da8637f1", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620708, + "lastPowerUpOrRestart": 1713336838, + "machineSerialNumber": "HQ2201P4K4Q", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/187125", + "accessLevel": 1, + "syscreated": 1655827422, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.59", + "vpnName": "HQ2201P4K4Q", + "vpnOnline": true + }, + { + "name": "Zbinden, Faulensee/BE | Allenbach Holzbau und Solartechnik AG (2022-00170)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "48e7da88c74f", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 2, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620703, + "lastPowerUpOrRestart": 1694069852, + "machineSerialNumber": "HQ2148UFM7G", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/191584", + "accessLevel": 1, + "syscreated": 1657126662, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.74", + "vpnName": "HQ2148UFM7G", + "vpnOnline": true }, { "name": "Zbinden, Salzmatt/BE | Breu AG (2020-00015)", "inverter": "MultiPlus-II 48/5000/70-48", - "inverterFw": "474", + "inverterFw": "502", "identifier": "4c3fd33eec71", "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163850, - "lastPowerUpOrRestart": 1648884968, + "lastConnection": 1718620669, + "lastPowerUpOrRestart": 1717788503, "machineSerialNumber": "HQ1930QHH53", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/59299", "accessLevel": 1, "syscreated": 1588657271, @@ -9909,21 +26150,71 @@ "vpnOnline": true }, { - "name": "Ziegler, Märwil/TG | Gebr. Willi Elektro AG (2021-00193)", + "name": "Zbinden, Vauffelin/BE/CH | EnergyOptimizer GmbH - Solarenergie (2021-00237)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "490", - "identifier": "1862e4c6fd9e", - "hasMains": false, + "identifier": "48e7da8590cf", + "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 0, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163793, - "lastPowerUpOrRestart": 1649776446, + "lastConnection": 1644828630, + "lastPowerUpOrRestart": 1644828186, + "machineSerialNumber": "HQ21282HJWR", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/155417", + "accessLevel": 1, + "syscreated": 1644590780, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.197", + "vpnName": "HQ21282HJWR", + "vpnOnline": false + }, + { + "name": "Zeier, Elsau| EWE Elektro AG (AB2300329) SN20240019", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "506", + "identifier": "c0619ab38847", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620713, + "lastPowerUpOrRestart": 1716999719, + "machineSerialNumber": "HQ2247Q3CV7", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/393134", + "accessLevel": 1, + "syscreated": 1706014901, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Ziegler, Märwil/TG | Gebr. Willi Elektro AG (2021-00193)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "490", + "identifier": "1862e4c6fd9e", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620668, + "lastPowerUpOrRestart": 1660901660, "machineSerialNumber": "HQ2101S5M6Z", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/143646", "accessLevel": 1, "syscreated": 1638972730, @@ -9945,10 +26236,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163796, - "lastPowerUpOrRestart": 1643294255, + "lastConnection": 1718620676, + "lastPowerUpOrRestart": 1685785777, "machineSerialNumber": "HQ2101K1CUA", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/127247", "accessLevel": 1, "syscreated": 1631173454, @@ -9958,10 +26249,85 @@ "vpnName": "HQ2101K1CUA", "vpnOnline": true }, + { + "name": "Zimmermann, Aiglsbach/DE | EBS Elektrotechnik Stefan GmbH (2022-00445.5)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab16742", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620670, + "lastPowerUpOrRestart": 1713196934, + "machineSerialNumber": "HQ2211E2T2E", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/252694", + "accessLevel": 1, + "syscreated": 1672850246, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.38", + "vpnName": "HQ2211E2T2E", + "vpnOnline": true + }, + { + "name": "Zimmermann, Neunkirch/SH | BEsolar GmbH (2022-00215)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "497", + "identifier": "48e7da88f27d", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620665, + "lastPowerUpOrRestart": 1693321686, + "machineSerialNumber": "HQ2148FQER7", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/199533", + "accessLevel": 1, + "syscreated": 1659424565, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.103", + "vpnName": "HQ2148FQER7", + "vpnOnline": true + }, + { + "name": "Zimmermann, Schwändi/GL | Marti-Elektroanlagen AG (2023-00049)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab1dd29", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620692, + "lastPowerUpOrRestart": 1686930207, + "machineSerialNumber": "HQ2219H2H7U", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/281624", + "accessLevel": 1, + "syscreated": 1679488325, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.150", + "vpnName": "HQ2219H2H7U", + "vpnOnline": true + }, { "name": "Zimmermann, Trüllikon/ZH | Vivo Solar GmbH (2020-00001)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "471", + "inverterFw": "502", "identifier": "1cba8ca13362", "hasMains": true, "hasGenerator": false, @@ -9970,10 +26336,10 @@ "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163850, - "lastPowerUpOrRestart": 1636479768, + "lastConnection": 1718620704, + "lastPowerUpOrRestart": 1694156531, "machineSerialNumber": "HQ19247DV3Z", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/52664", "accessLevel": 1, "syscreated": 1580551286, @@ -9983,22 +26349,172 @@ "vpnName": "HQ19247DV3Z", "vpnOnline": true }, + { + "name": "Zimmermann, Urdorf ZH/ Helion (2022-00179)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab098d4", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 0, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620705, + "lastPowerUpOrRestart": 1718010245, + "machineSerialNumber": "HQ2148FNDHR", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/281642", + "accessLevel": 1, + "syscreated": 1679489376, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Zimmermann, Weiler/DE | elitek Jürgen Fink (2022-00232)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "497", + "identifier": "102c6bc2ab61", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 1, + "firmware": "v2.73~r10", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620668, + "lastPowerUpOrRestart": 1703059061, + "machineSerialNumber": "HQ2118XWEN9", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/203648", + "accessLevel": 1, + "syscreated": 1660662529, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.2.122", + "vpnName": "HQ2118XWEN9", + "vpnOnline": true + }, + { + "name": "Zimmernmann, Uetendorf | Elektro Gertsch AG (AB240038) SN20240037", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab2df6c", + "hasMains": false, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r12", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620673, + "lastPowerUpOrRestart": 1717467513, + "machineSerialNumber": "HQ2242WEVGW", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/339563", + "accessLevel": 1, + "syscreated": 1692274107, + "vrmOnline": true, + "alarm": false, + "vpnIp": "", + "vpnName": "", + "vpnOnline": false + }, + { + "name": "Zita und Marcel Savary Baumeler CH | Swiss Photovoltaik GmbH (AB2300124)", + "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", + "inverterFw": "502", + "identifier": "c0619ab2e67f", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620697, + "lastPowerUpOrRestart": 1689345295, + "machineSerialNumber": "HQ2242NKY9E", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/311092", + "accessLevel": 1, + "syscreated": 1685964685, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.4.9", + "vpnName": "HQ2242NKY9E", + "vpnOnline": true + }, + { + "name": "Zollinger, Eppenberg/SO | Nussbaumer Elektroanlagen AG (AB2300031)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "502", + "identifier": "c0619ab1dca0", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 2, + "nbPvInverters": 0, + "firmware": "v2.73~r11", + "autoUpdate": "Check", + "updateTo": "Testing", + "lastConnection": 1718620702, + "lastPowerUpOrRestart": 1699436855, + "machineSerialNumber": "HQ2219H3UVP", + "controllerType": "Cerbo GX", + "vrmLink": "vrm.victronenergy.com/installation/302437", + "accessLevel": 1, + "syscreated": 1684143969, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.3.223", + "vpnName": "HQ2219H3UVP", + "vpnOnline": false + }, + { + "name": "Zuberbühler, Pfyn/TG/CH | InnovEnergy (2021-00199)", + "inverter": "MultiPlus-II 48/5000/70-48", + "inverterFw": "490", + "identifier": "1862e4cbeaf1", + "hasMains": true, + "hasGenerator": false, + "nbMppts": 1, + "nbPvInverters": 1, + "firmware": "v2.73~r6", + "autoUpdate": "Check", + "updateTo": "Official release", + "lastConnection": 1718620708, + "lastPowerUpOrRestart": 1674577180, + "machineSerialNumber": "HQ2101C9ANU", + "controllerType": "Venus GX", + "vrmLink": "vrm.victronenergy.com/installation/145567", + "accessLevel": 1, + "syscreated": 1639675778, + "vrmOnline": true, + "alarm": false, + "vpnIp": "10.2.1.177", + "vpnName": "HQ2101C9ANU", + "vpnOnline": true + }, { "name": "Zumsteg, Magden/AG | STARK STROM GmbH (2019-00056)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "459", "identifier": "0cae7d642534", - "hasMains": true, + "hasMains": false, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 2, - "firmware": "v2.73~r6", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163843, - "lastPowerUpOrRestart": 1649333954, + "lastConnection": 1718620716, + "lastPowerUpOrRestart": 1704150120, "machineSerialNumber": "HQ190787283", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/46748", "accessLevel": 1, "syscreated": 1572360463, @@ -10011,19 +26527,19 @@ { "name": "Zünd, Effretikon/ZH | NewSol AG (2019-00067)", "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", - "inverterFw": "459", + "inverterFw": "502", "identifier": "0cae7d54ca58", "hasMains": false, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 0, - "firmware": "v2.60~ditto", + "firmware": "v2.73~r11", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163838, - "lastPowerUpOrRestart": 1644672972, + "lastConnection": 1718620681, + "lastPowerUpOrRestart": 1714593613, "machineSerialNumber": "HQ1907SDBGF", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/47738", "accessLevel": 1, "syscreated": 1573580385, @@ -10038,17 +26554,17 @@ "inverter": "MultiPlus-II 48/3000/35-32 (ACOut2 switchable)", "inverterFw": "459", "identifier": "0cae7d64542c", - "hasMains": true, + "hasMains": false, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 2, "firmware": "v2.60~ditto", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1612357011, - "lastPowerUpOrRestart": 1612170347, + "lastConnection": 1696170713, + "lastPowerUpOrRestart": 1696170703, "machineSerialNumber": "HQ19072WJSI", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/43664", "accessLevel": 1, "syscreated": 1568281709, @@ -10063,17 +26579,17 @@ "inverter": "MultiPlus-II 48/3000/35-32 (50A ext sensor)", "inverterFw": "456", "identifier": "102c6b643ccf", - "hasMains": false, + "hasMains": true, "hasGenerator": false, "nbMppts": 0, "nbPvInverters": 1, "firmware": "v2.73~r6", "autoUpdate": "Check", "updateTo": "Official release", - "lastConnection": 1651163802, - "lastPowerUpOrRestart": 1646917047, + "lastConnection": 1718620672, + "lastPowerUpOrRestart": 1697209481, "machineSerialNumber": "HQ2048HB348", - "type": "Cerbo GX", + "controllerType": "Cerbo GX", "vrmLink": "vrm.victronenergy.com/installation/32570", "accessLevel": 1, "syscreated": 1551375128, @@ -10085,6 +26601,8 @@ }, { "name": "ZZX_Defekt_e415f6fc9a92", + "inverter": "unknown", + "inverterFw": "unknown", "identifier": "e415f6fc9a92", "hasMains": false, "hasGenerator": false, @@ -10096,14 +26614,14 @@ "lastConnection": 1632383490, "lastPowerUpOrRestart": 1632383477, "machineSerialNumber": "HQ2046YGGXV", - "type": "Venus GX", + "controllerType": "Venus GX", "vrmLink": "vrm.victronenergy.com/installation/125864", "accessLevel": 1, "syscreated": 1630418713, "vrmOnline": true, "alarm": false, - "vpnIp": "", - "vpnName": "", + "vpnIp": "10.2.2.206", + "vpnName": "HQ2046YGGXV", "vpnOnline": false } ] \ No newline at end of file