Home Assistant jako měřič motohodin

Diskuze, rady a návody ohledně HomeAssistant
rva
Příspěvky: 3502
Registrován: úte dub 23, 2013 10:21 am
Lokalita: Kousek od Lysé nad Labem
Systémové napětí: 48V
Výkon panelů [Wp]: 46000
Kapacita baterie [kWh]: 40
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Kousek od Lysé nad Labem

Home Assistant jako měřič motohodin

Příspěvek od rva »

Okolo elektrárny a baráku je řada zařízení, která potřebují pravidelnou údržbu. Často závislou od toho, jak dlouho dané zařízení běhalo. Například u měniče bych rád věděl, kolik hodin běžel, abych ho třeba po 2000 hodinách běhu vyfoukal od prachu. U bazénové filtrace po 5000 hodinách vyměnil písek, u domovní filtrace výměna filtrů. Neřešil to někdo? Prostě počítání motohodin (jak dlouho byl daný switch ON), které bude pokračovat i po restartu systému a kdy může naakumulovaná doba pokračovat třeba i několik let.
U History_Stats jsem omezený délkou historie (obvykle 10 dnů), snad kdybych zavedl pro spotřebič akumulovanou dobu a po každém spuštění ji navýšil a ukládal v influxDB, nebo si to zavést v integraci "energy monitor", která si "spotřeby" ukládá do vlastní databáze?
_______________________________________________________________________
43 kWp, LiFePO4 46 kWh,
EPSolar 60 A/150 V ET6415N + 3x Isolar SM II (5 kW, 450 V, 80 A) + Axpert PIP 5048MS
PetrDubi
Příspěvky: 1341
Registrován: úte říj 12, 2021 10:43 am
Lokalita: Blízko Ústí nad Labem
Systémové napětí: 48V
Výkon panelů [Wp]: 7100
Kapacita baterie [kWh]: 13
Chci prodávat energii: NE
Chci/Mám dotaci: NE

Re: Home Assistant jako měřič motohodin

Příspěvek od PetrDubi »

Tohle by mělo být to, co potřebuješ
https://www.home-assistant.io/integrati ... ory_stats/
mobilní elektrárna 3x Uni-solar PVL-68, 3x MPP modul, vše řízené přes arduino
doma 3280 Wp JV, 3810 Wp JZ, Easun SMW 8k (rebrandovaný MAX 8 kW), aku 13kWh 16s LiFePO4
dusanmsk
Příspěvky: 313
Registrován: pát říj 15, 2021 10:41 am
Lokalita: Stredocesky kraj
Systémové napětí: 48V
Výkon panelů [Wp]: 11250
Kapacita baterie [kWh]: 9.6
Chci prodávat energii: NE
Chci/Mám dotaci: NE

Re: Home Assistant jako měřič motohodin

Příspěvek od dusanmsk »

V tejto chvili musim ocenit, ze napriek tomu ze ho v niektorych veciach fest neznasam, tak toto ma pekne poriesene loxone. Jedna "krabicka" pripojena za vystup krabicky "vypinaca", na nej aktivovany symbol remanencie. Tri kliky, otazka 5 sekund. Homeassistant som skusal, bezi mi doma ako kvazi riadenie veci co mam na zigbee, ale taku otrasnu tazkotonaznu neudrzovatelnu vec som uz dlho nevidel.

V kazdom pripade diky za namet, motohodiny su skvely napad (aj ked ako sa poznam, tak tie upozrnenia budem ignorovat, tak, ako ich uz pol roka ignorujem u robotickeho vysavaca, ktory sa dozaduje nejakej udrzby).
30*375 Wp JJZ, 2xXTM4000, 2xVT-80, 2xUS5000
cipis
Příspěvky: 4307
Registrován: pon srp 16, 2021 9:31 pm
Lokalita: blízko Brna
Bydliště: blízko Brna

Re: Home Assistant jako měřič motohodin

Příspěvek od cipis »

Toš to naprogramuj tak, že se to vypne :D
Takhle totiž reagoval můj vysavač, když jsem to též vesele ignoroval.
Tak se prostě vypnul a nahlásil údržbu.
9,77 kWp: 6240 Wp Jih, 2040 Wp Východ, 1490 Wp Západ
Regulátory Epever a Victron
Phoenix 2 kVA + MP 24/5000 (můj byt + wifi/kamery/atd. + máti byt)
Epever 3kW vytěžování do bojlerů + žebříky
CARSPA aktuálně odpojené
1 kW "nabíječka" 24 V
31 080 Wh staré olovo 7 488 Wh Li-Ion
Modře píši jako moderátor, černě jako člen.
dusanmsk
Příspěvky: 313
Registrován: pát říj 15, 2021 10:41 am
Lokalita: Stredocesky kraj
Systémové napětí: 48V
Výkon panelů [Wp]: 11250
Kapacita baterie [kWh]: 9.6
Chci prodávat energii: NE
Chci/Mám dotaci: NE

Re: Home Assistant jako měřič motohodin

Příspěvek od dusanmsk »

To ten moj chvala bohu nerobi, vyrdzi aj nasobky (3-5) intervalov :D
30*375 Wp JJZ, 2xXTM4000, 2xVT-80, 2xUS5000
rva
Příspěvky: 3502
Registrován: úte dub 23, 2013 10:21 am
Lokalita: Kousek od Lysé nad Labem
Systémové napětí: 48V
Výkon panelů [Wp]: 46000
Kapacita baterie [kWh]: 40
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Kousek od Lysé nad Labem

Re: Home Assistant jako měřič motohodin

Příspěvek od rva »

PetrDubi píše:Tohle by mělo být to, co potřebuješ
https://www.home-assistant.io/integrati ... ory_stats/
History_stats to asi neřeší, protože pracuje s daty, která jsou uložena v interní databázi HA obvykle 10 dní. A délku tohoto rekorderu kvůli takové drobnosti nechci ani zkoušet zvětšovat na rok či dva.
Jinak tuto integraci používám na rychlý pohled, jak dlouho běžely některé spotřebiče v posledních 7 dnech. V configuration.yaml to pak vypadá třeba takto:

Kód: Vybrat vše

  - platform: history_stats
    name: Měnič 3 ON 7 dní
    entity_id: switch.4_433_switch_2
    state: "on"
    type: time
    end: "{{ now().replace(hour=0, minute=0, second=0, microsecond=0) }}"
    duration:
      days: 7
Řešení je určitě promitivní, ale ne pro mě. Nejnadějnější se mi zdá právě "zneužití" integrace "energy", kde se dají zadat nejen spotřeby elektřiny, ale i plynu, vody. Tam jsou snad akumulované hodnoty spotřeb ukládány zvlášť. Podstrčit tomu další měřenou "spotřebu" kdy byl stav switch ON.
_______________________________________________________________________
43 kWp, LiFePO4 46 kWh,
EPSolar 60 A/150 V ET6415N + 3x Isolar SM II (5 kW, 450 V, 80 A) + Axpert PIP 5048MS
rva
Příspěvky: 3502
Registrován: úte dub 23, 2013 10:21 am
Lokalita: Kousek od Lysé nad Labem
Systémové napětí: 48V
Výkon panelů [Wp]: 46000
Kapacita baterie [kWh]: 40
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Kousek od Lysé nad Labem

Re: Home Assistant jako měřič motohodin

Příspěvek od rva »

Alternativně pak třeba využít "integraci" "stavu ON". Integraci používám u levných smart switch s měřením výkonu, které nemají výpočet celkové spotřeby. Ode mě to nakonec bude fungovat, ale bude to jako drbat se pravou rukou za levým uchem.
Integrování příkonu k získání spotřeby
Integrování příkonu k získání spotřeby
_______________________________________________________________________
43 kWp, LiFePO4 46 kWh,
EPSolar 60 A/150 V ET6415N + 3x Isolar SM II (5 kW, 450 V, 80 A) + Axpert PIP 5048MS
PetrDubi
Příspěvky: 1341
Registrován: úte říj 12, 2021 10:43 am
Lokalita: Blízko Ústí nad Labem
Systémové napětí: 48V
Výkon panelů [Wp]: 7100
Kapacita baterie [kWh]: 13
Chci prodávat energii: NE
Chci/Mám dotaci: NE

Re: Home Assistant jako měřič motohodin

Příspěvek od PetrDubi »

