npm package: @geylianlingier/home-automation
Description: home automation library 
Author: Geylian Lingier
Latest version: 0.8.0

# Home Automation

![npm version](https://img.shields.io/npm/v/@geylianlingier/home-automation)

Master Branch :

![ESLint](../../workflows/ESLint/badge.svg?branch=master)
![Markdown Linter](../../workflows/Markdown%20Linter/badge.svg?branch=master)
![Tests](../../workflows/Tests/badge.svg?branch=master)

Dev Branch :

![ESLint](../../workflows/ESLint/badge.svg?branch=dev)
![Markdown Linter](../../workflows/Markdown%20Linter/badge.svg?branch=dev)
![Tests](../../workflows/Tests/badge.svg?branch=dev)

## Description

This library contains three classes :

1. convertTemperature

    * This class converts temperature from different units.

2. thermostat

    * This class contains everything you need to create a thermostat

3. jsonTHermostat

    * This class contains everything you need to create a thermostat with json arguments and returns.

4. httpThermostat

    * This class contains everything you need to create a httpThermostat instance by using a httpTemperatureSensor

5. httpTemperatureSensor

    * This class contains everyhting you need to create a temperature sensor that gets its data from a REST API. You can give this url when creating an instance of this class with its constructor.

For more information about each class and how to use them, you can check the github pages from this project.
[Github Pages](https://vives-software-engineering-2020.github.io/home-automation-Geylian/)

## Installation instructions

Make sure youre project is already an npm project:

```bash
npm init
```

To pull this project from npm you can use the next command :

```bash
npm i @geylianlingier/home-automation
```

Update package :

```bash
npm install
```

Running eslinter :

```bash
npm run lint
```

Updating docs :

```bash
npm run docs
```

## Versions

### v0.1

Creating first thermostat class, in next versions these classes were refactored.

### v0.2

In this version the JSON Thermostat was added to the library.

### v0.3

Adding support for units to the json class.

### v0.4.0

Adding the library to npmjs.com.

### v0.4.1

Added documentation.

### v0.4.2

Cleaning the library:

-No Javascript documents
-Also cleaning all classes from bugging code

### v0.4.3

Added ES Linter and Markdown Linter + badge.

running linter :

```bash
npm run lint
```

### v0.5

Added HTTPTemperatureSensor class and HTTPThermostat class

### v0.6

Added typedoc documentation.

creating documentation docs :

```bash
npm run docs
```

### v0.6.1

solve Github pages bug.

### v0.7.0

Organized code better to handle any kind of change:

* Single Responsibility
* Managing Dependencies

### v0.7.1

In v0.6.1 the github page bug was solved with adding `.nojeckyll`, But when using `npm run docs` the added document disappeared.

### v0.8.0

In this version most of the test are added to check if the classes work correctly. I also added a few methods to use classes and to create test easier.

Also added a new github badge for github action tests.

## License

This project is licensed with MIT.

## To Do

* The JSONThermostatSettings interface gets a unit as a string, but it should be of the Unit type. So the code in that class must be refactored.

## Author Information

Hello, I am Geylian, and I made this library for an assignment for school.
Please check my [Github](https://github.com/Geylian) :octocat: