Heishamon <> Node Red voor Panasonic warmtepompen

Pagina: 1 ... 126 127 Laatste
Acties:

  • ercolano
  • Registratie: Juli 2006
  • Laatst online: 03-01 17:37
@edterbak
Wat vind jij van het volgende ?
Ik zou graag in het het rijtje "Custom Functions" op de home page een toggle hebben we een instelbare shift. Die wordt dan meegeteld tot "Final water temperature". Het gaat hier om de direct mode, waar je eigenlijk weinig handvaten hebt om het tijdelijk wat warmer te maken. Ik misbruik nu zelf de Night reducation functie hiervoor (die aangepast nu ook +2 accepteert).

Onder normale omstandigheden geeft een goed ingestelde CC in combi met een RTC natuurlijk de temperatuur die je wilt. Onder deze defrost omstandigheden, of als je het snel wat warmer wilt is het tijdelijk ophogen van de watertemperatuur handig.
Kan me ook voorstellen dat dit tegen KIS in gaat, dan lekker zo laten.

cheers.
p.s. de "krachtig" functie van de Pana zelf is een draak omdat na de 90 minuten de SP verlaging vrijwel altijd tot afslaan leidt.

Gasloos | Pana 9J | 300l boiler | 8000wp | PHEV


  • edterbak
  • Registratie: Maart 2006
  • Laatst online: 23:42
Jeroen-h schreef op zondag 28 december 2025 @ 14:02:
Hier ook best wat MQTT herhalingen, dit zie ik in de log (en dan heel vaak)
28/12 13:56:18 - MQTT Command Retry: SetMaxPumpDuty: 159
28/12 13:56:17 - MQTT Command Retry: SetMaxPumpDuty: 159
28/12 13:56:16 - MQTT Command Retry: SetMaxPumpDuty: 159
28/12 13:56:15 - MQTT Command: SetMaxPumpDuty: 159
28/12 13:56:11 - MQTT Command Retry: SetMaxPumpDuty: 159
28/12 13:56:08 - MQTT Command: SetMaxPumpDuty: 159
28/12 13:56:03 - MQTT Command Retry: SetMaxPumpDuty: 159
28/12 13:56:02 - MQTT Command Retry: SetMaxPumpDuty: 159
28/12 13:56:01 - MQTT Command: SetMaxPumpDuty: 159

Soms ook andere functies trouwens, maar dit is even snel een klein stukje.
Ik heb een WH-MDC07J3E5


[...]
Dit is nu fixed in de volgende release. Zou niet meer 'mogen' gebeuren.
Volgende release is om de hoek, beta 7

  • edterbak
  • Registratie: Maart 2006
  • Laatst online: 23:42
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
26/12 18:09:40 - MQTT Command Retry: SetHeaterDelayTime: 30
26/12 18:09:37 - MQTT Command: SetHeaterDelayTime: 30
26/12 18:09:33 - MQTT Command Retry: SetHeaterStopDelta: 0
26/12 18:09:30 - MQTT Command: SetHeaterStopDelta: 0
26/12 18:09:26 - MQTT Command Retry: SetHeaterStartDelta: -5
26/12 18:09:25 - MQTT Command Retry: SetHeaterDelayTime: 30
26/12 18:09:23 - MQTT Command: SetHeaterStartDelta: -5
26/12 18:09:18 - MQTT Command Retry: SetHeaterStopDelta: 0
26/12 18:09:16 - MQTT Command: SetHeaterDelayTime: 30
26/12 18:09:11 - MQTT Command Retry: SetHeaterStartDelta: -5
26/12 18:09:10 - MQTT Command Retry: SetHeaterDelayTime: 30
26/12 18:09:09 - MQTT Command: SetHeaterStopDelta: 0
26/12 18:09:03 - MQTT Command Retry: SetHeaterStopDelta: 0
26/12 18:09:02 - MQTT Command: SetHeaterStartDelta: -5
26/12 18:08:56 - MQTT Command Retry: SetHeaterStartDelta: -5
26/12 18:08:55 - MQTT Command: SetHeaterDelayTime: 30
26/12 18:08:48 - MQTT Command: SetHeaterStopDelta: 0
26/12 18:08:41 - MQTT Command: SetHeaterStartDelta: -5
26/12 18:08:37 - MQTT Command Retry: SetHeaterDelayTime: 30
26/12 18:08:34 - MQTT Command: SetHeaterDelayTime: 30