A co vytvořit ten history_stats a ještě jeden template sensor (s ukládáním stavu) a při změně proměnný hour zvýšíš stav toho template sensoru a máš tam počet hodin, kterej ti nezmizí po úkldu databáze. Sice tam může vzniknout určitá nepřesnost (při úklidu databáze), ale bude asi minimální. Místo template sensoru můžeš klidně použít i počítadlo v pomocnících.
Druhá možnost by byla mít dva template sensory a každou minutu spouštět automatizaci, která když bude zapnutý sledovaný přístroj, tak zvýší stav prvního sensoru o 1 a potom hlídání, že když první sensor dosáhne hodnoty 60, tak druhý sensor zvýšíš o jedna a na prvním nastavíš 0. Sensory samozřejmě s ukládáním stavu.
mobilní elektrárna 3x Uni-solar PVL-68, 3x MPP modul, vše řízené přes arduino
doma 3280 Wp JV, 3810 Wp JZ, Easun SMW 8k (rebrandovaný MAX 8 kW), aku 13kWh 16s LiFePO4
rva
Příspěvky: 3502
Registrován: úte dub 23, 2013 10:21 am
Lokalita: Kousek od Lysé nad Labem
Systémové napětí: 48V
Výkon panelů [Wp]: 46000
Kapacita baterie [kWh]: 40
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Kousek od Lysé nad Labem

Re: Home Assistant jako měřič motohodin

Příspěvek od rva »

