I have implemented a Binding that can be used to monitor and control Guntamatic Heating Systems.
The Guntamatic Binding was developed and tested using Guntamatic Biostar 15kW Pellets Heating System running Firmware 3.2d. It should work for all other Guntamatic Heating Systems (Pellets, WoodChips as well as Log Heating Systems) as well, that support the same web interface:
Biostar (Pellets, tested via 15kW, firmware 3.2d, German & English)
Biosmart (Log, tested via 22kW, firmware 3.2f, German)
Powerchip (WoodChips, tested via 100kW, firmware 3.2d, French)
Powercorn (EnergyGrain, untested)
Biocom (Pellets, untested)
Pro (Pellets or WoodChips, untested)
Therm (Pellets, untested)
All the different languages that can be configured in the Guntamatic Heating System are supported.
Control of the Guntamatic Heating System is possible since binding version v2.1.0 (see below).
Please give it a try and report issues in order to improve the usablity as well as the number of supported Guntamatic Heating Systems.
Download the zipped jar from above and unzip the file to your addons directory. In case you want to upgrade the binding to a newer version, remove and re-add the thing.
If you encounter any issues with the binding, please post the log here or send me the log via PM.
Take care that there is no private data (key…) in the log before posting.
Set log level of org.openhab.binding.guntamatic to DEBUG in order to get some more details.
Hello,
I have a BIOSMART heater. I already have it running successfully with the http binding. I would like to extend your binding but unfortunately I lack the knowledge to suspend a binding. But maybe I can send you some information and I will test the extension from you.
no worries, you do not be a developer in order to help.
This plugin was developed for the pellets heating systems mentioned in the headline.
If the log heating systems from Guntamatic implement the same web-interface it should work as well.
In this case at least the monitoring should work, independent from the variant that you select.
Control of the heating system is another question as this uses device specifc parameters that we would need to figure out.
Can you please give the lastest plugin a try and report your observations?
Since yesterday, the plugin is merged to the official openhab-addons repro. That means that you will receive it from now on when installing openhab 3.3.0 SNAPSHOT or future releases.
any news from your side?
Did you gave the current binding a try using your log heating system?
If you confirm the operation, we can update the documentation in regards to log heating systems.
If not, it would be great you you can save and send me a snapshot of the webpage that you are currently parsing (“I already have it running successfully with the http binding”).
This would help to identify how the binding needs to be adapted in order to provide the log heating system support.
Moin @MikeTheTux
Yes, I have tried to integrate my Biosmart on your binding, unfortunately without success, the values are not updated.
Here is the page where I access via http binding:
http://[guntamaticIP]/mbmap.cgi?key=[guntamaticKey]
Thing http:url:guntamatic "Guntamatic" @ "Garage"[
baseURL="http://X.X.X.X",
headers="key1=value1", "key2=value2", "key3=value3",
refresh=15] {
Channels:
Type string : betrieb "Betrieb" [ stateExtension="mbmap.cgi?key=verySecret", stateTransformation="REGEX:.*?Betrieb.*?</code>(.*?)<.*" ]
Type number : aussen "Aussentemperatur" [ stateExtension="mbmap.cgi?key=verySecret", stateTransformation="REGEX:.*?Aussentemperatur.*?</code>(.*?)<.*" ]
Type number : kesseltemperatur "Kesseltemperatur" [ stateExtension="mbmap.cgi?key=verySecret", stateTransformation="REGEX:.*?Kesseltemperatur.*?</code>(.*?)<.*" ]
Type number : kesselpumpe "Kesselpumpe" [ stateExtension="mbmap.cgi?key=verySecret", stateTransformation="REGEX:.*?Kesselladepumpe.*?</code>(.*?)<.*" ]
Type number : pufferladung "Pufferladung" [ stateExtension="mbmap.cgi?key=verySecret", stateTransformation="REGEX:.*?Pufferladung.*?</code>(.*?)<.*" ]
Type number : pufferoben "Puffer oben" [ stateExtension="mbmap.cgi?key=verySecret", stateTransformation="REGEX:.*?Puffer oben.*?</code>(.*?)<.*" ]
Type number : puffermitte "Puffer oben" [ stateExtension="mbmap.cgi?key=verySecret", stateTransformation="REGEX:.*?Puffer mitte.*?</code>(.*?)<.*" ]
Type number : pufferunten "Puffer oben" [ stateExtension="mbmap.cgi?key=verySecret", stateTransformation="REGEX:.*?Puffer unten.*?</code>(.*?)<.*" ]
Type number : CO2 "Gehalt" [ stateExtension="mbmap.cgi?key=verySecret", stateTransformation="REGEX:.*?Gehalt.*?</code>(.*?)<.*" ]
Type number : betriebsh "Betriebsstunden" [ stateExtension="mbmap.cgi?key=verySecret", stateTransformation="REGEX:.*?Betriebsstunden.*?</code>(.*?)<.*" ]
Type number : service "Servicezeit" [ stateExtension="mbmap.cgi?key=verySecret", stateTransformation="REGEX:.*?Servicezeit.*?</code>(.*?)<.*" ]
Type string : programm "Programm" [ stateExtension="mbmap.cgi?key=verySecret", stateTransformation="REGEX:.*?Programm.*?</code>(.*?)<.*" ]
Type number : hk1vorlauf "Vorlauftemperatur" [ stateExtension="mbmap.cgi?key=verySecret", stateTransformation="REGEX:.*?Vorlauf Ist 1.*?</code>(.*?)<.*" ]
Type string : hk1programm "Programm HK" [ stateExtension="mbmap.cgi?key=verySecret", stateTransformation="REGEX:.*?Progamm HK1.*?</code>(.*?)<.*"]
Type number : hk1pumpe "Heizkreispumpe" [ stateExtension="mbmap.cgi?key=verySecret", stateTransformation="REGEX:.*?Heizkreispumpe 1.*?</code>(.*?)<.*" ]
//Type string : hk1programmauswahl"Programm HK auswahl" [ stateContent="ext/parset.cgi?syn=HK101&value=%2$s&key=verySecret"]
}
And to change the heating, I send the following in rule. I have not managed to implement it via a Thing:
val syn = "?syn=HK101"
val key = "&key=verySecret"
val value = "&value=" + Gmc_HK1_programm_auswahl.state
//Gmc_HK1_programm_auswahl.state =
//0=aus
//1=normal
//2=normal (Uhrenprogramm)
//3=absenken
val output = sendHttpGetRequest("http://[guntamaticIP]/ext/parset.cgi"+syn+value+key)
Does your binding work web-based or do you retrieve the values via Mod-Bus?
I’m very sure that the binding channel controlHeatCircProgram1 will work in order to switch your heating circle 1.
In order to support all the other channels for Biosmart, i was asking myself which parameter must be used for “Kesselfreigabe” - as it is not part of the heating system list (see screenshot above).
It might be, that Biosmart is not providing the channel for “Kesselfreigabe” at all!?
I know that version.
I am using an slightly updated version from 2015.
When I request a release with the parameter syn=HK101 I get the following response:
Do you mean when using your rule via the http binding?
Did you try channel controlHeatCircProgram1 in the meanwhile?
FYI - it is an advanced channel. Therefore you need to un-hide it in the GUI first (“Show advanced”).
I’m testing your binding again right now. And now it seems to work: I am testing the temperatures of the memory. Top middle bottom work.
If you receive values for your channels, it means that your heating system also supports (with and without the ext): /daqdata.cgi&key=verySecret
If not, the channels would not populate with data.
When comparing your and my mbmap.cgi, I can see that yours doesn’t provide the parameter “Boiler Approval”:
With this information I read the Guntamatic spec now in the way, that only pellets heating systems (Biostar, Powerchip, Powercorn, Biocom, Pro, Therm) are supporting this channel, but not log heating systems like Biosmart.
This helps when adding the support for additional heating systems to the binding,