Dit is fixed in volgende release, zou ook niet meer mogen gebeuren.

Maar ik zie in je log dat er heel veel reboots zijn van je node red applicatie. 26x ofzo.
Is dit iets dat je zelf deed?

  • edterbak
  • Registratie: Maart 2006
  • Laatst online: 23:42
ercolano schreef op zaterdag 3 januari 2026 @ 10:45:
@edterbak
Wat vind jij van het volgende ?
Ik zou graag in het het rijtje "Custom Functions" op de home page een toggle hebben we een instelbare shift. Die wordt dan meegeteld tot "Final water temperature". Het gaat hier om de direct mode, waar je eigenlijk weinig handvaten hebt om het tijdelijk wat warmer te maken. Ik misbruik nu zelf de Night reducation functie hiervoor (die aangepast nu ook +2 accepteert).
Ik snap je vraag. Hiervoor had ik eigenlijk de RTC functie gemaakt. Dan is het geautomatiseerd wat fijn is, maar geen handvat bied voor een handmatige aanpassing.
Onder normale omstandigheden geeft een goed ingestelde CC in combi met een RTC natuurlijk de temperatuur die je wilt. Onder deze defrost omstandigheden, of als je het snel wat warmer wilt is het tijdelijk ophogen van de watertemperatuur handig.
Kan me ook voorstellen dat dit tegen KIS in gaat, dan lekker zo laten.

cheers.
p.s. de "krachtig" functie van de Pana zelf is een draak omdat na de 90 minuten de SP verlaging vrijwel altijd tot afslaan leidt.
Technisch is het wel mogelijk. Ik zou dan denken dat het logisch op zijn plek is in de 'HEAT' sectie, per zone een handmatige extra correctie. Het ding dat hier 'naatje' aan is; Als de Pana in CompensationCurve mode staat, dan is de bovenste temperatuur al een shift. Het zou stom zijn om er NOG een shift optie in beeld te hebben wat in dat geval dus een dubbeling is met de bovenste shift. Dat is ook lastig uit te leggen.
Maar, ik hou het in het achterhoofd.

Wat ik eerst moet doen is huidige nightreduction functie aanpakken. Deze is nu generiek, maar hoort eigenlijk zone specifiek te zijn.
Ik twijfel nog over de aanpak.... Night reduction er uit in de huidige vorm (toggle op home) en de gebruiker het laten aanpassen via scheduler. Daar kun je eenvoudig de RTC setpoint aanpassen per zone.
Maar om dit mogelijk te maken, dan zijn 10 schedules wat weinig en zal ik deze moeten verdubbelen. Pffff.. impactvol..

Ik ben er nog niet uit.

  • edterbak
  • Registratie: Maart 2006
  • Laatst online: 23:42
Ik ga de versie nummers wat aanpassen. Er zat weinig logica in.

Het wordt nu gebaseerd op jaartal/mnd
huidige (aankomende) beta 7 wordt:
code:
1
Version 26.1.1 (! Beta 7 !)


Alle releases in maand 1:
26.1.1 (! xxx !)
26.1.2 (! xxx !)
26.1.3 (! xxx !)
...
26.1.9 (! xxx !)
26.1.10 (! xxx !)
26.1.11 (! xxx !)

Als we een maand verder zijn

26.2.1 (! xxx !)
26.2.2 (! xxx !)
...
26.2.11 (! xxx !)
etc.

(! xxx !) >> dit zal de build type aangeven.
(! Alpha 4 !) / (! Beta 1 !) / (! Stable 1 !) / (! Stable 2 !)


Dit is waar ik aan zit te denken.
Is dit logisch? of hebben jullie andere en betere suggesties?

Vanavond een mooie update weer in de maak voor iedereen.

[ Voor 4% gewijzigd door edterbak op 03-01-2026 17:44 ]


  • Beekforel
  • Registratie: November 2001
  • Laatst online: 23:53

Beekforel

Is eigenlijk geen vis

26.1.1a
26.1.2a
26.1.3b
26.1.4

Ik zie de meerwaarde van die (!!) toevoeging niet?

  • edterbak
  • Registratie: Maart 2006
  • Laatst online: 23:42
26.1.1 beta7
Dat wordt de volgende dan dus?
Alleen a of b vind ik niet duidelijk genoeg zelf. Voluit lijkt mij duidelijker voor iedereen.