Nakonec to dopadlo takto:
Node-RED motohodiny
Node-RED motohodiny
1. Základ pro měření motohodin je v Node-RED
2. Node "Interval length" měří dobu, kdy je DC stykač zapnutý. Ty druhé dva vstupy jsou do něj proto aby neměřil dobu, kdy je DC stykač vypnutý. Proto je v jeho vlastnostech zaškrtnuto "Allow measurements to be reset"
Node Interval Length
Node Interval Length
3. Interval pak jde do funkce, kterou mám jen k tomu, abych interval, který je v milisekundách, převedl na hodiny.
Funkce
Funkce
4. Pak to jde do senzoru, který jsem vytvořil přímo z Node-RED (předtím jsem si doinstaloval přes HACS itegraci Node-RED Companion https://github.com/zachowj/hass-node-red, která umožňuje vytvářet senzory pro HA přímo z Node-RED)
DC stykač ON jako utility meter
DC stykač ON jako utility meter
Export v json

Kód: Vybrat vše

[
    {
        "id": "b5d34894b2907342",
        "type": "tab",
        "label": "Flow 1",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "048aad0c8cff6cc2",
        "type": "inject",
        "z": "b5d34894b2907342",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 100,
        "y": 300,
        "wires": [
            [
                "e0b1b163789e9e07",
                "51581c6652e81995"
            ]
        ]
    },
    {
        "id": "51581c6652e81995",
        "type": "delay",
        "z": "b5d34894b2907342",
        "name": "",
        "pauseType": "delay",
        "timeout": "5",
        "timeoutUnits": "milliseconds",
        "rate": "1",
        "nbRateUnits": "1",
        "rateUnits": "second",
        "randomFirst": "1",
        "randomLast": "5",
        "randomUnits": "seconds",
        "drop": false,
        "allowrate": false,
        "outputs": 1,
        "x": 330,
        "y": 420,
        "wires": [
            [
                "c2d66c4c1dd771ed"
            ]
        ]
    },
    {
        "id": "e974e0aac4793997",
        "type": "server-state-changed",
        "z": "b5d34894b2907342",
        "name": "DC stykač",
        "server": "aaab75cd.fd8c28",
        "version": 4,
        "exposeToHomeAssistant": false,
        "haConfig": [
            {
                "property": "name",
                "value": ""
            },
            {
                "property": "icon",
                "value": ""
            }
        ],
        "entityidfilter": "switch.4_433_switch_3",
        "entityidfiltertype": "exact",
        "outputinitially": false,
        "state_type": "habool",
        "haltifstate": "true",
        "halt_if_type": "bool",
        "halt_if_compare": "is",
        "outputs": 2,
        "output_only_on_state_change": true,
        "for": "0",
        "forType": "num",
        "forUnits": "minutes",
        "ignorePrevStateNull": false,
        "ignorePrevStateUnknown": false,
        "ignorePrevStateUnavailable": false,
        "ignoreCurrentStateUnknown": false,
        "ignoreCurrentStateUnavailable": false,
        "outputProperties": [
            {
                "property": "payload",
                "propertyType": "msg",
                "value": "",
                "valueType": "entityState"
            },
            {
                "property": "data",
                "propertyType": "msg",
                "value": "",
                "valueType": "eventData"
            },
            {
                "property": "topic",
                "propertyType": "msg",
                "value": "",
                "valueType": "triggerId"
            }
        ],
        "x": 100,
        "y": 460,
        "wires": [
            [
                "e0b1b163789e9e07",
                "51581c6652e81995"
            ],
            [
                "c2d66c4c1dd771ed"
            ]
        ]
    },
    {
        "id": "c2d66c4c1dd771ed",
        "type": "interval-length",
        "z": "b5d34894b2907342",
        "format": "mills",
        "bytopic": false,
        "minimum": "",
        "maximum": "",
        "window": "",
        "timeout": false,
        "msgTimeout": "",
        "minimumunit": "msecs",
        "maximumunit": "msecs",
        "windowunit": "msecs",
        "msgTimeoutUnit": "msecs",
        "reset": true,
        "startup": false,
        "msgField": "payload",
        "timestampField": "timestamp",
        "repeatTimeout": false,
        "name": "",
        "x": 580,
        "y": 460,
        "wires": [
            [
                "0adc12848c2637c8"
            ],
            []
        ]
    },
    {
        "id": "e0b1b163789e9e07",
        "type": "change",
        "z": "b5d34894b2907342",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "reset",
                "pt": "msg",
                "to": "true",
                "tot": "bool"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 340,
        "y": 340,
        "wires": [
            [
                "c2d66c4c1dd771ed"
            ]
        ]
    },
    {
        "id": "9e46b5749bfd2d29",
        "type": "debug",
        "z": "b5d34894b2907342",
        "name": "debug 3",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "true",
        "targetType": "full",
        "statusVal": "",
        "statusType": "auto",
        "x": 1140,
        "y": 400,
        "wires": []
    },
    {
        "id": "0adc12848c2637c8",
        "type": "function",
        "z": "b5d34894b2907342",
        "name": "",
        "func": "var count  = flow.get(\"counter\") ||0;\n\ncount = msg.payload / 3600000;\nmsg.payload = count;\nreturn msg;\n",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 780,
        "y": 460,
        "wires": [
            [
                "aeceee0271d44215"
            ]
        ]
    },
    {
        "id": "a7e909ee48922e2b",
        "type": "inject",
        "z": "b5d34894b2907342",
        "name": "Reset",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": true,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "reset",
        "payloadType": "str",
        "x": 90,
        "y": 200,
        "wires": [
            [
                "04a787f8cfa52418"
            ]
        ]
    },
    {
        "id": "04a787f8cfa52418",
        "type": "function",
        "z": "b5d34894b2907342",
        "name": "",
        "func": "flow.set(\"counter\",0);\n",
        "outputs": 0,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 290,
        "y": 200,
        "wires": []
    },
    {
        "id": "aeceee0271d44215",
        "type": "ha-sensor",
        "z": "b5d34894b2907342",
        "name": "dc_stykač_ON_3",
        "entityConfig": "1a0faed62d75381d",
        "version": 0,
        "state": "payload",
        "stateType": "msg",
        "attributes": [],
        "inputOverride": "allow",
        "outputProperties": [],
        "x": 970,
        "y": 460,
        "wires": [
            [
                "9e46b5749bfd2d29"
            ]
        ]
    },
    {
        "id": "aaab75cd.fd8c28",
        "type": "server",
        "name": "Home Assistant",
        "addon": true
    },
    {
        "id": "1a0faed62d75381d",
        "type": "ha-entity-config",
        "server": "aaab75cd.fd8c28",
        "deviceConfig": "",
        "name": "DC stykač ON jako Utility Meter 1",
        "version": "6",
        "entityType": "sensor",
        "haConfig": [
            {
                "property": "name",
                "value": "dc_stykac_on_duration_3"
            },
            {
                "property": "icon",
                "value": ""
            },
            {
                "property": "entity_category",
                "value": ""
            },
            {
                "property": "device_class",
                "value": "duration"
            },
            {
                "property": "unit_of_measurement",
                "value": "h"
            },
            {
                "property": "state_class",
                "value": "total_increasing"
            }
        ],
        "resend": false,
        "debugEnabled": false
    }
]
A výsledné motohodiny se pak zobrazují jako každá jiná entita v HA, kde jsem v integraci Utility Meter vytvořil nový senzor:
DC stykač ON jako Utility Meter
DC stykač ON jako Utility Meter
Záznam motohodin
Záznam motohodin
Určitě moc složitě, ale snad to funguje.
_______________________________________________________________________
43 kWp, LiFePO4 46 kWh,
EPSolar 60 A/150 V ET6415N + 3x Isolar SM II (5 kW, 450 V, 80 A) + Axpert PIP 5048MS

  • Podobná témata
    Odpovědi
    Zobrazení
    Poslední příspěvek