{"id":30740973,"url":"https://github.com/thannaske/oekofen-json-documentation","last_synced_at":"2026-03-07T08:02:28.081Z","repository":{"id":38408780,"uuid":"166782497","full_name":"thannaske/oekofen-json-documentation","owner":"thannaske","description":"The community-driven missing documentation for the JSON interface of Oekofen heating systems ","archived":false,"fork":false,"pushed_at":"2021-09-17T21:46:22.000Z","size":8,"stargazers_count":21,"open_issues_count":2,"forks_count":6,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-09-04T00:30:37.541Z","etag":null,"topics":["documentation","heater","iot","json-api"],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thannaske.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-01-21T09:10:02.000Z","updated_at":"2025-07-25T06:07:30.000Z","dependencies_parsed_at":"2022-08-25T02:12:53.197Z","dependency_job_id":null,"html_url":"https://github.com/thannaske/oekofen-json-documentation","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/thannaske/oekofen-json-documentation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thannaske%2Foekofen-json-documentation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thannaske%2Foekofen-json-documentation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thannaske%2Foekofen-json-documentation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thannaske%2Foekofen-json-documentation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thannaske","download_url":"https://codeload.github.com/thannaske/oekofen-json-documentation/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thannaske%2Foekofen-json-documentation/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30209796,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-07T05:23:27.321Z","status":"ssl_error","status_checked_at":"2026-03-07T05:00:17.256Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["documentation","heater","iot","json-api"],"created_at":"2025-09-04T00:18:23.065Z","updated_at":"2026-03-07T08:02:28.072Z","avatar_url":"https://github.com/thannaske.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ökofen JSON Documentation\nThis is an attempt to publicy document the fields and features of the Ökofen JSON API as it lacks documentation from the vendorside. Please feel free to file pull requests in case you have any additions or corrections. Most of the field descriptions are the result of trial and error.\n\n## Accessing the API\nAfter enabling the JSON API you need to configure the port and password within the heater's settings menu. Afterwards the JSON API should be exposed and reachable. You are able to access all metrics by hitting the `all` endpoint of the API.\n\n```\nhttp://{$ip}:{$port}/{$password}/all\n```\n\n## Used Abbreviations\n\n| Abbreviation | Meaning |\n| ------------ | ----------- |\n| hk{$n}       | Heating circuit #{$n} |\n| pu{$n}       | Buffer tank #{$n} |\n| ww{$n}       | Hot-water circuit #{$n} |\n| sk{$n}       | Solar thermal collector circuit #{$n} |\n| pe{$n}       | Pellematic heater #{$n} |\n| se{$n}       | Solar gain data #{$n} |\n| circ{$n}     | Hot-water circulation pump #{$n} |\n\n## Fields\nThe name of the fields are described with the dot-notation syntax. For the field `json_data['system']['L_ambient']` the field name in this documentation would be `system.L_ambient`.\n\n### system.L_ambient\n| Unit | Factor | Type | Range           |\n| ---- | ------ | ---- | --------------- |\n| °C   | 0.1    | int  | -32768 to 32767 |\n\n**Description**  \nTemperature that was reported by the ambient temperature sensor. You'll need to multiply the value by the given factor to get the actual temperature in degree celsius als floating point value.\n\n### system.L_errors\n| Unit | Factor | Type | Range           |\n| ---- | ------ | ---- | --------------- |\n| None | 1      | int  | -32768 to 32767 |\n\n**Description (Help Wanted)**  \nUnclear if it's an error counter that is equal to the amount of errors that were detected or if the integer value that is reported by the API represents a specific error code or bitflag.\n\n### system.L_usb_stick\n| Unit | Factor | Type | Range  |\n| ---- | ------ | ---- | ------ |\n| None | None   | bool | 0 or 1 |\n\n**Description (Unsure)**  \nWhether an USB-stick is connected to the Pellematic heater or not.\n\n### weather.L_temp\n| Unit | Factor | Type | Range           |\n| ---- | ------ | ---- | --------------- |\n| °C   | 0.1    | int  | -32768 to 32767 |\n\n**Description**  \nCurrent temperature that was reported by the online weather service (see `weather.L_source` for information about the configured weather provider).\n\n### weather.L_clouds\n| Unit | Factor | Type | Range           |\n| ---- | ------ | ---- | --------------- |\n| %    | 1      | int  | -32768 to 32767 |\n\n**Description**  \nHow cloudy it currently should be according to the configured online weather service (see `weather.L_source` for information about the configured weather provider).\n\n### weather.L_forecast_temp\n\n### weather.L_forecast_clouds\n\n### weather.L_forecast_today\n\n### weather.L_starttime\n\n### weather.L_endtime\n\n### weather.L_source\n\n### weather.L_location\n\n### weather.cloud_limit\n\n### weather.hysteresys\n\n### weather.offtemp\n\n### weather.lead\n\n### weather.refresh\n\n### weather.oekomode\n\n### forecast.L_w_{0-24}\n\n### hk{$n}.L_roomtemp_act\n| Unit | Factor | Type | Range           |\n| ---- | ------ | ---- | --------------- |\n| °C   | 0.1    | int  | -32768 to 32767 |\n\n**Description**  \nThe current air temperature that was reported from a sensor that is installed inside a room that is heated by the used heating circuit. This value is zero (0) if there is no sensor installed for the given heating circuit.\n\n### hk{$n}.L_roomtemp_set\n| Unit | Factor | Type | Range           |\n| ---- | ------ | ---- | --------------- |\n| °C   | 0.1    | int  | -32768 to 32767 |\n\n**Description**  \nThe target air temperature that is set by the user for the selected heating circuit. This value can be ignored if there is no sensor installed for the given heating circuit.\n\n### hk{$n}.L_flowtemp_act\n| Unit | Factor | Type | Range           |\n| ---- | ------ | ---- | --------------- |\n| °C   | 0.1    | int  | -32768 to 32767 |\n\n**Description**  \nThe current flow temperature (\"Vorlauftemperatur\") of the heating system for the selected heating circuit.\n\n### hk{$n}.L_flowtemp_set\n| Unit | Factor | Type | Range           |\n| ---- | ------ | ---- | --------------- |\n| °C   | 0.1    | int  | -32768 to 32767 |\n\n**Description**  \nThe target flow temperature (\"Vorlauftemperatur\") of the heating system for the selected heating circuit.\n\n### hk{$n}.L_state\n\n### hk{$n}.L_statetext\n\n### hk{$n}.remote_override\n| Unit | Factor | Type | Range           |\n| ---- | ------ | ---- | --------------- |\n| K    | 0.1    | int  | -32768 to 32767 |\n\n**Description**\nInfluences the target room temperature. Basis is the datapoint temp_heat. This datapoint sets the wanted target to +X or -Y relative to the basis of temp_heat. For example, temp_heat is set to 22 degree and remote_override is set to +2 the real target for the heating system is 24 degree.\n\n### hk{$n}.mode_auto\n| Unit | Factor | Type | Range           |\n| ---- | ------ | ---- | --------------- |\n| number | 1    | int  | 0 to 3          |\n\n**Description**\nThe current mode of the heating circuit. 0: Off, 1: Auto, 2: Heating, 3: Setback\n\n### hk{$n}.time_prg\n| Unit | Factor | Type | Range           |\n| ---- | ------ | ---- | --------------- |\n| number | 1    | int  | 0 to 1          |\n\n**Description**\nDefines the current active time program. Value 0 means \"time program 1\" and value 1 means \"time program 2\".\n\n### hk{$n}.temp_setback\n| Unit | Factor | Type | Range           |\n| ---- | ------ | ---- | --------------- |\n| °C   | 0.1    | int  | -32768 to 32767 |\n\n**Description**\nThe current setback (\"Absenktemperatur\") temperature. Relevant if either the time program defines that current the setback time is active or if the circuit is set to mode 3.\n\n### hk{$n}.temp_heat\n| Unit | Factor | Type | Range           |\n| ---- | ------ | ---- | --------------- |\n| °C   | 0.1    | int  | -32768 to 32767 |\n\n**Description**\nThe target temperature for the LED room thermostate. This temperature is the target if the remote is set to \"middle\" position. Relevant for the data point remote_override\n\n### hk{$n}.temp_vacation\n| Unit | Factor | Type | Range           |\n| ---- | ------ | ---- | --------------- |\n| °C   | 0.1    | int  | -32768 to 32767 |\n\n**Description**\nThe target temperature while the heating system is in vacation mode. The vacation mode is set for a period of time on the touch (remote) control panel or through the app.\n\n### hk{$n}.name\n\n### hk{$n}.oekomode\n\n### pu{$n}.L_tpo_act\n\n### pu{$n}.L_tpo_set\n\n### pu{$n}.L_tpm_act\n\n### pu{$n}.L_tpm_set\n\n### pu{$n}.L_pump_release\n\n### pu{$n}.L_pump\n\n### pu{$n}.L_state\n\n### pu{$n}.L_statetext\n\n### pu{$n}.mintemp_off\n\n### pu{$n}.mintemp_on\n\n### pu{$n}.ext_mintemp_off\n\n### pu{$n}.ext_mintemp_on\n\n### ww{$n}.L_temp_set\n| Unit | Factor | Type | Range           |\n| ---- | ------ | ---- | --------------- |\n| °C   | 0.1    | int  | -32768 to 32767 |\n\n**Description**\nThe target temperature of the hot water boiler.\n\n### ww{$n}.L_ontemp_act\n\n### ww{$n}.L_offtemp_act\n\n### ww{$n}.L_pump\n| Unit | Factor | Type | Range           |\n| ---- | ------ | ---- | --------------- |\n| num  | 1      | int  | 0 or 1          |\n\n**Description**\nIndicates if the pump for the water heater is currently running or not. 0 means off, 1 means on.\n\n### ww{$n}.L_state\n\n### ww{$n}.L_statetext\n\n### ww{$n}.time_prg\n| Unit | Factor | Type | Range           |\n| ---- | ------ | ---- | --------------- |\n| number | 1    | int  | 0 to 1          |\n\n**Description**\nDefines the current active time program. Value 0 means \"time program 1\" and value 1 means \"time program 2\".\n\n\n### ww{$n}.sensor_on\n\n### ww{$n}.sensor_off\n\n### ww{$n}.mode_auto\n\n### ww{$n}.mode_dhw\n\n### ww{$n}.heat_once\n| Unit | Factor | Type | Range           |\n| ---- | ------ | ---- | --------------- |\n| num  | 1      | int  | 0 or 1          |\n\n**Description**\nIf the time program normally would not allow the system to heat the water boiler, this value overrides the behaviour and allows the water to be heated once. This mode is set back after the hot water boiler reaching the target temperature.\n\n### ww{$n}.temp_min_set\n\n### ww{$n}.temp_max_set\n\n### ww{$n}.name\n\n### ww{$n}.smartstart\n\n### ww{$n}.use_boiler_heat\n\n### ww{$n}.oekomode\n\n### sk{$n}.L_koll_temp\n\n### sk{$n}.L_spu\n\n### sk{$n}.L_pump\n\n### sk{$n}.L_state\n\n### sk{$n}.L_statetext\n\n### sk{$n}.mode\n\n### sk{$n}.cooling\n\n### sk{$n}.spu_max\n\n### sk{$n}.name\n\n### se{$n}.L_flow_temp\n\n### se{$n}.L_ret_temp\n\n### se{$n}.L_flow\n\n### se{$n}.L_pwr\n\n### se{$n}.L_counter\n\n### se{$n}.L_total\n\n### se{$n}.L_day\n\n### se{$n}.L_yesterday\n\n### circ{$n}.L_pump\n\n### circ{$n}.L_ret_temp\n\n### circ{$n}.L_release_temp\n\n### circ{$n}.time_prg\n\n### circ{$n}.mode\n\n### circ{$n}.pump_release\n\n### circ{$n}.return_set\n\n### circ{$n}.name\n\n### pe{$n}.L_temp_act\n\n### pe{$n}.L_temp_set\n\n### pe{$n}.L_ext_temp\n\n### pe{$n}.L_frt_temp_act\n\n### pe{$n}.L_frt_temp_set\n\n### pe{$n}.L_br\n\n### pe{$n}.L_ak\n\n### pe{$n}.L_not\n\n### pe{$n}.L_stb\n\n### pe{$n}.L_modulation\n\n### pe{$n}.L_uw_speed\n\n### pe{$n}.L_state\n\n### pe{$n}.L_statetext\n\n### pe{$n}.L_type\n\n### pe{$n}.L_starts\n\n### pe{$n}.L_runtime\n\n### pe{$n}.L_avg_runtime\n\n### pe{$n}.L_uw_release\n\n### pe{$n}.L_uw\n\n### pe{$n}.mode\n\n### error\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthannaske%2Foekofen-json-documentation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthannaske%2Foekofen-json-documentation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthannaske%2Foekofen-json-documentation/lists"}