[ Voor 51% gewijzigd door edterbak op 03-01-2026 18:22 ]


  • Beekforel
  • Registratie: November 2001
  • Laatst online: 23:53

Beekforel

Is eigenlijk geen vis

Ja ok, maar waar is die 7 voor dan? Is het niet gewoon 26.1.1 beta, volgende beta is 26.1.2 etc en 26.1.9 wordt de stable?

Je zou op Github ook met releases kunnen werken en de beta's als preview releases kunnen pleatsen.

  • edterbak
  • Registratie: Maart 2006
  • Laatst online: 23:42
Beekforel schreef op zaterdag 3 januari 2026 @ 19:25:
Ja ok, maar waar is die 7 voor dan? Is het niet gewoon 26.1.1 beta, volgende beta is 26.1.2 etc en 26.1.9 wordt de stable?

Je zou op Github ook met releases kunnen werken en de beta's als preview releases kunnen pleatsen.
Ja, eens.
Zo bedoelde ik het ook maar ging niet goed op mijn telefoon

  • edterbak
  • Registratie: Maart 2006
  • Laatst online: 23:42
Nieuwe versie
Version 26.1.1 Beta
Changes:
- Fix Chart storage: SoftStart chart. Chart survives restarts now.
- Fix Chart storage: Efficiency - Energy. Chart survives restarts now.
- Fix Chart storage: Efficiency - Efficiency. Chart survives restarts now.
- Fix Boot behavior: Heat Delta, Cool Delta and SetHeaterDelayTime during startup.
- Fix MQTT: Do not start command checking when not all current values are known.
- Fix MQTT: Command checking functionality now first looks if the actual value is already the same as the new command value. If so, it does not perform the checking loop.


link: https://github.com/edterb...ishamon_control/tree/BETA

  • MikeyMan
  • Registratie: Februari 2003
  • Laatst online: 23:58

MikeyMan

Vidi, Vici, Veni

Is het niet gebruikelijk dat de stables een korter versienummer hebben?

  • edterbak
  • Registratie: Maart 2006
  • Laatst online: 23:42
Geen flauw idee.
Het maakt mij niet zoveel uit, als het maar duidelijk is. Maar waarschijnlijk heb je gelijk.

Als ik kijk naar HA, dan houden ze dezelfde nummering aan ongeveer.

[ Voor 24% gewijzigd door edterbak op 03-01-2026 20:17 ]


  • blb4
  • Registratie: April 2008
  • Laatst online: 05:33
edterbak schreef op zaterdag 3 januari 2026 @ 17:43:
Ik ga de versie nummers wat aanpassen. Er zat weinig logica in.

Het wordt nu gebaseerd op jaartal/mnd
huidige (aankomende) beta 7 wordt:
code:
1
Version 26.1.1 (! Beta 7 !)


Alle releases in maand 1:
26.1.1 (! xxx !)
26.1.2 (! xxx !)
26.1.3 (! xxx !)
...
26.1.9 (! xxx !)
26.1.10 (! xxx !)
26.1.11 (! xxx !)

Als we een maand verder zijn

26.2.1 (! xxx !)
26.2.2 (! xxx !)
...
26.2.11 (! xxx !)
etc.

(! xxx !) >> dit zal de build type aangeven.
(! Alpha 4 !) / (! Beta 1 !) / (! Stable 1 !) / (! Stable 2 !)


Dit is waar ik aan zit te denken.
Is dit logisch? of hebben jullie andere en betere suggesties?

Vanavond een mooie update weer in de maak voor iedereen.
Zo doe ik 't nu ook met mijn rules, ik heb net 2601.01 op m'n HeishaMon gezet. Ik weet echter meestal pas achteraf of 't stable is :).

Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+ST GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23


  • Beekforel
  • Registratie: November 2001
  • Laatst online: 23:53

Beekforel

Is eigenlijk geen vis

Ik ben wat aan het experimenteren met InfluxDB en Grafana en heb zodoende ook de InfluxDB flow geïmplementeerd. Het had wel wat aanpassingen nodig voor het goed werkte, een aantal topics zijn bijvoorbeeld hernoemd.

https://github.com/edterb...eishamon_control/pull/207

Ik heb ook een aantal opentherm topics toegevoegd. Wil je deze meenemen op Github @edterbak of heb je dat liever via een PR?

Daar heb ik nu dit dashboard mee geknutseld.
Afbeeldingslocatie: https://tweakers.net/i/SV5utR-5uEkLRLlQXD-q-6zwzGk=/800x/filters:strip_exif()/f/image/74bEDU4cO2ILkhR3HfFpxmZC.png?f=fotoalbum_large

Het is nog behoorlijk WIP en buggy her en der (ik heb nog maar amper 24 uur aan data in InfluxDB, dat helpt ook niet). Maar wellicht inspireert het iemand.

[ Voor 93% gewijzigd door Beekforel op 03-01-2026 21:02 ]


  • edterbak
  • Registratie: Maart 2006
  • Laatst online: 23:42
Beekforel schreef op zaterdag 3 januari 2026 @ 20:46:
Ik ben wat aan het experimenteren met InfluxDB en Grafana en heb zodoende ook de InfluxDB flow geïmplementeerd. Het had wel wat aanpassingen nodig voor het goed werkte, een aantal topics zijn bijvoorbeeld hernoemd.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
[
    {
        "id": "87dbb02b241dbf2f",
        "type": "group",
        "z": "c56b19a8521cdd83",
        "style": {
            "stroke": "#999999",
            "stroke-opacity": "1",
            "fill": "none",
            "fill-opacity": "1",
            "label": true,
            "label-position": "nw",
            "color": "#a4a4a4"
        },
        "nodes": [
            "07a2e0f96fdc94bb",
            "2407702ea84aae48",
            "c5f283f5da078c9b",
            "f9df3e3a4b49f254",
            "d349df58176e318e",
            "74ed58ca300ac156",
            "38d4d5c2336679a3",
            "52e06ab9f666c998",
            "9786192242c57073",
            "fd57e866827cb156",
            "c2dd2bee14312b55"
        ],
        "x": 34,
        "y": 819,
        "w": 1152,
        "h": 282
    },
    {
        "id": "07a2e0f96fdc94bb",
        "type": "mqtt in",
        "z": "c56b19a8521cdd83",
        "g": "87dbb02b241dbf2f",
        "name": "Heishamon",
        "topic": "panasonic_heat_pump/opentherm/#",
        "qos": "0",
        "datatype": "auto-detect",
        "broker": "92e5b2c.00a8b5",
        "nl": false,
        "rap": false,
        "inputs": 0,
        "x": 190,
        "y": 1060,
        "wires": [
            [
                "2407702ea84aae48"
            ]
        ]
    },
    {
        "id": "2407702ea84aae48",
        "type": "function",
        "z": "c56b19a8521cdd83",
        "g": "87dbb02b241dbf2f",
        "name": "Map sensor to ID (opentherm/#)",
        "func": "// if there's an entry in the global defined variable then \n// the value needs to be saved (send) to next function \nvar sensorsplit = msg.topic.split(\"opentherm/\");\nvar sensor = sensorsplit[sensorsplit.length-1];\n \nvar sensorvalue = msg.payload;\nfor (let i = 0; i < context.global.heishamon.SensorMapping.length; i++) {\n    // when sensor is in the global settings \n    msg.sensor = sensor;\n    if(sensor == context.global.heishamon.SensorMapping[i][0]){\n\n        return msg;\n    }\n}\nreturn;",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 490,
        "y": 1060,
        "wires": [
            [
                "38d4d5c2336679a3"
            ]
        ]
    },
    {
        "id": "c5f283f5da078c9b",
        "type": "mqtt in",
        "z": "c56b19a8521cdd83",
        "g": "87dbb02b241dbf2f",
        "name": "Heishamon",
        "topic": "panasonic_heat_pump/main/#",
        "qos": "0",
        "datatype": "auto-detect",
        "broker": "92e5b2c.00a8b5",
        "nl": false,
        "rap": false,
        "inputs": 0,
        "x": 190,
        "y": 940,
        "wires": [
            [
                "f9df3e3a4b49f254"
            ]
        ]
    },
    {
        "id": "f9df3e3a4b49f254",
        "type": "function",
        "z": "c56b19a8521cdd83",
        "g": "87dbb02b241dbf2f",
        "name": "Map sensor to ID (main/#)",
        "func": "// if there's an entry in the global defined variable then \n// the value needs to be saved (send) to next function \nvar sensorsplit = msg.topic.split(\"/\");\nvar sensor = sensorsplit[sensorsplit.length-1];\n \nvar sensorvalue = msg.payload;\nfor (let i = 0; i < context.global.heishamon.SensorMapping.length; i++) {\n    // when sensor is in the global settings \n    msg.sensor = sensor;\n    if(sensor == context.global.heishamon.SensorMapping[i][0]){\n\n        return msg;\n    }\n}\nreturn;",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 470,
        "y": 940,
        "wires": [
            [
                "38d4d5c2336679a3"
            ]
        ]
    },
    {
        "id": "d349df58176e318e",
        "type": "function",
        "z": "c56b19a8521cdd83",
        "g": "87dbb02b241dbf2f",
        "name": "global setup",
        "func": "let heishamon = global.get(\"heishamon\") ?? {};\n\nheishamon.HAapplication = heishamon.HAapplication ?? {};\nheishamon.SensorMapping = heishamon.SensorMapping ?? {};\nheishamon.ActionMapping = heishamon.ActionMapping ?? {};\n\nglobal.set(\"heishamon\", heishamon);\n\ncontext.global.heishamon.HAapplication = \"InfluxDB\";\n\n//This is the overview of sensors which has to be sent to the Home Automation system\ncontext.global.heishamon.SensorMapping = [\n        //  [\"name of topic\"]\n        // MAIN/#\n            [\"Heatpump_State\"],\n            [\"Pump_Flow\"],\n            [\"Force_DHW_State\"],\n            [\"Quiet_Mode_Schedule\"],\n            [\"Operating_Mode_State\"],\n            [\"Main_Inlet_Temp\"],\n            [\"Main_Outlet_Temp\"],\n            [\"Main_Target_Temp\"],\n            [\"Compressor_Freq\"],\n            [\"DHW_Target_Temp\"],\n            [\"DHW_Temp\"],\n            [\"Operations_Hours\"],\n            [\"Operations_Counter\"],\n            [\"Main_Schedule_State\"],\n            [\"Outside_Temp\"],\n            [\"Heat_Power_Production\"],\n            [\"Heat_Power_Consumption\"],\n            [\"Powerful_Mode_Time\"],\n            [\"Quiet_Mode_Level\"],\n            [\"Holiday_Mode_State\"],\n            [\"ThreeWay_Valve_State\"],\n            [\"Outside_Pipe_Temp\"],\n            [\"DHW_Heat_Delta\"],\n            [\"Heat_Delta\"],\n            [\"Cool_Delta\"],\n            [\"DHW_Holiday_Shift_Temp\"],\n            [\"Defrosting_State\"],\n            [\"Z1_Heat_Request_Temp\"],\n            [\"Z1_Cool_Request_Temp\"],\n            [\"Z1_Heat_Curve_Target_High_Temp\"],\n            [\"Z1_Heat_Curve_Target_Low_Temp\"],\n            [\"Z1_Heat_Curve_Outside_High_Temp\"],\n            [\"Z1_Heat_Curve_Outside_Low_Temp\"],\n            [\"Room_Thermostat_Temp\"],\n            [\"Z2_Heat_Request_Temp\"],\n            [\"Z2_Cool_Request_Temp\"],\n            [\"Z1_Water_Temp\"],\n            [\"Z2_Water_Temp\"],\n            [\"Cool_Power_Production\"],\n            [\"Cool_Power_Consumption\"],\n            [\"DHW_Power_Production\"],\n            [\"DHW_Power_Consumption\"],\n            [\"Z1_Water_Target_Temp\"],\n            [\"Z2_Water_Target_Temp\"],\n            [\"Error\"],\n            [\"Room_Holiday_Shift_Temp\"],\n            [\"Buffer_Temp\"],\n            [\"Solar_Temp\"],\n            [\"Pool_Temp\"],\n            [\"Main_Hex_Outlet_Temp\"],\n            [\"Discharge_Temp\"],\n            [\"Inside_Pipe_Temp\"],\n            [\"Defrost_Temp\"],\n            [\"Eva_Outlet_Temp\"],\n            [\"Bypass_Outlet_Temp\"],\n            [\"Ipm_Temp\"],\n            [\"Z1_Temp\"],\n            [\"Z2_Temp\"],\n            [\"DHW_Heater_State\"],\n            [\"Room_Heater_State\"],\n            [\"Internal_Heater_State\"],\n            [\"External_Heater_State\"],\n            [\"Fan1_Motor_Speed\"],\n            [\"Fan2_Motor_Speed\"],\n            [\"High_Pressure\"],\n            [\"Pump_Speed\"],\n            [\"Low_Pressure\"],\n            [\"Compressor_Current\"],\n            [\"Force_Heater_State\"],\n            [\"Sterilization_State\"],\n            [\"Sterilization_Temp\"],\n            [\"Sterilization_Max_Time\"],\n            [\"Z1_Cool_Curve_Target_High_Temp\"],\n            [\"Z1_Cool_Curve_Target_Low_Temp\"],\n            [\"Z1_Cool_Curve_Outside_High_Temp\"],\n            [\"Z1_Cool_Curve_Outside_Low_Temp\"],\n            [\"Heating_Mode\"],\n            [\"Heating_Off_Outdoor_Temp\"],\n            [\"Heater_On_Outdoor_Temp\"],\n            [\"Heat_To_Cool_Temp\"],\n            [\"Cool_To_Heat_Temp\"],\n            [\"Cooling_Mode\"],\n            [\"Z2_Heat_Curve_Target_High_Temp\"],\n            [\"Z2_Heat_Curve_Target_Low_Temp\"],\n            [\"Z2_Heat_Curve_Outside_High_Temp\"],\n            [\"Z2_Heat_Curve_Outside_Low_Temp\"],\n            [\"Z2_Cool_Curve_Target_High_Temp\"],\n            [\"Z2_Cool_Curve_Target_Low_Temp\"],\n            [\"Z2_Cool_Curve_Outside_High_Temp\"],\n            [\"Z2_Cool_Curve_Outside_Low_Temp\"],\n            [\"Room_Heater_Operations_Hours\"],\n            [\"DHW_Heater_Operations_Hours\"],\n            [\"Heat_Pump_Model\"],\n            [\"Pump_Duty\"],\n            [\"Zones_State\"],\n            [\"Max_Pump_Duty\"],\n            [\"Heater_Delay_Time\"],\n            [\"Heater_Start_Delta\"],\n            [\"Heater_Stop_Delta\"],\n            [\"Buffer_Installed\"],\n            [\"DHW_Installed\"],\n            [\"Solar_Mode\"],\n            [\"Solar_On_Delta\"],\n            [\"Solar_Off_Delta\"],\n            [\"Solar_Frost_Protection\"],\n            [\"Solar_High_Limit\"],\n\n        // S0/#\n            [\"Watthour/1\"],\n            [\"WatthourTotal/1\"],\n            [\"Watt/1\"],\n            [\"Watthour/2\"],\n            [\"WatthourTotal/2\"],\n            [\"Watt/2\"],\n\n        // opentherm/#\n            [\"write/roomTempSet\"],\n            [\"write/roomTemp\"],\n            [\"write/chSetPoint\"]\n\n    ];\n    \ncontext.global.heishamon.ActionMapping = [\n    // actioncommand\n    [\"SetHeatpump\"],\n    [\"SetHoliday\"],\n    [\"SetQuietMode\"],\n    [\"SetPowerfull\"],\n    [\"SetZ1HeatRequestTemperature\"],\n    [\"SetZ1CoolRequestTemperature\"],\n    [\"SetZ2HeatRequestTemperature\"],\n    [\"SetZ2CoolRequestTemperature\"],\n    [\"SetOperationMode\"],\n    [\"SetForceDHW\"],\n    [\"SetDHWTemp\"],\n    [\"SetCoolTemp\"],\n    [\"SetForceDefrost\"],\n    [\"SetForceSterilization\"]\n];\nreturn msg;",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 430,
        "y": 900,
        "wires": [
            []
        ]
    },
    {
        "id": "74ed58ca300ac156",
        "type": "inject",
        "z": "c56b19a8521cdd83",
        "g": "87dbb02b241dbf2f",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": true,
        "onceDelay": 0.1,
        "topic": "Startup",
        "payload": "",
        "payloadType": "date",
        "x": 220,
        "y": 900,
        "wires": [
            [
                "d349df58176e318e"
            ]
        ]
    },
    {
        "id": "38d4d5c2336679a3",
        "type": "function",
        "z": "c56b19a8521cdd83",
        "g": "87dbb02b241dbf2f",
        "name": "Prepare InfluxDB output",
        "func": "if(isNaN(parseFloat(msg.payload))){\n    return;\n}else{\n    \n    msg.payload = [{\n        numValue: parseFloat(msg.payload),\n        strValue: msg.sensor\n    },\n    {\n        topic:msg.sensor\n    }];\n    return msg;\n}",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 790,
        "y": 940,
        "wires": [
            [
                "9786192242c57073"
            ]
        ]
    },
    {
        "id": "52e06ab9f666c998",
        "type": "comment",
        "z": "c56b19a8521cdd83",
        "g": "87dbb02b241dbf2f",
        "name": "Send Heishamon to INFLUXdb",
        "info": "",
        "x": 190,
        "y": 860,
        "wires": []
    },
    {
        "id": "9786192242c57073",
        "type": "influxdb out",
        "z": "c56b19a8521cdd83",
        "g": "87dbb02b241dbf2f",
        "influxdb": "295038886fd8d91e",
        "name": "Panasonic heatpump",
        "measurement": "heishamon",
        "precision": "",
        "retentionPolicy": "",
        "database": "Panasonic",
        "precisionV18FluxV20": "s",
        "retentionPolicyV18Flux": "",
        "org": "Home",
        "bucket": "Panasonic heatpump",
        "x": 1060,
        "y": 940,
        "wires": []
    },
    {
        "id": "fd57e866827cb156",
        "type": "mqtt in",
        "z": "c56b19a8521cdd83",
        "g": "87dbb02b241dbf2f",
        "name": "Heishamon",
        "topic": "panasonic_heat_pump/s0/#",
        "qos": "0",
        "datatype": "auto-detect",
        "broker": "92e5b2c.00a8b5",
        "nl": false,
        "rap": false,
        "inputs": 0,
        "x": 190,
        "y": 1000,
        "wires": [
            [
                "c2dd2bee14312b55"
            ]
        ]
    },
    {
        "id": "c2dd2bee14312b55",
        "type": "function",
        "z": "c56b19a8521cdd83",
        "g": "87dbb02b241dbf2f",
        "name": "Map sensor to ID (s0/#)",
        "func": "// if there's an entry in the global defined variable then \n// the value needs to be saved (send) to next function \nvar sensorsplit = msg.topic.split(\"s0/\");\nvar sensor = sensorsplit[sensorsplit.length-1];\n \nvar sensorvalue = msg.payload;\nfor (let i = 0; i < context.global.heishamon.SensorMapping.length; i++) {\n    // when sensor is in the global settings \n    msg.sensor = sensor;\n    if(sensor == context.global.heishamon.SensorMapping[i][0]){\n\n        return msg;\n    }\n}\nreturn;",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 470,
        "y": 1000,
        "wires": [
            [
                "38d4d5c2336679a3"
            ]
        ]
    },
    {
        "id": "92e5b2c.00a8b5",
        "type": "mqtt-broker",
        "name": "MQTT (x.x.x.x)",
        "broker": "x.x.x.x",
        "port": "1883",
        "clientid": "Node_Red_Client",
        "autoConnect": true,
        "usetls": false,
        "compatmode": false,
        "protocolVersion": "4",
        "keepalive": "60",
        "cleansession": true,
        "birthTopic": "",
        "birthQos": "0",
        "birthRetain": "false",
        "birthPayload": "",
        "birthMsg": {},
        "closeTopic": "",
        "closeQos": "0",
        "closeRetain": "false",
        "closePayload": "",
        "closeMsg": {},
        "willTopic": "",
        "willQos": "0",
        "willRetain": "false",
        "willPayload": "",
        "willMsg": {},
        "sessionExpiry": ""
    },
    {
        "id": "c38793a96c45b9e5",
        "type": "influxdb",
        "hostname": "localhost",
        "port": "8086",
        "protocol": "https",
        "database": "test",
        "name": "InfluxDB",
        "usetls": true,
        "tls": "",
        "influxdbVersion": "2.0",
        "url": "http://x.x.x.x:8086",
        "rejectUnauthorized": false
    }
]


Ik heb ook een aantal opentherm topics toegevoegd. Wil je deze meenemen op Github @edterbak of heb je dat liever via een PR?

Daar heb ik nu dit dashboard mee geknutseld.
[Afbeelding]

Het is nog behoorlijk WIP en buggy her en der (ik heb nog maar amper 24 uur aan data in InfluxDB, dat helpt ook niet). Maar wellicht inspireert het iemand.
Van mij mag je er wel een PR van maken hoor. Dan is het ook gelijk helder wie hier de credits voor verdient :)

Dank je wel voor het updaten. :)
Een PR naar de beta graag.

Ik hoop dat deze build toch stabiel genoeg is voor iedereen, zodat hij als stable uitgegeven kan worden binnenkort.
Pagina: 1 ... 126 127 Laatste