Re: [mh] Schulter Ditra thermostats
Tom MacLean <[email protected]> Fri, 5 Nov 2021 21:07:14 -0400
| Newsgroups | gmane.comp.misc.misterhouse.user |
|---|---|
| Message-ID | <[email protected]> |
Yes, it is registered. I see it in the web portal as well as in the OJ
Microline UWG4 IOS app.
Extra weird is that the MH polling process has stopped and I can't
restart it.
On 2021-11-05 18:38, H Plato wrote:
> Interesting, your Thermostats are blank, hence no data. You should see
> something like this:
>
> debug:
> json_data={"Groups":[{"GroupNameâ:"grp","GroupId":4224,"AwayMode":false,"Thermostats":[{"SerialNumberâ:"12345678","Roomâ:"room1","GroupNameâ:"grp","GroupIdâ:4224,"Temperature":2561,"SetPointTemp":2800,"RegulationMode":1,"VacationEnabled":false,"VacationBeginDay":"21/09/2021
> 00:00:00","VacationEndDay":"22/09/2021
> 00:00:00","VacationTemperature":2683,"ComfortTemperature":3000,"ComfortEndTime":"05/11/2021
> 21:30:00
>
+00:00","ManualTemperature":2500,"LastPrimaryModeIsAuto":true,"Online":true,"Heating":true,"EarlyStartOfHeating":true,"MaxTemp":4000,"MinTemp":500,"ErrorCode":0,"Confirmed":true,"Emailâ:â[email protected]","TZOffset":"-06:00","Assigned":true,"KwhCharge":0.8,"LoadMeasuringActive":true,"LoadManuallySetWatt":100,"LoadMeasuredWatt":249,"SWVersion":"1012P201","HasBeenAssigned":true,"DistributerId":10207,"Schedules":[{"WeekDayGrpNo":1,"Events":[{"ScheduleType":0,"Clock":"05:30:00","TempFloor":2800,"Active":true},{"ScheduleType":1,"Clock":"09:00:00","TempFloor":2400,"Active":true},{"ScheduleType":2,"Clock":"12:00:00","TempFloor":2800,"Active":false},{"ScheduleType":3,"Clock":"13:00:00","TempFloor":2350,"Active":false},{"ScheduleType":4,"Clock":"17:00:00","TempFloor":2800,"Active":true},{"ScheduleType":5,"Clock":"23:00:00","TempFloor":2400,"Active":true}]},{"WeekDayGrpNo":2,"Events":[{"ScheduleType":0,"Clock":"05:30:00","TempFloor":2800,"Active":true},{"ScheduleType":1,"Clock":"09:00:00","
TempFloor":2400,"Active":true},{"ScheduleType":2,"Clock":"12:00:00","TempFloor":2800,"Active":false},{"ScheduleType":3,"Clock":"13:00:00","TempFloor":2350,"Active":false},{"ScheduleType":4,"Clock":"17:00:00","TempFloor":2800,"Active":true},{"ScheduleType":5,"Clock":"23:00:00","TempFloor":2400,"Active":true}]},{"WeekDayGrpNo":3,"Events":[{"ScheduleType":0,"Clock":"05:30:00","TempFloor":2800,"Active":true},{"ScheduleType":1,"Clock":"09:00:00","TempFloor":2400,"Active":true},{"ScheduleType":2,"Clock":"12:00:00","TempFloor":2800,"Active":false},{"ScheduleType":3,"Clock":"13:00:00","TempFloor":2350,"Active":false},{"ScheduleType":4,"Clock":"17:00:00","TempFloor":2800,"Active":true},{"ScheduleType":5,"Clock":"23:00:00","TempFloor":2400,"Active":true}]},{"WeekDayGrpNo":4,"Events":[{"ScheduleType":0,"Clock":"05:30:00","TempFloor":2800,"Active":true},{"ScheduleType":1,"Clock":"09:00:00","TempFloor":2400,"Active":true},{"ScheduleType":2,"Clock":"12:00:00","TempFloor":2800,"Active":false},{"Sch
eduleType":3,"Clock":"13:00:00","TempFloor":2350,"Active":false},{"ScheduleType":4,"Clock":"17:00:00","TempFloor":2800,"Active":true},{"ScheduleType":5,"Clock":"23:00:00","TempFloor":2400,"Active":true}]},{"WeekDayGrpNo":5,"Events":[{"ScheduleType":0,"Clock":"05:30:00","TempFloor":2800,"Active":true},{"ScheduleType":1,"Clock":"09:00:00","TempFloor":2400,"Active":true},{"ScheduleType":2,"Clock":"12:00:00","TempFloor":2800,"Active":false},{"ScheduleType":3,"Clock":"13:00:00","TempFloor":2350,"Active":false},{"ScheduleType":4,"Clock":"17:00:00","TempFloor":2800,"Active":true},{"ScheduleType":5,"Clock":"23:00:00","TempFloor":2400,"Active":true}]},{"WeekDayGrpNo":6,"Events":[{"ScheduleType":0,"Clock":"07:00:00","TempFloor":2800,"Active":true},{"ScheduleType":1,"Clock":"09:00:00","TempFloor":2350,"Active":false},{"ScheduleType":2,"Clock":"12:00:00","TempFloor":2800,"Active":false},{"ScheduleType":3,"Clock":"13:00:00","TempFloor":2350,"Active":false},{"ScheduleType":4,"Clock":"17:00:00","Te
mpFloor":2800,"Active":false},{"ScheduleType":5,"Clock":"23:00:00","TempFloor":2400,"Active":true}]},{"WeekDayGrpNo":7,"Events":[{"ScheduleType":0,"Clock":"07:00:00","TempFloor":2800,"Active":true},{"ScheduleType":1,"Clock":"09:00:00","TempFloor":2350,"Active":false},{"ScheduleType":2,"Clock":"12:00:00","TempFloor":2800,"Active":false},{"ScheduleType":3,"Clock":"13:00:00","TempFloor":2350,"Active":false},{"ScheduleType":4,"Clock":"17:00:00","TempFloor":2800,"Active":false},{"ScheduleType":5,"Clock":"23:00:00","TempFloor":2400,"Active":true}]}],"Support":"Customer
> Service\r\nUSA: 1-800-472-4588\r\nCanada:
> 1-800-667-8746\r\[email protected]\r\n"},{"SerialNumberâ:"2345678","Roomâ:âroom
> 2","GroupNameâ:"grp","GroupIdâ:4224,"Temperature":2531,"SetPointTemp":2500,"RegulationMode":3,"VacationEnabled":false,"VacationBeginDay":"29/10/2021
> 00:00:00","VacationEndDay":"23/11/2021
> 00:00:00","VacationTemperature":2228,"ComfortTemperature":3000,"ComfortEndTime":"05/11/2021
> 03:30:00
>
+00:00","ManualTemperature":2500,"LastPrimaryModeIsAuto":false,"Online":true,"Heating":false,"EarlyStartOfHeating":false,"MaxTemp":4000,"MinTemp":500,"ErrorCode":0,"Confirmed":true,"Emailâ:â[email protected]","TZOffset":"-06:00","Assigned":true,"KwhCharge":0.08,"LoadMeasuringActive":true,"LoadManuallySetWatt":100,"LoadMeasuredWatt":1293,"SWVersion":"1012P201","HasBeenAssigned":true,"DistributerId":10207,"Schedules":[{"WeekDayGrpNo":1,"Events":[{"ScheduleType":0,"Clock":"06:00:00","TempFloor":2778,"Active":true},{"ScheduleType":1,"Clock":"09:00:00","TempFloor":2333,"Active":true},{"ScheduleType":2,"Clock":"12:00:00","TempFloor":2778,"Active":false},{"ScheduleType":3,"Clock":"13:00:00","TempFloor":2333,"Active":false},{"ScheduleType":4,"Clock":"17:00:00","TempFloor":2778,"Active":true},{"ScheduleType":5,"Clock":"23:00:00","TempFloor":2333,"Active":true}]},{"WeekDayGrpNo":2,"Events":[{"ScheduleType":0,"Clock":"06:00:00","TempFloor":2778,"Active":true},{"ScheduleType":1,"Clock":"09:00
:00","TempFloor":2333,"Active":true},{"ScheduleType":2,"Clock":"12:00:00","TempFloor":2778,"Active":false},{"ScheduleType":3,"Clock":"13:00:00","TempFloor":2333,"Active":false},{"ScheduleType":4,"Clock":"17:00:00","TempFloor":2778,"Active":true},{"ScheduleType":5,"Clock":"23:00:00","TempFloor":2333,"Active":true}]},{"WeekDayGrpNo":3,"Events":[{"ScheduleType":0,"Clock":"06:00:00","TempFloor":2778,"Active":true},{"ScheduleType":1,"Clock":"09:00:00","TempFloor":2333,"Active":true},{"ScheduleType":2,"Clock":"12:00:00","TempFloor":2778,"Active":false},{"ScheduleType":3,"Clock":"13:00:00","TempFloor":2333,"Active":false},{"ScheduleType":4,"Clock":"17:00:00","TempFloor":2778,"Active":true},{"ScheduleType":5,"Clock":"23:00:00","TempFloor":2333,"Active":true}]},{"WeekDayGrpNo":4,"Events":[{"ScheduleType":0,"Clock":"06:00:00","TempFloor":2778,"Active":true},{"ScheduleType":1,"Clock":"09:00:00","TempFloor":2333,"Active":true},{"ScheduleType":2,"Clock":"12:00:00","TempFloor":2778,"Active":false}
,{"ScheduleType":3,"Clock":"13:00:00","TempFloor":2333,"Active":false},{"ScheduleType":4,"Clock":"17:00:00","TempFloor":2778,"Active":true},{"ScheduleType":5,"Clock":"23:00:00","TempFloor":2333,"Active":true}]},{"WeekDayGrpNo":5,"Events":[{"ScheduleType":0,"Clock":"06:00:00","TempFloor":2778,"Active":true},{"ScheduleType":1,"Clock":"09:00:00","TempFloor":2333,"Active":true},{"ScheduleType":2,"Clock":"12:00:00","TempFloor":2778,"Active":false},{"ScheduleType":3,"Clock":"13:00:00","TempFloor":2333,"Active":false},{"ScheduleType":4,"Clock":"17:00:00","TempFloor":2778,"Active":true},{"ScheduleType":5,"Clock":"23:00:00","TempFloor":2333,"Active":true}]},{"WeekDayGrpNo":6,"Events":[{"ScheduleType":0,"Clock":"08:00:00","TempFloor":2778,"Active":true},{"ScheduleType":1,"Clock":"09:00:00","TempFloor":2333,"Active":false},{"ScheduleType":2,"Clock":"12:00:00","TempFloor":2778,"Active":false},{"ScheduleType":3,"Clock":"13:00:00","TempFloor":2333,"Active":false},{"ScheduleType":4,"Clock":"17:00:0
0","TempFloor":2778,"Active":false},{"ScheduleType":5,"Clock":"23:00:00","TempFloor":2333,"Active":true}]},{"WeekDayGrpNo":7,"Events":[{"ScheduleType":0,"Clock":"08:00:00","TempFloor":2778,"Active":true},{"ScheduleType":1,"Clock":"09:00:00","TempFloor":2333,"Active":false},{"ScheduleType":2,"Clock":"12:00:00","TempFloor":2778,"Active":false},{"ScheduleType":3,"Clock":"13:00:00","TempFloor":2333,"Active":false},{"ScheduleType":4,"Clock":"17:00:00","TempFloor":2778,"Active":false},{"ScheduleType":5,"Clock":"23:00:00","TempFloor":2333,"Active":true}]}],"Support":"Customer
> Service\r\nUSA: 1-800-472-4588\r\nCanada:
> 1-800-667-8746\r\[email protected]\r\n"}]}]}
>
> Has that thermostat been registered to the portal? If you log into the
> web interface (or the app), do you see the stat?
>
>> On Nov 5, 2021, at 3:40 PM, Tom MacLean <[email protected]> wrote:
>> Hi.
>>
>> Is the expected response like this?
>> {"Groups":[{"GroupName":"Basement
>>
> ","GroupId":4473,"AwayMode":false,"Thermostats":[]},{"GroupName":"","GroupId":0,"AwayMode":false,"Thermostats":[]}]}
>>
>> This is what is in my log:
>> 11/05/21 04:44:25 PM [Schulter_Ditra] get_data initiated
>> 11/05/21 04:44:25 PM [Schulter_Ditra] Background Polling initiated
>> 11/05/21 04:44:25 PM [Schulter_Ditra] Backgrounding 623 command
>> get_url
>>
> https://ditra-heat-e-wifi.schluter.com/api/thermostats?sessionId=TOKEN_REMOVED
>> 11/05/21 04:44:33 PM [Schulter_Ditra] Background poll process
>> completed
>> 11/05/21 04:44:33 PM [Schulter_Ditra] Processing Data...
>> 11/05/21 04:44:33 PM [Schulter_Ditra] Processing Data for Group
>> Basement ...
>> 11/05/21 04:44:33 PM [Schulter_Ditra] Processing Data for Group ...
>>
>> I don't see any temperature data...
>>
>> I tried setting the app_id to 1 like in my NodeRed script and that
>> made it crash.
>> I did some playing around with URL and app_id ... i think I put it
>> all back, but not the Schluter code isn't polling any more. The
>> app_id had caused an outright crash, so that seems not it. I can
>> see the _get_url happening as a process, but I don't see MH
>> reporting on it at all.
>>
>> On 2021-11-05 10:08, H Plato wrote:
>> You can turn on debug on (change line 79 to $self->{debug} = 5 to
>> see
>> whatâÂÂs happening, the URL queries and the data returned.
>> The ditra master object just holds the data structure that is
>> queried
>> from the account. Since I have 2 of these devices, IâÂÂve set up
>> the
>> module so that the child objects have the specific information
>> around
>> the stat. So the child mode state is âÂÂheating or idleâÂÂ,
>> the child
>> setpoint object will have the current setpoint, and the child temp
>> object state should be the temperature.
>> That set operation should work.
>> On Nov 5, 2021, at 7:39 AM, Tom MacLean <[email protected]> wrote:
>> I had figured out the main Ditra object and that the others were
>> dependent objects, but I had assumed "serial" was a string...
>> perhaps it will work better as an integer.
>> Can you give an example of reading the temp value? I assumed it
>> would be stored in ->state but I got back nothing. (OTOH, if my
>> Serial was wrong, maybe that would be expected).
>> Is the set point set something like this? $room1_sp->set(12.5)
>> Thanks
>> On 2021-11-04 23:53, H Plato wrote:
>> Not only a spelling mistake, but no instructions either! :)
>> Two things,
>> Set the username (email) and password in the mh.config like this:
>> ditra_username = [email protected]
>> ditra_password = password
>> Then define the master object. I have two thermostats, but they use
>> the master object like this:
>> use Schulter_Ditra;
>> $ditra = new Schulter_Ditra;
>> $room1_sp = new Ditra_thermostat_sp($ditra,123456);
>> $room1_mode = new Ditra_thermostat_mode($ditra,123456);
>> $room1_temp = new Ditra_thermostat_temp($ditra,123456);
>> $room2_sp = new Ditra_thermostat_sp($ditra,234567);
>> $room2_mode = new Ditra_thermostat_mode($ditra,234567);
>> $room2_temp = new Ditra_thermostat_temp($ditra,234567);
>> Then in the web interface you can see the mode and change the
>> setpoint. By default I set the poll to every 10 seconds, so
>> itâÃÂÃÂs not
>> realtime to reflect local changes.
>> IâÃÂÃÂll add these instructions and correct the spelling
>> mistake
>> for the next update
>> On Nov 4, 2021, at 9:14 PM, Tom MacLean <[email protected]> wrote:
>> I have the Schluter code running, but frankly I don't know how to
>> use it. I set the required params, and I can see it authenticating
>> and fetching my group. I tried creating a temp object, but I don't
>> know how to read it.
>> $Basement_Bathroom_Thermostat = new Schulter_Ditra();
>> $Basement_Bathroom_temp = new
>> Ditra_thermostat_temp($Basement_Bathroom_Thermostat,"SERIAL
>> NUMBER");
>> Can you provide any guidance?
>> Thanks,
>> Tom
>> On 2021-11-04 17:20, Tom MacLean wrote:
>> Is it all contained in lib/Schulter_Ditra.pm ? (BTW, it's
>> Schluter.)
>> Will this lib run on the current release or are there unmet
>> dependencies? In any case, i will try.
>> Cheers
>> On 2021-11-03 22:49, H Plato wrote:
>> ThatÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂs good. I
>> uploaded my latest module to
>> github. It tracks mode,
>> and you can change the setpoint and pull the temperature. Be good to
>> know if you have any feedback.
>> On Nov 3, 2021, at 8:35 PM, Tom MacLean <[email protected]> wrote:
>> It took me a little fighting to get Crypt::SSLeay installed, but I
>> got there. (cpan wouldn't do it, I had to apt-get the relevant
>> libraries.)
>> I am able to authenticate at the schluter URL as well as the generic
>> one. I checked and both domains map to the same IP address.
>> On 2021-11-02 10:52, H Plato wrote:
>> Interesting. I can authenticate against that URL as well, so I bet
>>
> youÃÂÃÂÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂre
>> correct that
>> the reseller is branding that URL.
>> To create an account, I had to have power to my wifi device, and
>> then
>> associated that device with an email account.
>> I
>>
> donÃÂÃÂÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂt
>> have any
>> documentation
>>
> ÃÂÃÂÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ
>> I
>> pulled the endpoints from other
>> integrations that are out there on github.
>> On Nov 1, 2021, at 9:17 PM, Tom MacLean <[email protected]> wrote:
>> In truth, I haven't hooked up my unit to wifi yet -- the relevant
>> bathroom is still under construction (by me), but I'm almost done.
>> The heated floor and thermostat are in, all I need is the "round
>> tuit" to connect it to wifi.
>> The URL I have is diferrent, but the Schluter Thermostat is
>> definitely an OJ Microline ... so I think they have branded URLs or
>> perhaps a different application number. The code I expect to use
>> uses:
>> https://mythermostat.info/api/authenticate/user
>> {"Email":"LOGIN EMAIL","Password":"LOGIN PASSWORD","Application":0}
>> Looks familiar, no?
>> Do you have documentation? The only two actions I know about are
>> setting an override "away" temperature, and resuming the normal
>> schedule.
>> Cheers
>> Tom
>> On 2021-10-31 18:25, H Plato wrote:
>> OK, if you have an account with one of those stats, try running this
>> command to see if you get a sessionID:
>> ./get_url -response_code -json -post
>>
> '{"EmailÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ:ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ[email protected]","PasswordÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ:"password","Application":"7"}'
>> https://ditra-heat-e-wifi.schluter.com/api/authenticate/user
>> If you get back something like this:
>> RESPONSECODE:200
>>
> {"SessionIdÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ:ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂsdfhsdihflasdfhalsdiufha","NewAccount":false,"ErrorCode":0,"RoleType":3000,"Email":"[email protected]","Language":ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂEN"}
>> Then it will work.
>> On Oct 31, 2021, at 4:12 PM, Tom MacLean <[email protected]>
>> wrote:
>> Hi
>> Is the Schluter thermostat one of the models made by OJ Electronics?
>> They make thermostats for a bunch of floor heating companies,
>> including also WarmlyYours. In short, I could test it if is. I
>>
> didnÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂt
>> think they had a public API. All I found was a rather limited
>> NodeRED script.
>> Cheers,
>> Tom
>> Sent from my iPhone
>> On Oct 30, 2021, at 2:34 PM, H Plato <[email protected]> wrote:
>>
> ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂïÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂûÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÿI
>>
> donÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂt
>> know if anyone else has any of these, but
>>
> IÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂm
>> just putting the finishing touches on a MH module to poll and
>> control the wifi in-floor heat thermostats.
>> It feels like there are a bunch of changes out there (like the
>> tasmota stuff),
>>
> IÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂm
>> wondering if it makes sense to combine them all into master and look
>> to package it for a release. MH is pretty mature and stable, so
>> there
>>
> hasnÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂâÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂt
>> been updates in a while, but would be good to have a current
>> download.
>> ________________________________________________________
>> To unsubscribe from this list, go to:
>> https://lists.sourceforge.net/lists/listinfo/misterhouse-users
>> ________________________________________________________
>> To unsubscribe from this list, go to:
>> https://lists.sourceforge.net/lists/listinfo/misterhouse-users
>> ________________________________________________________
>> To unsubscribe from this list, go to:
>> https://lists.sourceforge.net/lists/listinfo/misterhouse-users
>> ________________________________________________________
>> To unsubscribe from this list, go to:
>> https://lists.sourceforge.net/lists/listinfo/misterhouse-users
>
> ________________________________________________________
> To unsubscribe from this list, go to:
> https://lists.sourceforge.net/lists/listinfo/misterhouse-users
________________________________________________________
To unsubscribe from this list, go to: https://lists.sourceforge.net/lists/listinfo/misterhouse-users