Metadata-Version: 2.1
Name: pybmr
Version: 0.7
Summary: Python library for communication with BMR HC64 Heating Controller units
Home-page: https://github.com/slesinger/pybmr
Author: Honza Slesinger
Author-email: slesinger@gmail.com
License: UNKNOWN
Description: # PyBmr
        
        Python library for communication with BMR HC64 Heating Controller units.
        
        Product website: https://bmr.cz/produkty/regulace-topeni/rnet
        
        
        ## Install:
        
        ```
        python3 -m pip install pybmr
        ```
        
        ## Usage examples
        
        ### Create connection
        
        ```
        from pybmr import pybmr
        
        bmr = pybmr.Bmr("http://192.168.1.5/", "username, "password")
        ```
        
        ### Circuits
        
        Get number of circuits:
        
        ```
        numCircuits = bmr.getNumCircuits()
        ```
        
        Load circuit status:
        
        ```
        circuit = bmr.getCircuit(0)
        print(f"Circuit {circuit['name']}: temperature is {circuit['temperature']} °C, target temperature is {circuit['target_temperature'} °C")
        ```
        
        Load circuit schedules (what schedule is assigned to what day). It is possible to assign a different schedule for up to 21 days.
        
        ```
        circuit_schedules = bmr.getCircuitSchedules(0)
        print(f"Circuit 0 schedule for the first day is {circuit_schedules['day_schedules'][0]}")
        ```
        
        Save circuit schedules:
        
        ```
        bmr.setCircuitSchedules(0, [0, 8])
        ```
        
        
        ### Schedules
        
        Load schedules:
        
        ```
        schedules = bmr.getSchedules()
        print(schedule[0])  # Print the name of first schedule
        ```
        
        Get schedule details:
        
        ```
        schedule = bmr.getSchedule(0)
        print(f"Schedule {schedule['name']} has timetable {schedule['timetable']}")
        ```
        
        Save schedule:
        
        ```
        bmr.setSchedule(0, "New schedule name", [("00:00", 21), ("06:00", 23), ("21:00", 21)])
        ```
        
        Delete schedule:
        
        ```
        bmr.deleteSchedule(0)
        ```
        
        ### Summer mode
        
        Get summer mode:
        
        ```
        if bmr.getSummerMode():
            print("Summer mode is ON")
        else:
            print("Summer mode is OFF")
        ```
        
        Set summer mode:
        
        ```
        bmr.setSummerMode(True):
        ```
        
        Load summer mode assignments (which circuits will be affected by turning the
        summer mode on):
        
        ```
        assignments = bmr.getSummerModeAssignments()
        for circuit_id, value in enumerate(assignments):
            if value:
                print(f"Circuit {circuit_id} is assigned to summer mode.")
            else:
                print(f"Circuit {circuit_id} is NOT assigned to summer mode.")
        ```
        
        Add circuits to summer mode:
        
        ```
        bmr.setSummerModeAssignments([0, 1, 2], True)
        ```
        
        Remove circuits from summer mode:
        
        ```
        bmr.setSummerModeAssignments([0, 1, 2], False)
        ```
        
        ### Low mode
        
        Get low mode:
        
        ```
        low_mode = bmr.getLowMode()
        if low_mode['enabled']:
          print(f"Low mode is turned ON since {low_mode['start_date']}, target temperature is {low_mode['temperature']}")
          if low_mode['end_date']:
            print(f"It will be turned off automatically on {low_mode['end_date']}")
        ```
        
        Turn the low mode ON, set temperature to 18°C:
        
        ```
        bmr.setLowMode(True, 18)
        ```
        
        Turn the low mode ON and let it turn OFF automatically after 3 days:
        
        ```
        bmr.setLowMode(True, 18, datetime.now(), datetime.now() + timedelta(days=3))
        ```
        
        Turn the low mode OFF:
        
        ```
        bmr.setLowMode(False)
        ```
        
        Load low mode assignments (which circuits will be affected by turning the
        low mode on):
        
        ```
        assignments = bmr.getLowModeAssignments()
        for circuit_id, value in enumerate(assignments):
            if value:
                print(f"Circuit {circuit_id} is assigned to low mode.")
            else:
                print(f"Circuit {circuit_id} is NOT assigned to low mode.")
        ```
        
        Add circuits to low mode:
        
        ```
        bmr.setLowModeAssignments([0, 1, 2, 6, 7, 8], True)
        ```
        
        Remove circuits from low mode:
        
        ```
        bmr.setLowModeAssignments([0, 1, 2, 6, 7, 8], False)
        ```
        
        ### HDO
        
        Load HDO status:
        
        ```
        hdo = bmr.getHDO()
        if hdo:
          print("HDO is currently ON")
        else:
          print("HDO is currently OFF")
        ```
        
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Description-Content-Type: text/markdown
