Victron a chytrý dům

Victron a chytrý dům

V tomto příspěvku si ukážeme jak načítat informace z fotovoltaické elektrárny od firmy Victron. Propojíme se s jednotkou Cerbo přes MQTT. Na základě těchto hodnot pak můžeme spínat různé spotřebiče (topení, bojler atp.) a předejít plýtvání baterie pro velké spotřebiče v době, kdy nemusí běžet.

Hardware

Pi-Home - pokud nemáte, viz sekci Jak na to

Victron FVE

Software

OpenHAB 3

Postup:

1) Zjistíme si IP adresu cerba na našem routeru. Většinou v záložce DHCP, pro MikroTik například IP-> DHCP Server -> Leases. V tomto příkladě 10.1.1.125. Hledejte hostname einstein.

Router IP address Victron

2) Zadáme IP do prohlížeče a zapneme v Settings -> Services funkci MQTT Broker

Victron MQTT komunikace

3) V OpenHAB v Settings ->Things přidáme nový MQTT Broker (New Thing -> MQTT -> MQTT Broker) a zadáme IP adresu Cerba. Jako identifikator dejte ccgx a pojmenujeme například MQTT CCGX

Victron MQTT Broker

4) Připojíme se přes SSH na Raspberry

ssh openhabian@IP-ADRESA-RASPBERRY

5) Připojíme se přes SSH na Raspberry (naše fiktivní IP OpenHAB je 10.1.1.125)

mosquitt_sub -h 10.1.1.125 -t "#"

Pokud vše funguje, dostaneme VRM ID:

MQTT Victron

 

V dalších částech nahraďte ID svým vlastním ID.Jelikož MQTT na Cerbe jde po 60 vteřinách "spát", musíme stále obnovovat komunikaci a říct mu že někdo poslouchá. Na to stačí jednoduché pravidlo v Rules přímo v OpenHAB 3 UI. Přejděte do Rules, přidejte nové pravidlo, nějak jej pojmenujte, přepněte na záložku Code a zkopírujte níže uvedené pravidlo:

 

triggers:
- id: "1"
configuration:
cronExpression: 0/30 * * * * ? *
type: timer.GenericCronTrigger
conditions: []
actions:
- inputs: {}
id: "2"
configuration:
type: application/vnd.openhab.dsl.rule
script: |
val actions = getActions("mqtt", "mqtt:broker:ccgx")
actions.publishMQTT("R/c0619*****/system/0/Serial", "")
logInfo("Solar", "CCGX MQTT Keep Alive Timer fired!!")
type: script.ScriptAction

 Zvolte Save. Pak je možné vytvořit nový Thing pro jednotlivé položky co chceme načítat do OpenHAB. Zvolíme opět Settings -> Things a ikonou + vytvoříme nový. Vyplňte dle vzoru níže, nezapomeňte v MQTT Broker vybrat výše vytvořený MQTT Victron.

Victron MQTT items

Po vytvoření rozbalte záložku Code kde můžete nakopírovat následující channels:

UID: mqtt:topic:pihome:vitronthings
label: Victron Things
thingTypeUID: mqtt:topic
configuration: {}
bridgeUID: mqtt:broker:ccgx
channels:
  - id: pv_battery_soc
    channelTypeUID: mqtt:dimmer
    label: Battery SoC
    description: null
    configuration:
      stateTopic: N/c0619*******/system/0/Dc/Battery/Soc
      transformationPattern: JSONPATH:$.value
  - id: pv_battery_temp
    channelTypeUID: mqtt:dimmer
    label: Battery Temperature
    description: null
    configuration:
      stateTopic: N/c0619*******/system/0/Dc/Battery/Temperature
      transformationPattern: JSONPATH:$.value   
  - id: pv_battery_state
    channelTypeUID: mqtt:dimmer
    label: Battery State
    description: null
    configuration:
      stateTopic: N/c0619*******/system/0/Dc/Battery/State
      transformationPattern: JSONPATH:$.value         
  - id: pv_battery_voltage
    channelTypeUID: mqtt:number
    label: Battery Voltage
    description: null
    configuration:
      formatBeforePublish: "%.4f"
      stateTopic: N/c0619*******/system/0/Dc/Battery/Voltage
      transformationPattern: JSONPATH:$.value
  - id: pv_battery_power
    channelTypeUID: mqtt:number
    label: Battery Power
    description: null
    configuration:
      formatBeforePublish: "%.4f"
      stateTopic: N/c0619*******/system/0/Dc/Battery/Power
      transformationPattern: JSONPATH:$.value      
  - id: pv_power_pv
    channelTypeUID: mqtt:number
    label: Solar Power
    description: null
    configuration:
      stateTopic: N/c0619*******/system/0/Dc/Pv/Power
      transformationPattern: JSONPATH:$.value
  - id: pv_power_consumptionL1
    channelTypeUID: mqtt:number
    label: Consumption L1
    description: null
    configuration:
      stateTopic: N/c0619*******/system/0/Ac/Consumption/L1/Power
      transformationPattern: JSONPATH:$.value
  - id: pv_power_consumptionL2
    channelTypeUID: mqtt:number
    label: Consumption L2
    description: null
    configuration:
      stateTopic: N/c0619*******/system/0/Ac/Consumption/L2/Power
      transformationPattern: JSONPATH:$.value
  - id: pv_power_consumptionL3
    channelTypeUID: mqtt:number
    label: Consumption L3
    description: null
    configuration:
      stateTopic: N/c0619*******/system/0/Ac/Consumption/L3/Power
      transformationPattern: JSONPATH:$.value
  - id: grid_power_consumptionL1
    channelTypeUID: mqtt:number
    label: Grid L1
    description: null
    configuration:
      stateTopic: N/c0619*******/system/0/Ac/Grid/L1/Power
      transformationPattern: JSONPATH:$.value
  - id: grid_power_consumptionL2
    channelTypeUID: mqtt:number
    label: Grid L2
    description: null
    configuration:
      stateTopic: N/c0619*******/system/0/Ac/Grid/L2/Power
      transformationPattern: JSONPATH:$.value
  - id: grid_power_consumptionL3
    channelTypeUID: mqtt:number
    label: Grid L3
    description: null
    configuration:
      stateTopic: N/c0619*******/system/0/Ac/Grid/L3/Power
      transformationPattern: JSONPATH:$.value
  - id: pv0_power
    channelTypeUID: mqtt:number
    label: PV0 Power
    description: null
    configuration:
      stateTopic: N/c0619*******/solarcharger/0/Yield/Power
      transformationPattern: JSONPATH:$.value
  - id: pv1_power
    channelTypeUID: mqtt:number
    label: PV1 Power
    description: null
    configuration:
      stateTopic: N/c0619*******/solarcharger/1/Yield/Power
      transformationPattern: JSONPATH:$.value            
      
