TurboJens Skrevet 10. oktober 2022 Skrevet 10. oktober 2022 (endret) Hei godtfolk :-) Eg har ein Siemens energimåler for avrekning av varmtvannsforbruk i sameiget. Denne har M-BUS interface, og eg vil gjerne ha lest ut data frå denne og sammenstilt det med data frå strømmålaren min for å få ein oversikt over samla energiforbruk. Det som er "in" no er jo å prøve å holde seg innanfor nettariffane, det vil ikkje fungere noko særleg for meg men eg vil alikavel prøve å holde meg under 2kW effekt. Varmtvannsforbruket (gulvvarme) er mest for moro samt å få automatisk avlesing så slepp eg å krype inn i skapet der målaren står sidan det kjem til å kome ei vaskeromsinnreiing foran den luka. Tenkte at det kanskje er intressant for fleire her, dei som har luft/vann eller grunnvarmepumpe har ofte energimåler så kan vere greitt å få det med. Eg har kjøpt ein M-BUS master/USB interface frå Kina som virka rett ut av boksen. link: https://www.aliexpress.com/item/1005004334740899.html Eg kobla den til ein Raspberry og følgde litt den guiden her: https://www.hackster.io/hartmut-wendt/smartmetering-via-m-bus-and-raspberry-pi-a408d4 med unntak av at eg også måtte installere libtools med kommando før sudo ./build.sh sudo apt-get install libtool automake Så rettighet på USB interfacet, og deretter scan for M-BUS slaver: chmod 666 /dev/ttyUSB0 root@raspberrypi:/home/xx/libmbus/bin# ./mbus-serial-scan -d -b 2400 /dev/ttyUSB0 Scanning primary addresses: 0 [2022-10-10 15:31:03Z] SEND (005): 10 40 00 40 16 [2022-10-10 15:31:03Z] RECV (001): E5 Found a M-Bus device at address 0 Så avlesing, dette er resultatet. root@raspberrypi:/home/xx/libmbus/bin# ./mbus-serial-request-data -d -b 2400 /dev/ttyUSB0 0 init_slaves: debug: sending init frame #1 [2022-10-10 15:32:40Z] SEND (005): 10 40 FD 3D 16 init_slaves: debug: sending init frame #2 [2022-10-10 15:32:40Z] SEND (005): 10 40 FD 3D 16 [2022-10-10 15:32:41Z] SEND (005): 10 5B 00 5B 16 [2022-10-10 15:32:42Z] RECV (232): 68 E2 E2 68 08 00 72 43 45 98 70 A7 32 07 04 00 00 00 00 09 74 04 09 70 08 0C 06 87 47 00 00 0C 14 33 22 11 00 0B 2D 12 00 00 0B 3B 66 03 00 0B 5A 58 03 00 0B 5E 30 03 00 0B 62 28 00 00 0C 78 43 45 98 70 89 10 71 15 3C 22 00 00 00 00 0C 22 07 32 01 00 0C 26 48 38 00 00 8C 90 10 06 00 00 00 00 9B 10 2D 62 01 00 9B 10 3B 44 13 00 9B 10 5A 70 03 00 9B 10 5E 85 04 00 94 10 AD 6F 0F 0F C4 22 94 10 BB 6F 00 0F DB 24 94 10 DA 6F 39 16 DB 22 94 10 DE 6F 2C 09 A8 24 4C 06 00 00 00 00 4C 14 00 00 00 00 7C 22 23 64 00 00 4C 26 00 00 00 00 CC 90 10 06 00 00 00 00 DB 10 2D 00 00 00 DB 10 3B 00 00 00 DB 10 5A 82 02 00 DB 10 5E 85 04 00 84 8F 0F 6D 00 00 E1 F1 04 6D 26 10 CA 2A 0F 19 07 00 62 01 8C 16 mbus_frame_print: Dumping M-Bus frame [type 4, 232 bytes]: 68 E2 E2 68 08 00 72 43 45 98 70 A7 32 07 04 00 00 00 00 09 74 04 09 70 08 0C 06 87 47 00 00 0C 14 33 22 11 00 0B 2D 12 00 00 0B 3B 66 03 00 0B 5A 58 03 00 0B 5E 30 03 00 0B 62 28 00 00 0C 78 43 45 98 70 89 10 71 15 3C 22 00 00 00 00 0C 22 07 32 01 00 0C 26 48 38 00 00 8C 90 10 06 00 00 00 00 9B 10 2D 62 01 00 9B 10 3B 44 13 00 9B 10 5A 70 03 00 9B 10 5E 85 04 00 94 10 AD 6F 0F 0F C4 22 94 10 BB 6F 00 0F DB 24 94 10 DA 6F 39 16 DB 22 94 10 DE 6F 2C 09 A8 24 4C 06 00 00 00 00 4C 14 00 00 00 00 7C 22 23 64 00 00 4C 26 00 00 00 00 CC 90 10 06 00 00 00 00 DB 10 2D 00 00 00 DB 10 3B 00 00 00 DB 10 5A 82 02 00 DB 10 5E 85 04 00 84 8F 0F 6D 00 00 E1 F1 04 6D 26 10 CA 2A 0F 19 07 00 62 01 8C 16 <?xml version="1.0" encoding="ISO-8859-1"?> <MBusData> <SlaveInformation> <Id>70984543</Id> <Manufacturer>LUG</Manufacturer> <Version>7</Version> <ProductName>Landis & Gyr Ultraheat T230</ProductName> <Medium>Heat: Outlet</Medium> <AccessNumber>0</AccessNumber> <Status>00</Status> <Signature>0000</Signature> </SlaveInformation> <DataRecord id="0"> <Function>Instantaneous value</Function> <StorageNumber>0</StorageNumber> <Unit>Actuality Duration (seconds)</Unit> <Value>4</Value> <Timestamp>2022-10-10T15:32:42Z</Timestamp> </DataRecord> <DataRecord id="1"> <Function>Instantaneous value</Function> <StorageNumber>0</StorageNumber> <Unit>Averaging Duration (seconds)</Unit> <Value>8</Value> <Timestamp>2022-10-10T15:32:42Z</Timestamp> </DataRecord> <DataRecord id="2"> <Function>Instantaneous value</Function> <StorageNumber>0</StorageNumber> <Unit>Energy (kWh)</Unit> <Value>4787</Value> <Timestamp>2022-10-10T15:32:42Z</Timestamp> </DataRecord> <DataRecord id="3"> <Function>Instantaneous value</Function> <StorageNumber>0</StorageNumber> <Unit>Volume (1e-2 m^3)</Unit> <Value>112233</Value> <Timestamp>2022-10-10T15:32:42Z</Timestamp> </DataRecord> <DataRecord id="4"> <Function>Instantaneous value</Function> <StorageNumber>0</StorageNumber> <Unit>Power (100 W)</Unit> <Value>12</Value> <Timestamp>2022-10-10T15:32:42Z</Timestamp> </DataRecord> <DataRecord id="5"> <Function>Instantaneous value</Function> <StorageNumber>0</StorageNumber> <Unit>Volume flow (m m^3/h)</Unit> <Value>366</Value> <Timestamp>2022-10-10T15:32:42Z</Timestamp> </DataRecord> <DataRecord id="6"> <Function>Instantaneous value</Function> <StorageNumber>0</StorageNumber> <Unit>Flow temperature (1e-1 deg C)</Unit> <Value>358</Value> <Timestamp>2022-10-10T15:32:42Z</Timestamp> </DataRecord> <DataRecord id="7"> <Function>Instantaneous value</Function> <StorageNumber>0</StorageNumber> <Unit>Return temperature (1e-1 deg C)</Unit> <Value>330</Value> <Timestamp>2022-10-10T15:32:42Z</Timestamp> </DataRecord> <DataRecord id="8"> <Function>Instantaneous value</Function> <StorageNumber>0</StorageNumber> <Unit>Temperature Difference (1e-1 deg C)</Unit> <Value>28</Value> <Timestamp>2022-10-10T15:32:42Z</Timestamp> </DataRecord> <DataRecord id="9"> <Function>Instantaneous value</Function> <StorageNumber>0</StorageNumber> <Unit>Fabrication number</Unit> <Value>70984543</Value> <Timestamp>2022-10-10T15:32:42Z</Timestamp> </DataRecord> <DataRecord id="10"> <Function>Instantaneous value</Function> <StorageNumber>0</StorageNumber> <Tariff>1</Tariff> <Device>0</Device> <Unit>Averaging Duration (minutes)</Unit> <Value>15</Value> <Timestamp>2022-10-10T15:32:42Z</Timestamp> </DataRecord> <DataRecord id="11"> <Function>Value during error state</Function> <StorageNumber>0</StorageNumber> <Unit>On time (hours)</Unit> <Value>0</Value> <Timestamp>2022-10-10T15:32:42Z</Timestamp> </DataRecord> <DataRecord id="12"> <Function>Instantaneous value</Function> <StorageNumber>0</StorageNumber> <Unit>On time (hours)</Unit> <Value>13207</Value> <Timestamp>2022-10-10T15:32:42Z</Timestamp> </DataRecord> <DataRecord id="13"> <Function>Instantaneous value</Function> <StorageNumber>0</StorageNumber> <Unit>Operating time (hours)</Unit> <Value>3848</Value> <Timestamp>2022-10-10T15:32:42Z</Timestamp> </DataRecord> <DataRecord id="14"> <Function>Instantaneous value</Function> <StorageNumber>0</StorageNumber> <Tariff>5</Tariff> <Device>0</Device> <Unit>Energy (kWh)</Unit> <Value>0</Value> <Timestamp>2022-10-10T15:32:42Z</Timestamp> </DataRecord> <DataRecord id="15"> <Function>Maximum value</Function> <StorageNumber>0</StorageNumber> <Tariff>1</Tariff> <Device>0</Device> <Unit>Power (100 W)</Unit> <Value>162</Value> <Timestamp>2022-10-10T15:32:42Z</Timestamp> </DataRecord> <DataRecord id="16"> <Function>Maximum value</Function> <StorageNumber>0</StorageNumber> <Tariff>1</Tariff> <Device>0</Device> <Unit>Volume flow (m m^3/h)</Unit> <Value>1344</Value> <Timestamp>2022-10-10T15:32:42Z</Timestamp> </DataRecord> <DataRecord id="17"> <Function>Maximum value</Function> <StorageNumber>0</StorageNumber> <Tariff>1</Tariff> <Device>0</Device> <Unit>Flow temperature (1e-1 deg C)</Unit> <Value>370</Value> <Timestamp>2022-10-10T15:32:42Z</Timestamp> </DataRecord> <DataRecord id="18"> <Function>Maximum value</Function> <StorageNumber>0</StorageNumber> <Tariff>1</Tariff> <Device>0</Device> <Unit>Return temperature (1e-1 deg C)</Unit> <Value>485</Value> <Timestamp>2022-10-10T15:32:42Z</Timestamp> </DataRecord> <DataRecord id="19"> <Function>Maximum value</Function> <StorageNumber>0</StorageNumber> <Tariff>1</Tariff> <Device>0</Device> <Unit>Power (100 W)</Unit> <Value>583274255</Value> <Timestamp>2022-10-10T15:32:42Z</Timestamp> </DataRecord> <DataRecord id="20"> <Function>Maximum value</Function> <StorageNumber>0</StorageNumber> <Tariff>1</Tariff> <Device>0</Device> <Unit>Volume flow (m m^3/h)</Unit> <Value>618336000</Value> <Timestamp>2022-10-10T15:32:42Z</Timestamp> </DataRecord> <DataRecord id="21"> <Function>Maximum value</Function> <StorageNumber>0</StorageNumber> <Tariff>1</Tariff> <Device>0</Device> <Unit>Flow temperature (1e-1 deg C)</Unit> <Value>584783417</Value> <Timestamp>2022-10-10T15:32:42Z</Timestamp> </DataRecord> <DataRecord id="22"> <Function>Maximum value</Function> <StorageNumber>0</StorageNumber> <Tariff>1</Tariff> <Device>0</Device> <Unit>Return temperature (1e-1 deg C)</Unit> <Value>614992172</Value> <Timestamp>2022-10-10T15:32:42Z</Timestamp> </DataRecord> <DataRecord id="23"> <Function>Instantaneous value</Function> <StorageNumber>1</StorageNumber> <Unit>Energy (kWh)</Unit> <Value>0</Value> <Timestamp>2022-10-10T15:32:42Z</Timestamp> </DataRecord> <DataRecord id="24"> <Function>Instantaneous value</Function> <StorageNumber>1</StorageNumber> <Unit>Volume (1e-2 m^3)</Unit> <Value>0</Value> <Timestamp>2022-10-10T15:32:42Z</Timestamp> </DataRecord> <DataRecord id="25"> <Function>Value during error state</Function> <StorageNumber>1</StorageNumber> <Unit>On time (hours)</Unit> <Value>6423</Value> <Timestamp>2022-10-10T15:32:42Z</Timestamp> </DataRecord> <DataRecord id="26"> <Function>Instantaneous value</Function> <StorageNumber>1</StorageNumber> <Unit>Operating time (hours)</Unit> <Value>0</Value> <Timestamp>2022-10-10T15:32:42Z</Timestamp> </DataRecord> <DataRecord id="27"> <Function>Instantaneous value</Function> <StorageNumber>1</StorageNumber> <Tariff>5</Tariff> <Device>0</Device> <Unit>Energy (kWh)</Unit> <Value>0</Value> <Timestamp>2022-10-10T15:32:42Z</Timestamp> </DataRecord> <DataRecord id="28"> <Function>Maximum value</Function> <StorageNumber>1</StorageNumber> <Tariff>1</Tariff> <Device>0</Device> <Unit>Power (100 W)</Unit> <Value>0</Value> <Timestamp>2022-10-10T15:32:42Z</Timestamp> </DataRecord> <DataRecord id="29"> <Function>Maximum value</Function> <StorageNumber>1</StorageNumber> <Tariff>1</Tariff> <Device>0</Device> <Unit>Volume flow (m m^3/h)</Unit> <Value>0</Value> <Timestamp>2022-10-10T15:32:42Z</Timestamp> </DataRecord> <DataRecord id="30"> <Function>Maximum value</Function> <StorageNumber>1</StorageNumber> <Tariff>1</Tariff> <Device>0</Device> <Unit>Flow temperature (1e-1 deg C)</Unit> <Value>282</Value> <Timestamp>2022-10-10T15:32:42Z</Timestamp> </DataRecord> <DataRecord id="31"> <Function>Maximum value</Function> <StorageNumber>1</StorageNumber> <Tariff>1</Tariff> <Device>0</Device> <Unit>Return temperature (1e-1 deg C)</Unit> <Value>485</Value> <Timestamp>2022-10-10T15:32:42Z</Timestamp> </DataRecord> <DataRecord id="32"> <Function>Instantaneous value</Function> <StorageNumber>510</StorageNumber> <Tariff>0</Tariff> <Device>0</Device> <Unit>Time Point (time & date)</Unit> <Value>2127-01-01T00:00:00</Value> <Timestamp>2022-10-10T15:32:42Z</Timestamp> </DataRecord> <DataRecord id="33"> <Function>Instantaneous value</Function> <StorageNumber>0</StorageNumber> <Unit>Time Point (time & date)</Unit> <Value>2022-10-10T16:38:00</Value> <Timestamp>2022-10-10T15:32:42Z</Timestamp> </DataRecord> <DataRecord id="34"> <Function>Manufacturer specific</Function> <Value>19 07 00 62 01</Value> <Timestamp>2022-10-10T15:32:42Z</Timestamp> </DataRecord> </MBusData> Det eg tenker her er at verdiane må formatterast til Celsius osv. Så kunne presenterast likt med strømforbruket, sanntidsforbruk, timeforbruk, målerstand osv. I tillegg hadde det vore gull med ein opsjon for å kunne levere målerdata med ein http request kvar mnd. for å få automatisk avlesing (det er 25 leiligheter her med kvar sin målar og skal byggast 50 til så at ingen har tenkt på automatisk avlesing er jo noko som kan forbedrast.) Tenker at målernummer og målerstand skulle vere nok info. Nokon glupe som kan kome lenger her, eller har gode innspel til ein tech freak som kan litt om alt men ikkje nok om noko? Endret 10. oktober 2022 av TurboJens 1 Siter
TurboJens Skrevet 10. oktober 2022 Forfatter Skrevet 10. oktober 2022 Eg har i utganspunktet ikkje tenkt å ha denne Raspberryen i eit produksjonsmiljø, eg brukar den mest til å leike. Har ein Intel NUC ståande som køyrer HA OS, hadde vore gull å kunne plugga USB interfacet rett i den. Men sånne små kort med wifi er jo ikkje så dumt til dette, ex. noko ESP greier for dei som har god greie på slikt :-) Siter
TurboJens Skrevet 11. oktober 2022 Forfatter Skrevet 11. oktober 2022 Eg har brukt node-red for å få dette til MQTT i json format. Men denne meldinga inneheld svært mykje informasjon. Nokon som har gode forslag for å få dette inn i HA som sensor? Eg slit ærleg talt litt med den mqtt konfigen som må gjerast i configurations.yaml. Nokon som har kunnskapen til å hjelpe meg? Under er deler av det eg får via MQTT. Eg er intressert i nokre få av desse, vil ha MålerID (SlaveInformation "Id" evt. Id=9, value) samt målerstand (Id=2, value), avgitt effekt (Id=4, value), tur, retur og diff temp (id 6, 7 og 8) { "MBusData": { "SlaveInformation": { "Id": "70984543", "Manufacturer": "LUG", "Version": "7", "ProductName": "Landis & Gyr Ultraheat T230", "Medium": "Heat: Outlet", "AccessNumber": "9", "Status": "00", "Signature": "0000" }, "DataRecord": [ { "id": "0", "Function": "Instantaneous value", "StorageNumber": "0", "Unit": "Actuality Duration (seconds)", "Value": "4", "Timestamp": "2022-10-10T23:05:32Z" }, { "id": "1", "Function": "Instantaneous value", "StorageNumber": "0", "Unit": "Averaging Duration (seconds)", "Value": "8", "Timestamp": "2022-10-10T23:05:32Z" }, { "id": "2", "Function": "Instantaneous value", "StorageNumber": "0", "Unit": "Energy (kWh)", "Value": "4792", "Timestamp": "2022-10-10T23:05:32Z" }, { "id": "3", "Function": "Instantaneous value", "StorageNumber": "0", "Unit": "Volume (1e-2 m^3)", "Value": "112421", "Timestamp": "2022-10-10T23:05:32Z" }, { "id": "4", "Function": "Instantaneous value", "StorageNumber": "0", "Unit": "Power (100 W)", "Value": "14", "Timestamp": "2022-10-10T23:05:32Z" }, { "id": "5", "Function": "Instantaneous value", "StorageNumber": "0", "Unit": "Volume flow (m m^3/h)", "Value": "449", "Timestamp": "2022-10-10T23:05:32Z" }, { "id": "6", "Function": "Instantaneous value", "StorageNumber": "0", "Unit": "Flow temperature (1e-1 deg C)", "Value": "338", "Timestamp": "2022-10-10T23:05:32Z" }, { "id": "7", "Function": "Instantaneous value", "StorageNumber": "0", "Unit": "Return temperature (1e-1 deg C)", "Value": "312", "Timestamp": "2022-10-10T23:05:32Z" }, { "id": "8", "Function": "Instantaneous value", "StorageNumber": "0", "Unit": "Temperature Difference (1e-1 deg C)", "Value": "26", "Timestamp": "2022-10-10T23:05:32Z" }, { "id": "9", "Function": "Instantaneous value", "StorageNumber": "0", "Unit": "Fabrication number", "Value": "70984543", "Timestamp": "2022-10-10T23:05:32Z" }, { "id": "10", "Function": "Instantaneous value", "StorageNumber": "0", "Tariff": "1", "Device": "0", "Unit": "Averaging Duration (minutes)", "Value": "15", "Timestamp": "2022-10-10T23:05:32Z" }, { "id": "11", "Function": "Value during error state", "StorageNumber": "0", "Unit": "On time (hours)", "Value": "0", "Timestamp": "2022-10-10T23:05:32Z" }, { "id": "12", "Function": "Instantaneous value", "StorageNumber": "0", "Unit": "On time (hours)", "Value": "13215", "Timestamp": "2022-10-10T23:05:32Z" }, { "id": "13", "Function": "Instantaneous value", "StorageNumber": "0", "Unit": "Operating time (hours)", "Value": "3856", "Timestamp": "2022-10-10T23:05:32Z" }, { "id": "14", "Function": "Instantaneous value", "StorageNumber": "0", "Tariff": "5", "Device": "0", "Unit": "Energy (kWh)", "Value": "0", "Timestamp": "2022-10-10T23:05:32Z" }, { "id": "15", "Function": "Maximum value", "StorageNumber": "0", "Tariff": "1", "Device": "0", "Unit": "Power (100 W)", "Value": "162", "Timestamp": "2022-10-10T23:05:32Z" }, { "id": "16", "Function": "Maximum value", "StorageNumber": "0", "Tariff": "1", "Device": "0", "Unit": "Volume flow (m m^3/h)", "Value": "1344", "Timestamp": "2022-10-10T23:05:32Z" }, { "id": "17", "Function": "Maximum value", "StorageNumber": "0", "Tariff": "1", "Device": "0", "Unit": "Flow temperature (1e-1 deg C)", "Value": "370", "Timestamp": "2022-10-10T23:05:32Z" }, { "id": "18", "Function": "Maximum value", "StorageNumber": "0", "Tariff": "1", "Device": "0", "Unit": "Return temperature (1e-1 deg C)", "Value": "485", "Timestamp": "2022-10-10T23:05:32Z" }, { "id": "19", "Function": "Maximum value", "StorageNumber": "0", "Tariff": "1", "Device": "0", "Unit": "Power (100 W)", "Value": "583274255", "Timestamp": "2022-10-10T23:05:32Z" }, { "id": "20", "Function": "Maximum value", "StorageNumber": "0", "Tariff": "1", "Device": "0", "Unit": "Volume flow (m m^3/h)", "Value": "618336000", "Timestamp": "2022-10-10T23:05:32Z" }, { "id": "21", "Function": "Maximum value", "StorageNumber": "0", "Tariff": "1", "Device": "0", "Unit": "Flow temperature (1e-1 deg C)", "Value": "584783417", "Timestamp": "2022-10-10T23:05:32Z" }, { "id": "22", "Function": "Maximum value", "StorageNumber": "0", "Tariff": "1", "Device": "0", "Unit": "Return temperature (1e-1 deg C)", "Value": "614992172", "Timestamp": "2022-10-10T23:05:32Z" }, { "id": "23", "Function": "Instantaneous value", "StorageNumber": "1", "Unit": "Energy (kWh)", "Value": "0", "Timestamp": "2022-10-10T23:05:32Z" }, { "id": "24", "Function": "Instantaneous value", "StorageNumber": "1", "Unit": "Volume (1e-2 m^3)", "Value": "0", "Timestamp": "2022-10-10T23:05:32Z" }, { "id": "25", "Function": "Value during error state", "StorageNumber": "1", "Unit": "On time (hours)", "Value": "6423", "Timestamp": "2022-10-10T23:05:32Z" }, { "id": "26", "Function": "Instantaneous value", "StorageNumber": "1", "Unit": "Operating time (hours)", "Value": "0", "Timestamp": "2022-10-10T23:05:32Z" }, { "id": "27", "Function": "Instantaneous value", "StorageNumber": "1", "Tariff": "5", "Device": "0", "Unit": "Energy (kWh)", "Value": "0", "Timestamp": "2022-10-10T23:05:32Z" }, { "id": "28", "Function": "Maximum value", "StorageNumber": "1", "Tariff": "1", "Device": "0", "Unit": "Power (100 W)", "Value": "0", "Timestamp": "2022-10-10T23:05:32Z" }, { "id": "29", "Function": "Maximum value", "StorageNumber": "1", "Tariff": "1", "Device": "0", "Unit": "Volume flow (m m^3/h)", "Value": "0", "Timestamp": "2022-10-10T23:05:32Z" }, { "id": "30", "Function": "Maximum value", "StorageNumber": "1", "Tariff": "1", "Device": "0", "Unit": "Flow temperature (1e-1 deg C)", "Value": "282", "Timestamp": "2022-10-10T23:05:32Z" }, { "id": "31", "Function": "Maximum value", "StorageNumber": "1", "Tariff": "1", "Device": "0", "Unit": "Return temperature (1e-1 deg C)", "Value": "485", "Timestamp": "2022-10-10T23:05:32Z" }, { "id": "32", "Function": "Instantaneous value", "StorageNumber": "510", "Tariff": "0", "Device": "0", "Unit": "Time Point (time & date)", "Value": "2127-01-01T00:00:00", "Timestamp": "2022-10-10T23:05:32Z" }, { "id": "33", "Function": "Instantaneous value", "StorageNumber": "0", "Unit": "Time Point (time & date)", "Value": "2022-10-11T00:11:00", "Timestamp": "2022-10-10T23:05:32Z" }, { "id": "34", "Function": "Manufacturer specific", "Value": "19 07 00 62 01", "Timestamp": "2022-10-10T23:05:32Z" } ] } } Siter
iotux Skrevet 12. oktober 2022 Skrevet 12. oktober 2022 (endret) Informasjonen som du finner her vil du ha stor nytte av: https://www.home-assistant.io/docs/mqtt/discovery/ HA er kresen på hvordan du setter sammen discovery topic: <discovery_prefix>/<component>/[<node_id>/]<object_id>/config Standard er "homeassistant/<component>/<object_id>/config component kan f.eks være "sensor", "binary_sendor" osv. Viktig (sitat): "The <node_id> level can be used by clients to only subscribe to their own (command) topics by using one wildcard topic like <discovery_prefix>/+/<node_id>/+/set. Best practice for entities with a unique_id is to set <object_id> to unique_id and omit the <node_id>." Du kan også ha hjelp i å se på koden her: https://github.com/iotux/ElWiz/blob/master/elwiz.js Funksjonene hassDevice() // linje 273 og hassAnnounce() // linje 301 Funksjonen hassDevice() blir på en måte en "mal" som brukes for alle sensorene. Du må selvfølgelig gjøre dine tilpasninger. Den delen som er innrykket ekstra: "dev: {}" er lik for alle sensorene. Denne er viktig å ha med når du annonserer hver enkelt sensor (id: #) for å få samlet alle sensorene under "en hatt". Det ser ut som det er "SlaveInformation" som skal inn i "dev: {}". Det må du få inn med nøkler som HA kjenner igjen. Det er også viktig å sette retain til true for at HA auto discovery skal virke. Jeg vet ikke om jeg har forklart det tydelig nok her, men du kan forsøke Endret 12. oktober 2022 av iotux skirveleif Siter
TurboJens Skrevet 12. oktober 2022 Forfatter Skrevet 12. oktober 2022 (endret) Takk for tida di @iotux! Eg såg litt på det du hadde laga ang. ElWiz som eg og intresserar meg for. @Kim123 ja eg har hatt det til MQTT heile tida, det var enkel sak i node-red. Eg fekk det til i går trur eg, har ikkje gjort slik som du skriv, men lagt kvar enkelt verdi inn som egen sensor: (Har etterpå lagt inn uniqe_id og sånn at det fungerar bedre.) mqtt: sensor: - name: "Målerstand" force_update: true state_topic: "Varmtvann" unit_of_measurement: "kWh" value_template: "{{ value_json.MBusData.DataRecord[2].Value }}" - name: "Effekt" state_topic: "Varmtvann" unit_of_measurement: "W" value_template: "{{ (value_json.MBusData.DataRecord[4].Value| int*100) }}" - name: "Tur" state_topic: "Varmtvann" unit_of_measurement: "°C" value_template: "{{ (value_json.MBusData.DataRecord[6].Value| float/10) }}" - name: "Retur" state_topic: "Varmtvann" unit_of_measurement: "°C" value_template: "{{ (value_json.MBusData.DataRecord[7].Value| float/10) }}" - name: "Delta T" state_topic: "Varmtvann" unit_of_measurement: "°C" value_template: "{{ (value_json.MBusData.DataRecord[8].Value| float/10) }}" - name: "Målernummer" force_update: true state_topic: "Varmtvann" value_template: "{{ value_json.MBusData.DataRecord[9].Value }}" Som gir dette resultatet når eg viser det i dashbordet. Så sånn sett må eg seie meg godt fornøgd. Læringskurven er bratt, men det er jo kjekt når det går bra :-) Det som irriterar meg no er at HA ikkje viser historikk for sensoren. Det fekk eg opp til å begynne med når eg testa men så forsvann det. Under "History" er det berre tomt... Endret 12. oktober 2022 av TurboJens Siter
TurboJens Skrevet 12. oktober 2022 Forfatter Skrevet 12. oktober 2022 TurboJens skrev (35 minutter siden): Det som irriterar meg no er at HA ikkje viser historikk for sensoren. Det fekk eg opp til å begynne med når eg testa men så forsvann det. Under "History" er det berre tomt... Ja, dette var ikkje så innvikla. Viste seg etter eit lite google søk at nokon hadde opplevd det same og tilfeldigvis med samme browser som eg bruka, Brave der må ein skru av Shields for Home Assistant. Då var det jo fleire ting som begynte å fungere, blandt anna at eg fekk mørkt tema og at historikk begynte å fungere igjen (både den lille på kvar sensor og History sida. Ny feil følger, kjem eit prefiks på fløde verdien, men nokon gongar virkar det og andre gongar ikkje.. hjelpes. Siter
Kim123 Skrevet 13. oktober 2022 Skrevet 13. oktober 2022 Ser ut som en feilmelding fra flowmåleren. Jeg ville ha laget en {%if%} statment på den aktuelle mqtt verdien, slik hvis {%if ‘F’ in sensor.tag%} 0 {%else%} sensor.tag {%endif%} litt krøkkete å skrive på tlf men du skjønner kanskje hva jeg mener. Da vil du ikke få null, men 0 istedenfor Evt sjekket den aktuelle feilmeldingen. Jeg tipper negativ verdi, at den teller bakover Siter
TurboJens Skrevet 13. oktober 2022 Forfatter Skrevet 13. oktober 2022 Kim123 skrev (2 timer siden): Ser ut som en feilmelding fra flowmåleren. Jeg ville ha laget en {%if%} statment på den aktuelle mqtt verdien, slik hvis {%if ‘F’ in sensor.tag%} 0 {%else%} sensor.tag {%endif%} litt krøkkete å skrive på tlf men du skjønner kanskje hva jeg mener. Da vil du ikke få null, men 0 istedenfor Evt sjekket den aktuelle feilmeldingen. Jeg tipper negativ verdi, at den teller bakover Eg fekk faktisk samme feil på målerstand innimellom og, men sette verdiane til float og etter det har det vore i orden. Men då blir alle heiltall presentert med .0 på slutten og det irriterar meg ein del. Siter
Anbefalte innlegg
Bli med i samtalen
Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.