Po vytvoření Channels finálně zajděte do Settings -> Items -> Add Items from Textual Definition a vložte tyto řádky:

Group Victron         "Victron"                       <energy>            ["Inverter"]
Number pv_battery_soc         "Battery SoC"           <energy>  (Victron) ["Energy"] { channel="mqtt:topic:pihome:vitronthings:pv_battery_soc" }
Number pv_battery_temp         "Battery Temperature"  <energy>  (Victron) ["Temperature"] { channel="mqtt:topic:pihome:vitronthings:pv_battery_temp" }
Number pv_battery_state        "Battery State"        <energy>  (Victron) ["Status"] { channel="mqtt:topic:pihome:vitronthings:pv_battery_state" }
Number pv_battery_voltage      "Battery Voltage"      <energy>  (Victron) ["Voltage"] { channel="mqtt:topic:pihome:vitronthings:pv_battery_voltage" }
Number pv_battery_power        "Battery Power"        <energy>  (Victron) ["Power"] { channel="mqtt:topic:pihome:vitronthings:pv_battery_power" }
Number pv_power_pv             "Solar Power"          <energy>  (Victron) ["Power"] { channel="mqtt:topic:pihome:vitronthings:pv_power_pv" }
Number pv_power_consumptionL1  "Consumption L1"       <energy>  (Victron) ["Power"] { channel="mqtt:topic:pihome:vitronthings:pv_power_consumptionL1" }
Number pv_power_consumptionL2  "Consumption L2"       <energy>  (Victron) ["Power"] { channel="mqtt:topic:pihome:vitronthings:pv_power_consumptionL2" }
Number pv_power_consumptionL3  "Consumption L3"       <energy>  (Victron) ["Power"] { channel="mqtt:topic:pihome:vitronthings:pv_power_consumptionL3" }
Number grid_power_consumptionL1 "Grid L1"             <energy>  (Victron) ["Power"] { channel="mqtt:topic:pihome:vitronthings:grid_power_consumptionL1" }
Number grid_power_consumptionL2 "Grid L2"             <energy>  (Victron) ["Power"] { channel="mqtt:topic:pihome:vitronthings:grid_power_consumptionL2" }
Number grid_power_consumptionL3 "Grid L3"             <energy>  (Victron) ["Power"] { channel="mqtt:topic:pihome:vitronthings:grid_power_consumptionL3" }
Number pv0_power              "PV0 Power"             <energy>  (Victron) ["Power"] { channel="mqtt:topic:pihome:vitronthings:pv0_power" }
Number pv1_power              "PV1 Power"             <energy>  (Victron) ["Power"] { channel="mqtt:topic:pihome:vitronthings:pv1_power" }

vložte a máte hotovo! V OpenHAB nyní máte aktuální hodnoty z Victronu. Můžete na ně navazovat různá pravidla a získáváte také historii a grafy těchto hodnot v OpenHAB. Teď už je to jen na Vás jak si to zobrazíte v Dashboardu a jaké pravidla vytvoříte.

Za tipy využití budeme rádi v komentářích.

Victron a chytrý dům - dashboard

 

Kompletní seznam hodnot co lze vyčíst ke stažení zde:

Plain text icon victronmqttvariables.txt

 

 Tip: U všech items lze přidat Add metadata -> State description a v položce Pattern změnit formátování.

 Například hodnota %.1f W v poli Pattern znamená zaokrouhlení na jedno desetinné místo a jednotka Watt.

Hodnocení článku:

Průměr: 5 (35 hlasů)

Podpořte nás:

Přidat komentář:

Přidat komentář

Nejnovější články v blogu

Tailscale - VPN bez veřejné IP
Tailscale - přístup bez veřejné IP adresyHodnocení: 
100%

Služba Tailscale řeší přístup mezi jednotlivými zařízeními, pokud nemáte možnost veřejné IP adresy. Pro jednoho uživatele je zdarma s podporou max 100 zařízení. Ukážeme si jak Tailscale nainstalovat na Raspberry Pi, které budeme mít někde doma a do klienta (Android, iPhone) ze kterého budeme chtít přistupovat k domácímu Raspberry Pi. Náším příkladem bude vzdálený přístup k OpenHAB běžícím na Raspberry Pi. Nicméně stejné nastavení platí pro spoustu jiných aplikací - domácí NAS, PiHole, Home Assistant, Domoticz, NextCloud a jiné.

Shelly MQTT implementace
Shelly a OpenHABHodnocení: 
100%

Značka Shelly je známa svými produkty komunikujicími hlavně přes WiFi a zahrnujicími ovládané zásuvky, relé pod vypínače, relé pro ovládaní žaluzíí a mnoho dalších produktů. Jedna z výhod pro nasazení je možnost načítat a taky ovládat tyto zařízení pomocí univerzálního protokolu MQTT. Napříč existujícímu addonu pro OpenHAB i Home Assistant si ukážeme jak používat Shelly zařízení bez instalace jakéhokoliv rozšíření.

Victron & OpenHAB
Victron a chytrý důmHodnocení: 
100%

V tomto příspěvku si ukážeme jak načítat informace z fotovoltaické elektrárny od firmy Victron. Propojíme se s jednotkou Cerbo přes MQTT. Na základě těchto hodnot pak můžeme spínat různé spotřebiče (topení, bojler atp.) a předejít plýtvání baterie pro velké spotřebiče v době, kdy nemusí běžet atp.

GoodWe a chytrá domácnost
Smart Home a GoodWeHodnocení: 
100%

V příspěvku ukážeme krok po kroku jak komunikovat chytrou domácnosti přímo se střídačem Goodwe a dostávát aktuální informace (narozdíl od SEMS portálu). Tyto informace jsou nezbytné pokud chceme v chytrém domě nějak reagovat na aktuální parametry např. spínání dodatečného chlazení nebo spínání zásuvky se zátěží.

Ovládání domu hlasem
Hlasové ovládání domu AlexouHodnocení: 
100%

V tomto článku propojíme hlasového asistenta Amazon Echo Dot s open source domácí automatizací. Nepoužíváme OpenHAB Cloud, tz. vše běží lokálně. V tomto případě je nutných pár nastavení navíc, nicméně výsledek stojí za to!

NFC Tag Chytrý dům
NFC tagy v chytrém doměHodnocení: 
100%

NFC (Near Field Communication) tagy jsou malé plastové nebo papírové nálepky, které mohou být použity k automatizaci různých funkcí v domácnosti. V čláku vám ukážeme příklady použití a návod jak zapsat akci na NFC tag pomocí mobilního telefonu.

WireGuard iOS
Nastavení WireGuard připojení v iOSHodnocení: 
0%

V tomto článku najdete podrobný návod, jak se připojit k WireGuard VPN z iOS.

WireGuard z Androidu
Nastavení WireGuard připojení v AndroiduHodnocení: 
0%

V tomto článku najdete podrobný návod, jak se připojit k WireGuard VPN z Androidu.

WireGuard na routerech MikroTikHodnocení: 
88.6%

Článek popisuje svépomocné zprovoznění VPN protokolu WireGuard na zařízeních MikroTik s verzí RouterOS 7 a vyšší. Tato fenomenální VPN je velmi rychlá, bezpečná a snadno nastavitelná v domácem prostředí. Dá se říct že moméntálně je to nejlepší VPN pro domácí použití dostupné široké veřejnosti.

Nilan Modbus OpenHAB
Nilan VP18 vs OpenHABHodnocení: 
80%

V tomto příspěvku si ukážeme propojení aktivní rekuperační jednotky Nilan, v našem případě typ VP18 K WT s OpenHAB 3. Komunikací přes Modbus je možné načítat celou škálu hodnot, ale hlavně také řídit jednotku skrze OpenHAB. To nám umožňuje dálkově nebo programově měnit výkon a nastavení větrání v závislosti na režimu (noc, vaření atd.)