├── README.md ├── automationserver ├── ASBusiness │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── fr │ │ └── guiet │ │ └── automationserver │ │ └── business │ │ ├── Heater.java │ │ ├── HomeModeState.java │ │ ├── RollerShutter.java │ │ ├── RollerShutterState.java │ │ ├── Room.java │ │ ├── helper │ │ ├── DateUtils.java │ │ ├── GpioHelper.java │ │ ├── MqttClientHelper.java.old │ │ ├── ParseUtils.java │ │ └── PinState.java │ │ ├── sensor │ │ ├── BMP085_Sensor.java │ │ ├── DHT22_Sensor.java │ │ ├── DS18B20_Sensor.java │ │ ├── EnvironmentalSensor.java │ │ ├── HDC1080_Sensor.java │ │ ├── ReedswitchSensor.java │ │ ├── ReedswitchState.java │ │ └── Sensor.java │ │ └── service │ │ ├── AbstractAutomationService.java │ │ ├── AlarmService.java │ │ ├── AnemometerService.java │ │ ├── BLEHubService.java │ │ ├── IMqttable.java │ │ ├── LoRaService.java_old │ │ ├── MailService.java │ │ ├── MailboxService.java │ │ ├── MqttService.java │ │ ├── OutsideEnvironmentalService.java │ │ ├── Print3DService.java │ │ ├── RaingaugeService.java │ │ ├── RollerShutterService.java │ │ ├── RoomService.java │ │ ├── SMSGammuService.java │ │ ├── TeleInfoService.java │ │ ├── WaterHeaterService.java │ │ ├── WaterMeterService.java │ │ └── WindvaneService.java ├── ASDataAccess │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── fr │ │ └── guiet │ │ └── automationserver │ │ └── dataaccess │ │ ├── C3P0DataSource.java │ │ └── DbManager.java ├── ASLoraWAN │ ├── .gitignore │ ├── .settings │ │ ├── org.eclipse.core.resources.prefs │ │ └── org.eclipse.m2e.core.prefs │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── be │ │ └── romaincambier │ │ └── lorawan │ │ ├── AesCmac.java │ │ ├── Binarizable.java │ │ ├── Direction.java │ │ ├── FHDR.java │ │ ├── FRMPayload.java │ │ ├── JoinAcceptPayload.java │ │ ├── JoinRequestPayload.java │ │ ├── MACPayload.java │ │ ├── MHDR.java │ │ ├── MType.java │ │ ├── MajorVersion.java │ │ ├── Message.java │ │ ├── PhyPayload.java │ │ └── exceptions │ │ └── MalformedPacketException.java ├── ASMain │ ├── pom.xml │ └── src │ │ ├── assembly │ │ └── assembly.xml │ │ └── main │ │ ├── java │ │ └── fr │ │ │ └── guiet │ │ │ └── automationserver │ │ │ └── AutomationServer.java │ │ └── resources │ │ ├── automationserver.properties │ │ └── log4j.xml ├── ASModel │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── fr │ │ └── guiet │ │ └── automationserver │ │ └── dto │ │ ├── HeaterDto.java │ │ ├── RoomDto.java │ │ ├── SMSDto.java │ │ ├── SensorDto.java │ │ ├── TeleInfoTrameDto.java │ │ └── TempScheduleDto.java ├── ASParent │ └── pom.xml ├── ASTests │ ├── .gitignore │ ├── pom.xml │ └── src │ │ ├── assembly │ │ └── assembly.xml │ │ └── main │ │ ├── java │ │ └── fr │ │ │ └── guiet │ │ │ └── automationserver │ │ │ ├── databases │ │ │ └── InfluxdbTests.java │ │ │ ├── teleinfoservicetests │ │ │ └── TeleinfoServiceTests.java │ │ │ └── various │ │ │ ├── ClasspathTests.java │ │ │ ├── DateTimeTests.java │ │ │ ├── JsonTests.java │ │ │ └── RollershutterServiceTests.java │ │ └── resources │ │ └── log4j.xml └── ASWebApp │ ├── pom.xml │ └── src │ └── main │ ├── java │ └── fr │ │ └── guiet │ │ └── automationserver │ │ └── api │ │ ├── AlarmAPI.java.old │ │ ├── FirmwareAPI.java │ │ ├── RoomAPI.java.old │ │ └── ScheduleAPI.java │ └── webapp │ ├── WEB-INF │ └── web.xml │ ├── resources │ ├── css │ │ ├── areas.css │ │ ├── areas │ │ │ └── icons.png │ │ ├── calendar_blue.css │ │ ├── calendar_default_2014.css │ │ ├── calendar_g.css │ │ ├── calendar_green.css │ │ ├── calendar_traditional.css │ │ ├── calendar_transparent.css │ │ ├── calendar_white.css │ │ ├── gantt_default_2014.css │ │ ├── kanban_default_2014.css │ │ ├── month_blue.css │ │ ├── month_default_2014.css │ │ ├── month_g.css │ │ ├── month_green.css │ │ ├── month_traditional.css │ │ ├── month_transparent.css │ │ ├── month_white.css │ │ ├── navigator_8.css │ │ ├── navigator_blue.css │ │ ├── navigator_default_2014.css │ │ ├── navigator_g.css │ │ ├── navigator_green.css │ │ ├── navigator_transparent.css │ │ ├── navigator_white.css │ │ ├── scheduler_8.css │ │ ├── scheduler_blue.css │ │ ├── scheduler_default_2014.css │ │ ├── scheduler_green.css │ │ ├── scheduler_traditional.css │ │ ├── scheduler_transparent.css │ │ ├── scheduler_white.css │ │ └── timetable_big.css │ └── js │ │ ├── daypilot-all.min.js │ │ └── jquery-1.12.2.min.js │ └── tempschedule.jsp ├── automationserver@.service ├── doc ├── AutomationServerArchitecture.dia ├── IMG_20170925_193103.jpg ├── InstallNotes.txt ├── InstallNotesLinux.txt ├── P4J_BCM_Match.xlsx ├── Rpi1Gpio.png ├── Rpi3Gpio.png ├── custom_pins_on_early_boottime.txt ├── inside_enclosure_case.jpg ├── outside_enclosure_case.jpg └── system_overview.jpg ├── esp8266 └── firmware │ ├── AT0.51_SDK1.5 │ ├── esp8266_at0.51_sdk1.5.bin │ └── factory_reset.sh │ └── AT1.3_SDK2.0 │ ├── blank.bin │ ├── boot_v1.6.bin │ ├── esp_init_data_default.bin │ ├── factory_reset.sh │ └── user1.1024.new.2.bin ├── kubernetes ├── doc │ ├── k8s-automationserver-setup.md │ ├── k8s-cheatsheet.md │ ├── k8s-principles.md │ └── k8s-raspberry4-setup.md ├── docker │ ├── dnsmasq │ │ ├── Dockerfile │ │ ├── conf │ │ │ └── dnsmasq.conf │ │ ├── docker-build.sh │ │ ├── docker-compose.yml │ │ └── docker-run.sh │ ├── haproxy │ │ ├── Dockerfile │ │ ├── conf │ │ │ └── haproxy.cfg │ │ ├── docker-compose.yml │ │ └── restart.sh │ └── pihole │ │ └── docker-compose.yml └── manifests │ ├── grafana │ ├── grafana-deployment.yaml │ ├── grafana-ingress-resources.yaml │ ├── grafana-nfs-pv.yaml │ ├── grafana-service-clusterip.yaml │ └── granafa-nfs-pvc.yaml │ ├── k8s-dashboard │ └── sa_cluster_admin.yaml │ ├── nodered │ ├── nodered-deployment.yaml │ ├── nodered-ingress-resources.yaml │ ├── nodered-nfs-pv.yaml │ ├── nodered-nfs-pvc.yaml │ └── nodered-service-clusterip.yaml │ └── openhab │ ├── openhab-deployment.yaml │ ├── openhab-ingress-resources.yaml │ ├── openhab-nfs-pv.yaml │ ├── openhab-nfs-pvc.yaml │ ├── openhab-service-clusterip.yaml │ └── openhab-service-nodeport.yaml ├── postgresql ├── automationserver.sql └── dump_structure.sh ├── sketches ├── anemometer │ ├── anemometer.ino │ └── linear_regression_anemometer.xlsx ├── anemometer_calibration │ └── anemometer_calibration.ino ├── basementmonitoring │ └── basementmonitoring.ino ├── blink_arduino_pro_mini │ └── blink_arduino_pro_mini.ino ├── boiler │ └── boiler.ino ├── fishfeeder │ └── fishfeeder.ino ├── homehub │ └── homehub.ino ├── homehub_v2 │ └── homehub_v2.ino ├── insidemonitoring │ └── insidemonitoring.ino ├── lora_node_receiver │ └── lora_node_receiver.ino ├── lora_node_sender │ └── lora_node_sender.ino ├── lora_rf95_client │ └── lora_rf95_client.ino ├── lora_rf95_server │ └── lora_rf95_server.ino ├── mailboxnotifier │ └── mailboxnotifier.ino ├── mbed_ble_environmental_sensor_htu21d │ └── main.cpp ├── mbed_ble_hub │ └── main.cpp ├── mbed_ble_insidemonitoring │ ├── BLE_API │ │ └── ble │ │ │ └── GapAdvertisingData.h │ └── main.cpp ├── mbed_ble_reedswitch │ └── main.cpp ├── outsidemonitoring │ └── outsidemonitoring.ino ├── raingauge │ ├── Schematic_Raingauge.svg │ └── raingauge.ino ├── raingauge_pro_mini │ └── raingauge_pro_mini.ino ├── rollershutter │ └── rollershutter.ino └── xmaslights │ └── xmaslights.ino ├── start_automationserver ├── start_tomcat ├── stop_automationserver ├── third-party-lib ├── arduino │ └── Low-Power-master │ │ ├── Examples │ │ ├── idleWakePeriodic │ │ │ └── idleWakePeriodic.ino │ │ ├── powerDownWakeExternalInterrupt │ │ │ └── powerDownWakeExternalInterrupt.ino │ │ ├── powerDownWakePeriodic │ │ │ └── powerDownWakePeriodic.ino │ │ └── standbyExternalInterruptSAMD21 │ │ │ └── standbyExternalInterruptSAMD21.ino │ │ ├── LowPower.cpp │ │ ├── LowPower.h │ │ ├── README.md │ │ ├── keywords.txt │ │ └── library.properties └── native │ └── librxtxSerial.so └── third-party-tools ├── automationserver ├── cmd │ ├── deploy.sh │ └── start.sh ├── conf │ ├── automationserver.properties │ ├── gammu-config │ └── log4j.xml ├── docker │ ├── automationserver_dockerbuild │ ├── automationserver_dockerfile │ ├── automationserver_dockerrun │ └── docker-entry-point.sh └── install │ └── prerequisite ├── grafana ├── docker │ ├── .env │ ├── README.md │ ├── docker-compose.yml │ ├── grafana_dockerrun │ └── grafana_dockerstop └── install │ └── prerequisite ├── influxdb ├── conf │ ├── influxdb.conf │ └── installweb.txt ├── docker │ ├── docker-entry-point.sh │ ├── influxdb_dockerbuild │ ├── influxdb_dockerfile │ └── influxdb_dockerrun └── install │ ├── prerequisite │ └── readme.txt ├── mosquitto ├── conf │ ├── ca_certificates │ │ └── README │ ├── certs │ │ └── README │ ├── conf.d │ │ └── README │ └── mosquitto.conf ├── docker │ ├── .env │ ├── docker-compose.yml │ ├── mosquitto_dockerrun │ └── mosquitto_dockerstop └── install │ ├── prerequisite │ └── readme.txt ├── node-red ├── docker │ ├── .env │ ├── docker-compose.yml │ ├── nodered_dockerrun │ └── nodered_dockerstop └── install │ ├── prerequisite │ └── readme.txt ├── openhab ├── conf │ ├── html │ │ ├── boilerChart.html │ │ ├── caveChart.html │ │ ├── cctvCam1Chart.html │ │ ├── charts.css │ │ ├── elecChart.html │ │ ├── exterieurChart.html │ │ ├── index.html │ │ ├── issue-120.css │ │ ├── issue-120.html │ │ ├── pluvioChart.html │ │ ├── readme.txt │ │ ├── salonChart.html │ │ └── weather-data │ │ │ ├── images │ │ │ ├── colorful │ │ │ │ ├── blowing-snow.png │ │ │ │ ├── clear-night.png │ │ │ │ ├── cloudy.png │ │ │ │ ├── dust.png │ │ │ │ ├── few-showers.png │ │ │ │ ├── fog.png │ │ │ │ ├── freezing-drizzle.png │ │ │ │ ├── freezing-rain.png │ │ │ │ ├── hot.png │ │ │ │ ├── light-snow.png │ │ │ │ ├── mostly-cloudy-day.png │ │ │ │ ├── mostly-cloudy-night.png │ │ │ │ ├── partly-cloudy-day.png │ │ │ │ ├── partly-cloudy-night.png │ │ │ │ ├── rain-and-sleet.png │ │ │ │ ├── rain-and-snow.png │ │ │ │ ├── rain.png │ │ │ │ ├── scattered-showers.png │ │ │ │ ├── scattered-thunder.png │ │ │ │ ├── scattered-thundershowers.png │ │ │ │ ├── sleet.png │ │ │ │ ├── snow-and-sleet.png │ │ │ │ ├── snow-flurries.png │ │ │ │ ├── snow-showers.png │ │ │ │ ├── snow.png │ │ │ │ ├── storm.png │ │ │ │ ├── sunny.png │ │ │ │ ├── thunder.png │ │ │ │ ├── thundershower.png │ │ │ │ ├── unknown.png │ │ │ │ └── wind.png │ │ │ ├── dark │ │ │ │ ├── blowing-snow.png │ │ │ │ ├── clear-night.png │ │ │ │ ├── cloudy.png │ │ │ │ ├── dust.png │ │ │ │ ├── few-showers.png │ │ │ │ ├── fog.png │ │ │ │ ├── freezing-drizzle.png │ │ │ │ ├── freezing-rain.png │ │ │ │ ├── hot.png │ │ │ │ ├── light-snow.png │ │ │ │ ├── mostly-cloudy-day.png │ │ │ │ ├── mostly-cloudy-night.png │ │ │ │ ├── partly-cloudy-day.png │ │ │ │ ├── partly-cloudy-night.png │ │ │ │ ├── rain-and-sleet.png │ │ │ │ ├── rain-and-snow.png │ │ │ │ ├── rain.png │ │ │ │ ├── scattered-showers.png │ │ │ │ ├── scattered-thunder.png │ │ │ │ ├── scattered-thundershowers.png │ │ │ │ ├── sleet.png │ │ │ │ ├── snow-and-sleet.png │ │ │ │ ├── snow-flurries.png │ │ │ │ ├── snow-showers.png │ │ │ │ ├── snow.png │ │ │ │ ├── storm.png │ │ │ │ ├── sunny.png │ │ │ │ ├── thunder.png │ │ │ │ ├── thundershower.png │ │ │ │ ├── unknown.png │ │ │ │ └── wind.png │ │ │ ├── flat_black │ │ │ │ ├── blowing-snow.png │ │ │ │ ├── clear-night.png │ │ │ │ ├── cloudy.png │ │ │ │ ├── dust.png │ │ │ │ ├── few-showers.png │ │ │ │ ├── fog.png │ │ │ │ ├── freezing-drizzle.png │ │ │ │ ├── freezing-rain.png │ │ │ │ ├── hot.png │ │ │ │ ├── light-snow.png │ │ │ │ ├── mostly-cloudy-day.png │ │ │ │ ├── mostly-cloudy-night.png │ │ │ │ ├── partly-cloudy-day.png │ │ │ │ ├── partly-cloudy-night.png │ │ │ │ ├── rain-and-sleet.png │ │ │ │ ├── rain-and-snow.png │ │ │ │ ├── rain.png │ │ │ │ ├── scattered-showers.png │ │ │ │ ├── scattered-thunder.png │ │ │ │ ├── scattered-thundershowers.png │ │ │ │ ├── sleet.png │ │ │ │ ├── snow-and-sleet.png │ │ │ │ ├── snow-flurries.png │ │ │ │ ├── snow-showers.png │ │ │ │ ├── snow.png │ │ │ │ ├── storm.png │ │ │ │ ├── sunny.png │ │ │ │ ├── thunder.png │ │ │ │ ├── thundershower.png │ │ │ │ ├── unknown.png │ │ │ │ └── wind.png │ │ │ ├── flat_colorful │ │ │ │ ├── blowing-snow.png │ │ │ │ ├── clear-night.png │ │ │ │ ├── cloudy.png │ │ │ │ ├── dust.png │ │ │ │ ├── few-showers.png │ │ │ │ ├── fog.png │ │ │ │ ├── freezing-drizzle.png │ │ │ │ ├── freezing-rain.png │ │ │ │ ├── hot.png │ │ │ │ ├── light-snow.png │ │ │ │ ├── mostly-cloudy-day.png │ │ │ │ ├── mostly-cloudy-night.png │ │ │ │ ├── partly-cloudy-day.png │ │ │ │ ├── partly-cloudy-night.png │ │ │ │ ├── rain-and-sleet.png │ │ │ │ ├── rain-and-snow.png │ │ │ │ ├── rain.png │ │ │ │ ├── scattered-showers.png │ │ │ │ ├── scattered-thunder.png │ │ │ │ ├── scattered-thundershowers.png │ │ │ │ ├── sleet.png │ │ │ │ ├── snow-and-sleet.png │ │ │ │ ├── snow-flurries.png │ │ │ │ ├── snow-showers.png │ │ │ │ ├── snow.png │ │ │ │ ├── storm.png │ │ │ │ ├── sunny.png │ │ │ │ ├── thunder.png │ │ │ │ ├── thundershower.png │ │ │ │ ├── unknown.png │ │ │ │ └── wind.png │ │ │ ├── flat_white │ │ │ │ ├── blowing-snow.png │ │ │ │ ├── clear-night.png │ │ │ │ ├── cloudy.png │ │ │ │ ├── dust.png │ │ │ │ ├── few-showers.png │ │ │ │ ├── fog.png │ │ │ │ ├── freezing-drizzle.png │ │ │ │ ├── freezing-rain.png │ │ │ │ ├── hot.png │ │ │ │ ├── light-snow.png │ │ │ │ ├── mostly-cloudy-day.png │ │ │ │ ├── mostly-cloudy-night.png │ │ │ │ ├── partly-cloudy-day.png │ │ │ │ ├── partly-cloudy-night.png │ │ │ │ ├── rain-and-sleet.png │ │ │ │ ├── rain-and-snow.png │ │ │ │ ├── rain.png │ │ │ │ ├── scattered-showers.png │ │ │ │ ├── scattered-thunder.png │ │ │ │ ├── scattered-thundershowers.png │ │ │ │ ├── sleet.png │ │ │ │ ├── snow-and-sleet.png │ │ │ │ ├── snow-flurries.png │ │ │ │ ├── snow-showers.png │ │ │ │ ├── snow.png │ │ │ │ ├── storm.png │ │ │ │ ├── sunny.png │ │ │ │ ├── thunder.png │ │ │ │ ├── thundershower.png │ │ │ │ ├── unknown.png │ │ │ │ └── wind.png │ │ │ └── light │ │ │ │ ├── blowing-snow.png │ │ │ │ ├── clear-night.png │ │ │ │ ├── cloudy.png │ │ │ │ ├── dust.png │ │ │ │ ├── few-showers.png │ │ │ │ ├── fog.png │ │ │ │ ├── freezing-drizzle.png │ │ │ │ ├── freezing-rain.png │ │ │ │ ├── hot.png │ │ │ │ ├── light-snow.png │ │ │ │ ├── mostly-cloudy-day.png │ │ │ │ ├── mostly-cloudy-night.png │ │ │ │ ├── partly-cloudy-day.png │ │ │ │ ├── partly-cloudy-night.png │ │ │ │ ├── rain-and-sleet.png │ │ │ │ ├── rain-and-snow.png │ │ │ │ ├── rain.png │ │ │ │ ├── scattered-showers.png │ │ │ │ ├── scattered-thunder.png │ │ │ │ ├── scattered-thundershowers.png │ │ │ │ ├── sleet.png │ │ │ │ ├── snow-and-sleet.png │ │ │ │ ├── snow-flurries.png │ │ │ │ ├── snow-showers.png │ │ │ │ ├── snow.png │ │ │ │ ├── storm.png │ │ │ │ ├── sunny.png │ │ │ │ ├── thunder.png │ │ │ │ ├── thundershower.png │ │ │ │ ├── unknown.png │ │ │ │ └── wind.png │ │ │ └── layouts │ │ │ ├── example.css │ │ │ ├── example.html │ │ │ ├── example.js │ │ │ └── readme.txt │ ├── items │ │ ├── anemometer.items │ │ ├── basement.items │ │ ├── ble_hub.items │ │ ├── electricity.items │ │ ├── garage.items │ │ ├── homeautomation.items │ │ ├── homeautomation.items.old │ │ ├── mailbox.items │ │ ├── manon.items │ │ ├── readme.txt │ │ ├── salon.items │ │ ├── watermeter.items │ │ ├── weather.items │ │ └── windvane.items │ ├── misc │ │ └── exec.whitelist │ ├── persistence │ │ └── readme.txt │ ├── rules │ │ ├── anemometer.rules │ │ ├── ble_hub.rules │ │ ├── derog.rules │ │ ├── fishfeeder.rules_old │ │ ├── garagesensor.rules │ │ ├── mailbox.rules │ │ ├── pressure.rules │ │ ├── raingauge.rules │ │ ├── readme.txt │ │ ├── watermeter.rules │ │ └── windvane.rules │ ├── scripts │ │ └── readme.txt │ ├── services │ │ ├── addons.cfg │ │ ├── http.cfg │ │ ├── mqtt-eventbus.cfg │ │ ├── mqtt.cfg │ │ ├── readme.txt │ │ └── runtime.cfg │ ├── sitemaps │ │ ├── homeautomation.sitemap │ │ └── readme.txt │ ├── things │ │ ├── mqtt.things │ │ └── weather.things │ └── transform │ │ ├── boiler_state.map │ │ ├── de.map │ │ ├── door_state.map │ │ ├── en.map │ │ ├── getAlarmMgt.js │ │ ├── getAwayMode.js │ │ ├── getBattery.js │ │ ├── getBoilerLastInfo.js │ │ ├── getBoilerLastOnDuration.js │ │ ├── getBoilerState.js │ │ ├── getBoilerTemp.js │ │ ├── getCaveExtractor.js │ │ ├── getCaveHumi.js │ │ ├── getCaveTemp.js │ │ ├── getConsoInst.js │ │ ├── getCurrentTemp.js │ │ ├── getHeaterState.js │ │ ├── getHeureCreuse.js │ │ ├── getHeurePleine.js │ │ ├── getHueMotionEvent.js │ │ ├── getHumidity.js │ │ ├── getMgtAutoMode.js │ │ ├── getNextBill.js │ │ ├── getNextChange.js │ │ ├── getNextRSClose.js │ │ ├── getNextRSOpen.js │ │ ├── getProgTemp.js │ │ ├── getRSMgt.js │ │ ├── getRSNorthState.js │ │ ├── getRSWestState.js │ │ ├── getRaingaugeVcc.js │ │ ├── getRssi.js │ │ ├── getSensorLastInfo.js │ │ ├── getSensorState.js │ │ ├── getWantedTemp.js │ │ ├── heater_state.map │ │ ├── readme.txt │ │ ├── rs_state.map │ │ ├── sensor_state.map │ │ ├── setAlarmMgt.js │ │ ├── setAlarmMode.js │ │ ├── setAwayMode.js │ │ ├── setMgtAutoMode.js │ │ ├── setRSMgt.js │ │ ├── setRSNorthAction.js │ │ └── setRSWestAction.js ├── docker │ ├── docker-compose.yml │ ├── openhab_dockerrun │ └── openhab_dockerstop └── install │ ├── crontab │ └── restart_openhab │ ├── prerequisite │ ├── readme.txt │ └── restart_openhab ├── postgresql ├── docker │ ├── docker-entry-point.sh │ ├── postgresql_dockerbuild │ ├── postgresql_dockerfile │ └── postgresql_dockerrun └── install │ ├── prerequisite │ └── readme.txt └── tomcat ├── cmd └── deploy.sh ├── docker ├── docker-entry-point.sh ├── tomcat_dockerbuild ├── tomcat_dockerfile └── tomcat_dockerrun └── install └── prerequisite /automationserver/ASBusiness/src/main/java/fr/guiet/automationserver/business/HomeModeState.java: -------------------------------------------------------------------------------- 1 | package fr.guiet.automationserver.business; 2 | 3 | public enum HomeModeState { 4 | NOTACTIVED, 5 | HOME, 6 | WORK 7 | } -------------------------------------------------------------------------------- /automationserver/ASBusiness/src/main/java/fr/guiet/automationserver/business/RollerShutterState.java: -------------------------------------------------------------------------------- 1 | package fr.guiet.automationserver.business; 2 | 3 | public enum RollerShutterState { 4 | VOID, 5 | OPENED, 6 | CLOSED, 7 | UNDETERMINED, 8 | UNREACHABLE, 9 | ERROR 10 | } -------------------------------------------------------------------------------- /automationserver/ASBusiness/src/main/java/fr/guiet/automationserver/business/helper/ParseUtils.java: -------------------------------------------------------------------------------- 1 | package fr.guiet.automationserver.business.helper; 2 | 3 | public class ParseUtils { 4 | 5 | public static Float tryFloatParse(String value) { 6 | Float retVal; 7 | try { 8 | retVal = Float.parseFloat(value); 9 | } catch (NumberFormatException nfe) { 10 | retVal = null; // or null if that is your preference 11 | } 12 | return retVal; 13 | } 14 | 15 | public static Integer tryIntParse(String value) { 16 | Integer retVal; 17 | try { 18 | retVal = Integer.parseInt(value); 19 | } catch (NumberFormatException nfe) { 20 | retVal = null; // or null if that is your preference 21 | } 22 | return retVal; 23 | } 24 | } -------------------------------------------------------------------------------- /automationserver/ASBusiness/src/main/java/fr/guiet/automationserver/business/helper/PinState.java: -------------------------------------------------------------------------------- 1 | package fr.guiet.automationserver.business.helper; 2 | 3 | public enum PinState { 4 | HIGH, LOW 5 | } -------------------------------------------------------------------------------- /automationserver/ASBusiness/src/main/java/fr/guiet/automationserver/business/sensor/EnvironmentalSensor.java: -------------------------------------------------------------------------------- 1 | package fr.guiet.automationserver.business.sensor; 2 | 3 | import fr.guiet.automationserver.business.service.SMSGammuService; 4 | 5 | import fr.guiet.automationserver.business.service.IMqttable; 6 | 7 | public abstract class EnvironmentalSensor extends Sensor implements IMqttable { 8 | 9 | /* 10 | * Environmental Sensor handles at least one property : temperature 11 | */ 12 | protected Float _temperature = null; 13 | 14 | /* 15 | * Constructor 16 | */ 17 | public EnvironmentalSensor(long id, String name, String mqtt_topic, String influxDbMeasurement, 18 | SMSGammuService smsGammuService) { 19 | super(id, name, mqtt_topic, influxDbMeasurement, smsGammuService); 20 | } 21 | 22 | public Float getTemperature() { 23 | if (this.isOperational()) 24 | return _temperature; 25 | else 26 | return null; 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /automationserver/ASBusiness/src/main/java/fr/guiet/automationserver/business/sensor/ReedswitchState.java: -------------------------------------------------------------------------------- 1 | package fr.guiet.automationserver.business.sensor; 2 | 3 | public enum ReedswitchState { 4 | VOID, 5 | OPEN, 6 | CLOSE 7 | } -------------------------------------------------------------------------------- /automationserver/ASBusiness/src/main/java/fr/guiet/automationserver/business/service/AbstractAutomationService.java: -------------------------------------------------------------------------------- 1 | package fr.guiet.automationserver.business.service; 2 | 3 | import java.util.ArrayList; 4 | import org.apache.logging.log4j.Logger; 5 | 6 | import fr.guiet.automationserver.business.sensor.Sensor; 7 | 8 | public abstract class AbstractAutomationService implements Runnable { 9 | 10 | //Logger 11 | protected Logger _logger; 12 | 13 | //Service name 14 | private String _name; 15 | 16 | private boolean _isThreadCompliant = false; 17 | 18 | //Sensors 19 | private ArrayList _sensorList = new ArrayList(); 20 | 21 | //Constructor 22 | public AbstractAutomationService(String name, boolean isThreadCompliant, Logger logger) { 23 | 24 | _name = name; 25 | _isThreadCompliant = isThreadCompliant; 26 | _logger = logger; 27 | 28 | _logger.info("Constructing " + _name + " service..."); 29 | } 30 | 31 | protected void addSensor(Sensor sensor) { 32 | _sensorList.add(sensor); 33 | } 34 | 35 | protected ArrayList getSensors() { 36 | return _sensorList; 37 | } 38 | 39 | //Mqtt client (ie Sensors manage by this service) 40 | abstract ArrayList getMqttableClients(); 41 | 42 | public boolean IsThreadCompliant() { 43 | return _isThreadCompliant; 44 | } 45 | 46 | public void run() { 47 | _logger.info("Starting " + _name + " service..."); 48 | } 49 | 50 | //Stop service properly 51 | public void StopService() { 52 | 53 | for(Sensor s : _sensorList) { 54 | s.stop(); 55 | } 56 | } 57 | 58 | } -------------------------------------------------------------------------------- /automationserver/ASBusiness/src/main/java/fr/guiet/automationserver/business/service/IMqttable.java: -------------------------------------------------------------------------------- 1 | package fr.guiet.automationserver.business.service; 2 | 3 | import java.util.ArrayList; 4 | 5 | public interface IMqttable { 6 | 7 | boolean ProcessMqttMessage(String topic, String message); 8 | ArrayList getTopics(); 9 | } -------------------------------------------------------------------------------- /automationserver/ASBusiness/src/main/java/fr/guiet/automationserver/business/service/OutsideEnvironmentalService.java: -------------------------------------------------------------------------------- 1 | package fr.guiet.automationserver.business.service; 2 | 3 | import java.util.ArrayList; 4 | 5 | import org.apache.logging.log4j.LogManager; 6 | 7 | import fr.guiet.automationserver.business.sensor.DS18B20_Sensor; 8 | import fr.guiet.automationserver.business.sensor.EnvironmentalSensor; 9 | import fr.guiet.automationserver.business.sensor.Sensor; 10 | import fr.guiet.automationserver.dataaccess.DbManager; 11 | import fr.guiet.automationserver.dto.SensorDto; 12 | 13 | public class OutsideEnvironmentalService extends AbstractAutomationService { 14 | 15 | //private EnvironmentalSensor _ds18b20_outside_sensor; 16 | private DbManager _dbManager = null; 17 | private final long DS18B20_GARAGE_SENSOR_ID = 14; 18 | 19 | public ArrayList getMqttableClients() { 20 | 21 | ArrayList m = new ArrayList(); 22 | 23 | for(Sensor s : getSensors()) { 24 | if (s instanceof IMqttable) { 25 | _logger.info("Add IMqttable sensor"); 26 | m.add((IMqttable) s); 27 | } 28 | } 29 | 30 | return m; 31 | } 32 | 33 | public OutsideEnvironmentalService(String name, SMSGammuService gammuService) { 34 | 35 | super(name, false, LogManager.getLogger(OutsideEnvironmentalService.class)); 36 | 37 | _dbManager = new DbManager(); 38 | SensorDto sensorDto = _dbManager.getSensorById(DS18B20_GARAGE_SENSOR_ID); 39 | EnvironmentalSensor _ds18b20_outside_sensor = DS18B20_Sensor.LoadFromDto(sensorDto, gammuService); 40 | 41 | addSensor(_ds18b20_outside_sensor); 42 | } 43 | 44 | @Override 45 | public void run() { 46 | 47 | super.run(); 48 | 49 | // TODO Auto-generated method stub 50 | } 51 | 52 | } -------------------------------------------------------------------------------- /automationserver/ASDataAccess/src/main/java/fr/guiet/automationserver/dataaccess/C3P0DataSource.java: -------------------------------------------------------------------------------- 1 | package fr.guiet.automationserver.dataaccess; 2 | 3 | import java.beans.PropertyVetoException; 4 | import java.sql.Connection; 5 | import java.sql.SQLException; 6 | 7 | import com.mchange.v2.c3p0.ComboPooledDataSource; 8 | 9 | //TODO : To replace by DBCP Component 10 | public class C3P0DataSource { 11 | 12 | private static C3P0DataSource _dataSource; 13 | private ComboPooledDataSource _comboPooledDataSource; 14 | 15 | private C3P0DataSource(String jdbcUrl, String user, String password) { 16 | try { 17 | _comboPooledDataSource = new ComboPooledDataSource(); 18 | _comboPooledDataSource 19 | .setDriverClass("org.postgresql.Driver"); 20 | _comboPooledDataSource 21 | .setJdbcUrl(jdbcUrl); 22 | _comboPooledDataSource.setUser(user); 23 | _comboPooledDataSource.setPassword(password); 24 | 25 | _comboPooledDataSource.setMinPoolSize(5); 26 | _comboPooledDataSource.setAcquireIncrement(5); 27 | _comboPooledDataSource.setMaxPoolSize(20); 28 | } 29 | catch (PropertyVetoException ex1) { 30 | ex1.printStackTrace(); 31 | } 32 | } 33 | 34 | public static synchronized C3P0DataSource getInstance(String jdbcUrl, String user, String password) { 35 | if (_dataSource == null) 36 | _dataSource = new C3P0DataSource(jdbcUrl, user, password); 37 | return _dataSource; 38 | } 39 | 40 | public Connection getConnection() { 41 | Connection con = null; 42 | try { 43 | con = _comboPooledDataSource.getConnection(); 44 | } catch (SQLException e) { 45 | e.printStackTrace(); 46 | } 47 | return con; 48 | } 49 | } -------------------------------------------------------------------------------- /automationserver/ASLoraWAN/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | -------------------------------------------------------------------------------- /automationserver/ASLoraWAN/.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding//src/main/java=UTF-8 3 | -------------------------------------------------------------------------------- /automationserver/ASLoraWAN/.settings/org.eclipse.m2e.core.prefs: -------------------------------------------------------------------------------- 1 | activeProfiles= 2 | eclipse.preferences.version=1 3 | resolveWorkspaceProjects=true 4 | version=1 5 | -------------------------------------------------------------------------------- /automationserver/ASLoraWAN/pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | 5 | 6 | automationserver-parent 7 | fr.guiet.automationserver 8 | 0.0.1-SNAPSHOT 9 | ../ASParent 10 | 11 | 12 | automationserver-lorawan 13 | Automation Server LoRaWAN Helper 14 | Automation Server LoRaWAN Helper 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | org.apache.maven.plugins 27 | maven-compiler-plugin 28 | ${plugin.compiler.version} 29 | 30 | ${encoding.sources} 31 | ${java.version} 32 | ${java.version} 33 | ${java.version} 34 | true 35 | false 36 | true 37 | true 38 | true 39 | true 40 | 512m 41 | 42 | 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /automationserver/ASLoraWAN/src/main/java/be/romaincambier/lorawan/Binarizable.java: -------------------------------------------------------------------------------- 1 | /* 2 | * The MIT License 3 | * 4 | * Copyright 2016 Romain Cambier . 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in 14 | * all copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | * THE SOFTWARE. 23 | */ 24 | package be.romaincambier.lorawan; 25 | 26 | import be.romaincambier.lorawan.exceptions.MalformedPacketException; 27 | import java.nio.ByteBuffer; 28 | 29 | /** 30 | * 31 | * @author Romain Cambier 32 | */ 33 | public interface Binarizable { 34 | 35 | public void binarize(ByteBuffer _bb) throws MalformedPacketException; 36 | 37 | public int length(); 38 | } 39 | -------------------------------------------------------------------------------- /automationserver/ASLoraWAN/src/main/java/be/romaincambier/lorawan/Direction.java: -------------------------------------------------------------------------------- 1 | /* 2 | * The MIT License 3 | * 4 | * Copyright 2016 Romain Cambier . 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in 14 | * all copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | * THE SOFTWARE. 23 | */ 24 | package be.romaincambier.lorawan; 25 | 26 | /** 27 | * 28 | * @author Romain Cambier 29 | */ 30 | public enum Direction { 31 | 32 | DOWN(1), 33 | UP(0); 34 | 35 | private final byte value; 36 | 37 | private Direction(int _i) { 38 | value = (byte) _i; 39 | } 40 | 41 | public byte value() { 42 | return value; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /automationserver/ASMain/src/assembly/assembly.xml: -------------------------------------------------------------------------------- 1 | 2 | bin 3 | 4 | dir 5 | 6 | false 7 | 8 | 9 | ${project.build.directory} 10 | lib 11 | 12 | *.jar 13 | 14 | 15 | 16 | src/main/resources 17 | lib/config 18 | 19 | *.xml 20 | 21 | 22 | 23 | src/main/resources 24 | lib/config 25 | 26 | *.properties 27 | 28 | 29 | 30 | 31 | 35 | 36 | 37 | 38 | lib 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /automationserver/ASModel/src/main/java/fr/guiet/automationserver/dto/HeaterDto.java: -------------------------------------------------------------------------------- 1 | package fr.guiet.automationserver.dto; 2 | 3 | /** 4 | * Heater DTO 5 | * Represents information about a heater 6 | * 7 | * @author guiet 8 | * 9 | */ 10 | public class HeaterDto { 11 | 12 | //TODO : refactor dto (suppress direct property access) 13 | public long heaterId; 14 | public int currentConsumption; 15 | public int phase; 16 | public int raspberryPin; 17 | public String name; 18 | } -------------------------------------------------------------------------------- /automationserver/ASModel/src/main/java/fr/guiet/automationserver/dto/RoomDto.java: -------------------------------------------------------------------------------- 1 | package fr.guiet.automationserver.dto; 2 | 3 | /** 4 | * Room DTO 5 | * 6 | * @author guiet 7 | * 8 | */ 9 | public class RoomDto { 10 | public long id; 11 | public String name; 12 | public String mqttTopic; 13 | } -------------------------------------------------------------------------------- /automationserver/ASModel/src/main/java/fr/guiet/automationserver/dto/SMSDto.java: -------------------------------------------------------------------------------- 1 | package fr.guiet.automationserver.dto; 2 | 3 | /** 4 | * SMS DTO 5 | * 6 | * @author guiet 7 | * 8 | */ 9 | public class SMSDto { 10 | 11 | private String _recipient; 12 | private String _message; 13 | private String _messageId; 14 | 15 | public SMSDto(String messageId) { 16 | _messageId = messageId; 17 | } 18 | 19 | public String getId() { 20 | return _messageId; 21 | } 22 | 23 | public String getRecipient() { 24 | return _recipient; 25 | } 26 | public void setRecipient(String recipient) { 27 | this._recipient = recipient; 28 | } 29 | 30 | public String getMessage() { 31 | return _message; 32 | } 33 | 34 | public void setMessage(String message) { 35 | this._message = message; 36 | } 37 | 38 | 39 | } -------------------------------------------------------------------------------- /automationserver/ASModel/src/main/java/fr/guiet/automationserver/dto/SensorDto.java: -------------------------------------------------------------------------------- 1 | package fr.guiet.automationserver.dto; 2 | 3 | /** 4 | * Sensor DTO 5 | * 6 | * @author guiet 7 | * 8 | */ 9 | public class SensorDto { 10 | 11 | public long sensorId; 12 | public String sensorAddress; 13 | public String name; 14 | public int firmware_version; 15 | public String mqtt_topic; 16 | public String influxDbMeasurement; 17 | //Room linked to this sensor 18 | public long roomId; 19 | } -------------------------------------------------------------------------------- /automationserver/ASModel/src/main/java/fr/guiet/automationserver/dto/TeleInfoTrameDto.java: -------------------------------------------------------------------------------- 1 | package fr.guiet.automationserver.dto; 2 | 3 | /** 4 | * Teleinfo DTO 5 | * 6 | * @author guiet 7 | * 8 | */ 9 | public class TeleInfoTrameDto { 10 | public String ADCO; 11 | public String OPTARIF; 12 | public short ISOUSC; 13 | public int HCHC; 14 | public int HCHP; 15 | public String PTEC; 16 | public short IINST1; 17 | public short IINST2; 18 | public short IINST3; 19 | public short IMAX1; 20 | public short IMAX2; 21 | public short IMAX3; 22 | public int PMAX; 23 | public int PAPP; 24 | public String HHPHC; 25 | public String MOTDETAT; 26 | public String PPOT; 27 | } -------------------------------------------------------------------------------- /automationserver/ASTests/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | /src/main/resources/automationserver.properties 3 | -------------------------------------------------------------------------------- /automationserver/ASTests/src/assembly/assembly.xml: -------------------------------------------------------------------------------- 1 | 2 | bin 3 | 4 | dir 5 | 6 | false 7 | 8 | 9 | ${project.build.directory} 10 | lib 11 | 12 | *.jar 13 | 14 | 15 | 16 | src/main/resources 17 | lib/config 18 | 19 | *.xml 20 | 21 | 22 | 23 | 24 | 28 | 29 | 30 | 31 | lib 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /automationserver/ASTests/src/main/java/fr/guiet/automationserver/databases/InfluxdbTests.java: -------------------------------------------------------------------------------- 1 | package fr.guiet.automationserver.databases; 2 | 3 | import org.json.JSONObject; 4 | 5 | import fr.guiet.automationserver.dataaccess.DbManager; 6 | 7 | public class InfluxdbTests { 8 | public static void main(String args[]) { 9 | 10 | 11 | DbManager dbManager = new DbManager(); 12 | JSONObject json = dbManager.GetWaterMeterInfo(); 13 | 14 | //List dtoList = dbManager.getTempSchedule(); 15 | 16 | 17 | 18 | //System.out.println(ja); 19 | 20 | 21 | } 22 | } -------------------------------------------------------------------------------- /automationserver/ASTests/src/main/java/fr/guiet/automationserver/various/ClasspathTests.java: -------------------------------------------------------------------------------- 1 | package fr.guiet.automationserver.various; 2 | 3 | import java.net.URISyntaxException; 4 | import java.nio.file.Path; 5 | import java.nio.file.Paths; 6 | 7 | public class ClasspathTests { 8 | public static void main(String args[]) { 9 | 10 | Path classpath; 11 | try { 12 | classpath = Paths.get(ClasspathTests.class.getProtectionDomain().getCodeSource().getLocation().toURI()); 13 | System.out.println("Class path : " + classpath); 14 | } catch (URISyntaxException e) { 15 | // TODO Auto-generated catch block 16 | e.printStackTrace(); 17 | } 18 | 19 | } 20 | } -------------------------------------------------------------------------------- /automationserver/ASTests/src/main/java/fr/guiet/automationserver/various/JsonTests.java: -------------------------------------------------------------------------------- 1 | package fr.guiet.automationserver.various; 2 | 3 | import org.json.JSONObject; 4 | 5 | public class JsonTests { 6 | 7 | 8 | public static void main(String args[]) { 9 | 10 | 11 | String message ="{\"applicationID\":\"2\",\"applicationName\":\"home-application\",\"deviceName\":\"watermeter-device\",\"devEUI\":\"qQfCJKaFvUM=\",\"rxInfo\":[{\"gatewayID\":\"3KYy//42XZw=\",\"time\":\"2021-05-16T12:07:13.077809Z\",\"timeSinceGPSEpoch\":\"1305202052.077s\",\"rssi\":-83,\"loRaSNR\":9,\"channel\":0,\"rfChain\":1,\"board\":0,\"antenna\":0,\"location\":{\"latitude\":0,\"longitude\":0,\"altitude\":0,\"source\":\"UNKNOWN\",\"accuracy\":0},\"fineTimestampType\":\"NONE\",\"context\":\"Ni1pkw==\",\"uplinkID\":\"9blz8UGZR8i0opkJFHZPVg==\",\"crcStatus\":\"CRC_OK\"}],\"txInfo\":{\"frequency\":868100000,\"modulation\":\"LORA\",\"loRaModulationInfo\":{\"bandwidth\":125,\"spreadingFactor\":7,\"codeRate\":\"4/5\",\"polarizationInversion\":false}},\"adr\":true,\"dr\":5,\"fCnt\":16872,\"fPort\":1,\"data\":\"MTkgMi43IDQuMTggMSAxODExOA==\",\"objectJSON\":\"{\\\"data\\\":\\\"19 2.7 4.18 1 18118\\\"}\",\"tags\":{},\"confirmedUplink\":false,\"devAddr\":\"JgER9A==\"}"; 12 | 13 | JSONObject json = new JSONObject(message); 14 | JSONObject jsonObj = new JSONObject(json.getString("objectJSON")); 15 | String data = jsonObj.getString("data"); 16 | 17 | System.out.println(data); 18 | 19 | } 20 | } -------------------------------------------------------------------------------- /automationserver/ASWebApp/src/main/java/fr/guiet/automationserver/api/AlarmAPI.java.old: -------------------------------------------------------------------------------- 1 | package fr.guiet.automationserver.api; 2 | 3 | import javax.ws.rs.GET; 4 | import javax.ws.rs.Path; 5 | import javax.ws.rs.core.Context; 6 | import javax.ws.rs.core.Response; 7 | import javax.ws.rs.core.UriInfo; 8 | import org.apache.logging.log4j.LogManager; 9 | 10 | @Path("/alarm") 11 | public class AlarmAPI { 12 | 13 | private static Logger _logger = LogManager.getLogger(AlarmAPI.class); 14 | private static String _topic = "/guiet/api/alarm"; 15 | private static String _mqttClientId = "AlarmAPIClientId"; 16 | 17 | @GET 18 | public Response sendMsg(@Context UriInfo info) { 19 | 20 | 21 | String action = info.getQueryParameters().getFirst("action"); 22 | 23 | //_logger.info("Received Google Assistant Message : "+msg); 24 | 25 | //String [] messageContent = msg.split(";"); 26 | 27 | //if (messageContent != null && messageContent.length > 0) { 28 | //String action = messageContent[0]; 29 | 30 | switch(action) { 31 | case "SETALARM": 32 | 33 | String mode = info.getQueryParameters().getFirst("mode"); 34 | 35 | _logger.info("AlarmAPI receives action request : " + action + ", mode : "+mode); 36 | 37 | String message = action + ";" + mode; 38 | 39 | 40 | MqttClientHelper rtt = new MqttClientHelper(_mqttClientId); 41 | rtt.SendMsg(_topic, message); 42 | 43 | break; 44 | } 45 | 46 | 47 | 48 | return Response.ok().build(); 49 | 50 | } 51 | 52 | 53 | } 54 | -------------------------------------------------------------------------------- /automationserver/ASWebApp/src/main/java/fr/guiet/automationserver/api/RoomAPI.java.old: -------------------------------------------------------------------------------- 1 | package fr.guiet.automationserver.api; 2 | 3 | import javax.ws.rs.GET; 4 | import javax.ws.rs.Path; 5 | import javax.ws.rs.core.Context; 6 | import javax.ws.rs.core.Response; 7 | import javax.ws.rs.core.UriInfo; 8 | 9 | import org.apache.logging.log4j.LogManager; 10 | 11 | import fr.guiet.automationserver.business.helper.MqttClientHelper; 12 | 13 | @Path("/room") 14 | public class RoomAPI { 15 | 16 | private static Logger _logger = LogManager.getLogger(RoomAPI.class); 17 | private static String _topic = "/guiet/api/home"; 18 | private static String _mqttClientId = "RoomAPIClientId"; 19 | 20 | @GET 21 | public Response sendMsg(@Context UriInfo info) { 22 | 23 | 24 | String action = info.getQueryParameters().getFirst("action"); 25 | 26 | //_logger.info("Received Google Assistant Message : "+msg); 27 | 28 | //String [] messageContent = msg.split(";"); 29 | 30 | //if (messageContent != null && messageContent.length > 0) { 31 | //String action = messageContent[0]; 32 | 33 | switch(action) { 34 | case "SETROOMTEMP": 35 | 36 | String roomId = info.getQueryParameters().getFirst("roomId"); 37 | String temp = info.getQueryParameters().getFirst("temp"); 38 | 39 | _logger.info("RoomAPI receives action request : " + action + ", roomId : "+roomId+", temperature :"+temp); 40 | 41 | String message = action + ";" + roomId + ";" + temp; 42 | 43 | MqttClientHelper rtt = new MqttClientHelper(_mqttClientId); 44 | rtt.SendMsg(_topic, message); 45 | 46 | break; 47 | } 48 | 49 | 50 | 51 | return Response.ok().build(); 52 | 53 | } 54 | 55 | 56 | } 57 | -------------------------------------------------------------------------------- /automationserver/ASWebApp/src/main/webapp/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | RESTful CRUD Example 7 | 8 | 9 | jerseyServlet 10 | com.sun.jersey.spi.container.servlet.ServletContainer 11 | 12 | com.sun.jersey.config.property.packages 13 | fr.guiet.automationserver 14 | 15 | 16 | jersey.config.server.provider.packages 17 | 18 | com.fasterxml.jackson.jaxrs.json 19 | 20 | 21 | 22 | jersey.config.server.disableMoxyJson 23 | true 24 | 25 | 1 26 | 27 | 28 | jerseyServlet 29 | /api/* 30 | 31 | 32 | -------------------------------------------------------------------------------- /automationserver/ASWebApp/src/main/webapp/resources/css/areas/icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/automationserver/ASWebApp/src/main/webapp/resources/css/areas/icons.png -------------------------------------------------------------------------------- /automationserver/ASWebApp/src/main/webapp/resources/css/navigator_8.css: -------------------------------------------------------------------------------- 1 | /* navigator styles */ 2 | 3 | .navigator_8_main { 4 | font-family: Segoe UI Light,Segoe UI,Arial,Helvetica,Verdana,Sans Serif; 5 | } 6 | 7 | 8 | .navigator_8_main 9 | { 10 | border-left: 1px solid #A0A0A0; 11 | border-right: 1px solid #A0A0A0; 12 | border-bottom: 1px solid #A0A0A0; 13 | background-color: white; 14 | color: #000000; 15 | } 16 | 17 | .navigator_8_month { 18 | font-size: 8pt; 19 | /*border: 1px solid black;*/ 20 | } 21 | .navigator_8_day { 22 | text-align: center; 23 | color: black; 24 | /*background-color: white;*/ 25 | } 26 | .navigator_8_weekend { 27 | background-color: #f0f0f0; 28 | } 29 | .navigator_8_dayheader { 30 | text-align: center; 31 | color: black; 32 | } 33 | 34 | .navigator_8_weeknumber { 35 | text-align: center; 36 | } 37 | 38 | .navigator_8_line 39 | { 40 | border-bottom: 1px solid #A0A0A0; 41 | } 42 | 43 | .navigator_8_dayother { 44 | color: gray; 45 | } 46 | .navigator_8_todaybox 47 | { 48 | border: 1px solid red; 49 | } 50 | 51 | .navigator_8_select 52 | { 53 | background-color: #FFE794; 54 | } 55 | .navigator_8_title, .navigator_8_titleleft, .navigator_8_titleright { 56 | text-align: center; 57 | border-top: 1px solid #A0A0A0; 58 | 59 | color: #ffffff; 60 | background: #646464; 61 | 62 | -ms-transition: background-color .3s linear; 63 | -moz-transition: background-color .3s linear; 64 | -webkit-transition: background-color .3s linear; 65 | transition: background-color .3s linear; 66 | } 67 | .navigator_8_busy { 68 | font-weight: bold; 69 | } 70 | -------------------------------------------------------------------------------- /automationserver/ASWebApp/src/main/webapp/resources/css/navigator_blue.css: -------------------------------------------------------------------------------- 1 | /* navigator */ 2 | 3 | .navigator_blue_main 4 | { 5 | xborder-left: 1px solid #A0A0A0; 6 | xborder-right: 1px solid #A0A0A0; 7 | xborder-bottom: 1px solid #A0A0A0; 8 | background-color: white; 9 | color: #000000; 10 | } 11 | 12 | .navigator_blue_month { 13 | font-family: Tahoma; 14 | font-size: 8pt; 15 | /*border: 1px solid black;*/ 16 | } 17 | .navigator_blue_day { 18 | color: black; 19 | text-align: center; 20 | /*background-color: white;*/ 21 | } 22 | .navigator_blue_weekend { 23 | background-color: #f0f0f0; 24 | } 25 | .navigator_blue_dayheader { 26 | text-align: center; 27 | color: black; 28 | } 29 | 30 | .navigator_blue_weeknumber { 31 | text-align: center; 32 | } 33 | 34 | .navigator_blue_line 35 | { 36 | xborder-bottom: 1px solid #A0A0A0; 37 | } 38 | 39 | .navigator_blue_dayother { 40 | color: gray; 41 | } 42 | .navigator_blue_todaybox 43 | { 44 | border: 1px solid red; 45 | } 46 | 47 | .navigator_blue_select 48 | { 49 | background-color: #6b9cad; 50 | color: #fff; 51 | } 52 | .navigator_blue_title, .navigator_blue_titleleft, .navigator_blue_titleright { 53 | text-align: center; 54 | xborder-top: 1px solid #A0A0A0; 55 | color: #000; 56 | font-weight: bold; 57 | 58 | } 59 | .navigator_blue_busy { 60 | font-weight: bold; 61 | } 62 | -------------------------------------------------------------------------------- /automationserver/ASWebApp/src/main/webapp/resources/css/navigator_g.css: -------------------------------------------------------------------------------- 1 | /* navigator styles */ 2 | 3 | .navigator_g_main 4 | { 5 | font-family: Arial, Sans-Serif; 6 | font-size: 12px; 7 | background-color: white; 8 | color: #000000; 9 | } 10 | 11 | .navigator_g_month { 12 | } 13 | .navigator_g_day { 14 | text-align: center; 15 | color: black; 16 | } 17 | .navigator_g_day:hover 18 | { 19 | background-color: #f1f1f1; 20 | } 21 | .navigator_g_weekend { 22 | } 23 | .navigator_g_dayheader { 24 | text-align: center; 25 | color: black; 26 | } 27 | 28 | .navigator_g_weeknumber { 29 | text-align: center; 30 | } 31 | 32 | .navigator_g_line 33 | { 34 | } 35 | 36 | .navigator_g_dayother { 37 | color: gray; 38 | } 39 | .navigator_g_todaybox 40 | { 41 | border: 1px solid #999; 42 | } 43 | 44 | .navigator_g_select 45 | { 46 | background-color: #f1f1f1; 47 | } 48 | .navigator_g_title, .navigator_g_titleleft, .navigator_g_titleright { 49 | text-align: center; 50 | color: #222; 51 | background: #fff; 52 | } 53 | .navigator_g_busy { 54 | font-weight: bold; 55 | } 56 | -------------------------------------------------------------------------------- /automationserver/ASWebApp/src/main/webapp/resources/css/navigator_green.css: -------------------------------------------------------------------------------- 1 | /* navigator styles */ 2 | 3 | .navigator_green_main 4 | { 5 | border-left: 1px solid #A0A0A0; 6 | border-right: 1px solid #A0A0A0; 7 | border-bottom: 1px solid #A0A0A0; 8 | background-color: white; 9 | color: #000000; 10 | } 11 | 12 | .navigator_green_month { 13 | font-family: Tahoma; 14 | font-size: 8pt; 15 | /*border: 1px solid black;*/ 16 | } 17 | .navigator_green_day { 18 | color: black; 19 | text-align: center; 20 | /*background-color: white;*/ 21 | } 22 | .navigator_green_weekend { 23 | background-color: #f0f0f0; 24 | } 25 | .navigator_green_dayheader { 26 | color: black; 27 | text-align: center; 28 | } 29 | 30 | .navigator_green_weeknumber { 31 | text-align: center; 32 | } 33 | 34 | .navigator_green_line 35 | { 36 | border-bottom: 1px solid #A0A0A0; 37 | } 38 | 39 | .navigator_green_dayother { 40 | color: gray; 41 | } 42 | .navigator_green_todaybox 43 | { 44 | border: 1px solid red; 45 | } 46 | 47 | .navigator_green_select 48 | { 49 | background-color: #ddd; 50 | } 51 | .navigator_green_title, .navigator_green_titleleft, .navigator_green_titleright { 52 | text-align: center; 53 | border-top: 1px solid #A0A0A0; 54 | 55 | color: #ffffff; 56 | background: #666; 57 | background: -moz-linear-gradient( 58 | top, 59 | #777 0%, 60 | #666); 61 | background: -webkit-gradient( 62 | linear, left top, left bottom, 63 | from(#777), 64 | to(#666)); 65 | filter: progid:DXImageTransform.Microsoft.Gradient(startColorStr="#777777", endColorStr="#666666"); 66 | text-shadow: 67 | 0px -1px 1px rgba(000,000,000,0.2), 68 | 0px 1px 0px rgba(255,255,255,0.3); 69 | 70 | } 71 | .navigator_green_busy { 72 | font-weight: bold; 73 | } 74 | -------------------------------------------------------------------------------- /automationserver/ASWebApp/src/main/webapp/resources/css/navigator_transparent.css: -------------------------------------------------------------------------------- 1 | /* navigator styles */ 2 | 3 | .navigator_transparent_main 4 | { 5 | border-left: 1px solid #A0A0A0; 6 | border-right: 1px solid #A0A0A0; 7 | border-bottom: 1px solid #A0A0A0; 8 | background-color: white; 9 | color: #000000; 10 | } 11 | 12 | .navigator_transparent_month { 13 | font-family: Tahoma; 14 | font-size: 8pt; 15 | /*border: 1px solid black;*/ 16 | } 17 | .navigator_transparent_day { 18 | color: black; 19 | text-align: center; 20 | /*background-color: white;*/ 21 | } 22 | .navigator_transparent_weekend { 23 | background-color: #f0f0f0; 24 | } 25 | .navigator_transparent_dayheader { 26 | color: black; 27 | text-align: center; 28 | } 29 | 30 | .navigator_transparent_weeknumber { 31 | text-align: center; 32 | } 33 | 34 | .navigator_transparent_line 35 | { 36 | border-bottom: 1px solid #A0A0A0; 37 | } 38 | 39 | .navigator_transparent_dayother { 40 | color: gray; 41 | } 42 | .navigator_transparent_todaybox 43 | { 44 | border: 1px solid red; 45 | } 46 | 47 | .navigator_transparent_select 48 | { 49 | background-color: #ddd; 50 | } 51 | .navigator_transparent_title, .navigator_transparent_titleleft, .navigator_transparent_titleright { 52 | text-align: center; 53 | border-top: 1px solid #A0A0A0; 54 | 55 | color: #666; 56 | background: #eeeeee; 57 | 58 | background: -moz-linear-gradient( 59 | top, 60 | #f3f3f3 0%, 61 | #e9e9e9); 62 | background: -webkit-gradient( 63 | linear, left top, left bottom, 64 | from(#f3f3f3), 65 | to(#e9e9e9)); 66 | filter: progid:DXImageTransform.Microsoft.Gradient(startColorStr="#f3f3f3", endColorStr="#e9e9e9"); 67 | 68 | } 69 | .navigator_transparent_busy { 70 | font-weight: bold; 71 | } 72 | -------------------------------------------------------------------------------- /automationserver/ASWebApp/src/main/webapp/resources/css/navigator_white.css: -------------------------------------------------------------------------------- 1 | /* navigator styles */ 2 | 3 | .navigator_white_main 4 | { 5 | border-left: 1px solid #A0A0A0; 6 | border-right: 1px solid #A0A0A0; 7 | border-bottom: 1px solid #A0A0A0; 8 | background-color: white; 9 | color: #000000; 10 | } 11 | 12 | .navigator_white_month { 13 | font-family: Tahoma; 14 | font-size: 8pt; 15 | /*border: 1px solid black;*/ 16 | } 17 | .navigator_white_day { 18 | color: black; 19 | text-align: center; 20 | /*background-color: white;*/ 21 | } 22 | .navigator_white_weekend { 23 | background-color: #f0f0f0; 24 | } 25 | .navigator_white_dayheader { 26 | color: black; 27 | text-align: center; 28 | } 29 | 30 | .navigator_white_weeknumber { 31 | text-align: center; 32 | } 33 | 34 | .navigator_white_line 35 | { 36 | border-bottom: 1px solid #A0A0A0; 37 | } 38 | 39 | .navigator_white_dayother { 40 | color: gray; 41 | } 42 | .navigator_white_todaybox 43 | { 44 | border: 1px solid red; 45 | } 46 | 47 | .navigator_white_select 48 | { 49 | background-color: #FFE794; 50 | } 51 | .navigator_white_title, .navigator_white_titleleft, .navigator_white_titleright { 52 | text-align: center; 53 | border-top: 1px solid #A0A0A0; 54 | 55 | color: #666; 56 | background: #eee; 57 | background: -moz-linear-gradient( 58 | top, 59 | #eee 0%, 60 | #ddd); 61 | background: -webkit-gradient( 62 | linear, left top, left bottom, 63 | from(#eee), 64 | to(#ddd)); 65 | filter: progid:DXImageTransform.Microsoft.Gradient(startColorStr="#eeeeee", endColorStr="#dddddd"); 66 | } 67 | .navigator_white_busy { 68 | font-weight: bold; 69 | } 70 | -------------------------------------------------------------------------------- /automationserver@.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Service de gestion de la domotique de notre home sweet home 3 | After=syslog.target network.target postgresql.service influxdb.service 4 | 5 | [Service] 6 | Type=forking 7 | User=root 8 | #PAMName=login 9 | #PIDFile=/home/fred/automationserver/%H:%i.pid 10 | #ExecStartPre=/home/fred/automationserver/cmd/stop_automationserver 11 | ExecStart=/home/fred/automationserver/cmd/start_automationserver 12 | ExecStop=/home/fred/automationserver/cmd/stop_automationserver 13 | 14 | [Install] 15 | WantedBy=multi-user.target 16 | -------------------------------------------------------------------------------- /doc/IMG_20170925_193103.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/doc/IMG_20170925_193103.jpg -------------------------------------------------------------------------------- /doc/P4J_BCM_Match.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/doc/P4J_BCM_Match.xlsx -------------------------------------------------------------------------------- /doc/Rpi1Gpio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/doc/Rpi1Gpio.png -------------------------------------------------------------------------------- /doc/Rpi3Gpio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/doc/Rpi3Gpio.png -------------------------------------------------------------------------------- /doc/custom_pins_on_early_boottime.txt: -------------------------------------------------------------------------------- 1 | Create custom device tree blob to configure Raspberry Pi pins on early boot time 2 | -------------------------------------------------------------------------------- 3 | 4 | I need that GPIO pins 2,3,4,5,6,7,8 be set to OUTPUT and HIGH and ACTIVATED at boot time 5 | 6 | To do so: 7 | 8 | Follow this tutorial : https://www.raspberrypi.org/documentation/configuration/pin-configuration.md 9 | 10 | 1. Get dt-blob.dts here : https://github.com/raspberrypi/firmware/edit/master/extra/dt-blob.dts 11 | 2. Add custom pins options to your raspberrypi model, mine is : pins_3b2 { // Pi 3 Model B rev 1.2 12 | 13 | pin@p2 { function = "output"; termination = "no_pulling"; drive_strength_mA = < 8 >; startup_state = "active";}; // pin2 14 | pin@p3 { function = "output"; termination = "no_pulling"; drive_strength_mA = < 8 >; startup_state = "active";}; // pin3 15 | pin@p4 { function = "output"; termination = "no_pulling"; drive_strength_mA = < 8 >; startup_state = "active";}; // pin4 16 | pin@p5 { function = "output"; termination = "no_pulling"; drive_strength_mA = < 8 >; startup_state = "active";}; // pin5 17 | pin@p6 { function = "output"; termination = "no_pulling"; drive_strength_mA = < 8 >; startup_state = "active";}; // pin6 18 | pin@p7 { function = "output"; termination = "no_pulling"; drive_strength_mA = < 8 >; startup_state = "active";}; // pin7 19 | pin@p8 { function = "output"; termination = "no_pulling"; drive_strength_mA = < 8 >; startup_state = "active";}; // pin8 20 | 21 | 3. Compile dt-blob.dts and reboot raspberrypi (may be install compiler with command : sudo apt-get install device-tree-compiler) 22 | 23 | sudo dtc -I dts -O dtb -o /boot/dt-blob.bin dt-blob.dts 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /doc/inside_enclosure_case.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/doc/inside_enclosure_case.jpg -------------------------------------------------------------------------------- /doc/outside_enclosure_case.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/doc/outside_enclosure_case.jpg -------------------------------------------------------------------------------- /doc/system_overview.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/doc/system_overview.jpg -------------------------------------------------------------------------------- /esp8266/firmware/AT0.51_SDK1.5/esp8266_at0.51_sdk1.5.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/esp8266/firmware/AT0.51_SDK1.5/esp8266_at0.51_sdk1.5.bin -------------------------------------------------------------------------------- /esp8266/firmware/AT0.51_SDK1.5/factory_reset.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo "Now you need to reset the module and connect GPIO0 to Ground" 3 | esptool.py --port /dev/ttyUSB0 write_flash 0x00000 esp8266_at0.51_sdk1.5.bin 4 | -------------------------------------------------------------------------------- /esp8266/firmware/AT1.3_SDK2.0/blank.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/esp8266/firmware/AT1.3_SDK2.0/blank.bin -------------------------------------------------------------------------------- /esp8266/firmware/AT1.3_SDK2.0/boot_v1.6.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/esp8266/firmware/AT1.3_SDK2.0/boot_v1.6.bin -------------------------------------------------------------------------------- /esp8266/firmware/AT1.3_SDK2.0/esp_init_data_default.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/esp8266/firmware/AT1.3_SDK2.0/esp_init_data_default.bin -------------------------------------------------------------------------------- /esp8266/firmware/AT1.3_SDK2.0/factory_reset.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo "Now you need to reset the module and connect GPIO0 to Ground" 3 | esptool.py --port /dev/ttyUSB0 write_flash 0x00000 boot_v1.6.bin 0x01000 user1.1024.new.2.bin 0x3fc000 esp_init_data_default.bin 0xfe000 blank.bin 0x3fe000 blank.bin 4 | -------------------------------------------------------------------------------- /esp8266/firmware/AT1.3_SDK2.0/user1.1024.new.2.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/esp8266/firmware/AT1.3_SDK2.0/user1.1024.new.2.bin -------------------------------------------------------------------------------- /kubernetes/docker/dnsmasq/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM balenalib/raspberry-pi:buster 2 | 3 | RUN apt-get clean && apt-get update && apt-get upgrade 4 | 5 | RUN apt-get -q -y install dnsmasq 6 | 7 | ADD ./conf/ /etc 8 | 9 | EXPOSE 53/udp 10 | 11 | CMD dnsmasq -k -------------------------------------------------------------------------------- /kubernetes/docker/dnsmasq/conf/dnsmasq.conf: -------------------------------------------------------------------------------- 1 | # run as root 2 | user=root 3 | 4 | # won't forward unqualified names (e.g. myserver) 5 | domain-needed 6 | 7 | # won't forward some non-routed addresses 8 | bogus-priv 9 | 10 | # 11 | expand-hosts 12 | 13 | # filter windows 14 | filterwin2k 15 | 16 | # configured to use Cloudflare then Google's public dns servers 17 | server=1.1.1.1 18 | server=8.8.8.8 19 | 20 | # use maximum cache size 21 | cache-size=10000 22 | 23 | # Domain 24 | domain=guiet.lan -------------------------------------------------------------------------------- /kubernetes/docker/dnsmasq/docker-build.sh: -------------------------------------------------------------------------------- 1 | docker build -t guiet/dnsmasq -f Dockerfile . -------------------------------------------------------------------------------- /kubernetes/docker/dnsmasq/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | services: 4 | dnsmasq: 5 | #build: . 6 | #dockerfile: Dockerfile 7 | image : guiet/dnsmasq 8 | container_name: dnsmasq 9 | restart: unless-stopped 10 | ports: 11 | - "53:53/udp" 12 | #Add DNS Entry here 13 | #name:ip 14 | extra_hosts: 15 | - "???:???" 16 | - "???:???" -------------------------------------------------------------------------------- /kubernetes/docker/dnsmasq/docker-run.sh: -------------------------------------------------------------------------------- 1 | docker-compose up -d -------------------------------------------------------------------------------- /kubernetes/docker/haproxy/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM haproxy:1.8 2 | 3 | #RUN apt-get update && apt-get install dnsutils -y 4 | 5 | #RUN apt-get install nano -y 6 | #RUN apt-get install iputils-ping -y 7 | 8 | COPY ./conf/haproxy.cfg /usr/local/etc/haproxy/haproxy.cfg 9 | -------------------------------------------------------------------------------- /kubernetes/docker/haproxy/conf/haproxy.cfg: -------------------------------------------------------------------------------- 1 | global 2 | log /dev/log local0 3 | log localhost local1 notice 4 | maxconn 2000 5 | daemon 6 | 7 | defaults 8 | log global 9 | mode http 10 | option httplog 11 | option dontlognull 12 | retries 3 13 | timeout connect 5000 14 | timeout client 50000 15 | timeout server 50000 16 | 17 | frontend http_in_front 18 | bind *:80 19 | 20 | #Use openhab backend if comming from openhab.guiet.lan 21 | acl openhab_front hdr_dom(host) -i openhab.guiet.lan 22 | use_backend openhab_backend if openhab_front 23 | 24 | #Use pihole backend if comming from pihole.guiet.lan 25 | acl pihole_front hdr_dom(host) -i pihole.guiet.lan 26 | use_backend pihole_backend if pihole_front 27 | 28 | #PiHole backend 29 | backend pihole_backend 30 | stats enable 31 | stats auth admin:admin 32 | stats uri /haproxy?stats 33 | server pihole 192.168.1.27:8080 34 | 35 | #Openhab backend 36 | backend openhab_backend 37 | stats enable 38 | stats auth admin:admin 39 | stats uri /haproxy?stats 40 | balance roundrobin 41 | option httpchk 42 | option forwardfor 43 | option http-server-close 44 | server k8s-worker-01 192.168.1.4:30163 check 45 | server k8s-worker-02 192.168.1.5:30163 check 46 | -------------------------------------------------------------------------------- /kubernetes/docker/haproxy/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3.7' 2 | 3 | services: 4 | haproxy: 5 | image : guiet/haproxy 6 | container_name: haproxy 7 | restart: unless-stopped 8 | ports: 9 | - 80:80 10 | expose: 11 | - 80 12 | -------------------------------------------------------------------------------- /kubernetes/docker/haproxy/restart.sh: -------------------------------------------------------------------------------- 1 | docker build -t guiet/haproxy . 2 | docker-compose down 3 | docker-compose up -d 4 | -------------------------------------------------------------------------------- /kubernetes/docker/pihole/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3.4' 2 | 3 | # More info at https://github.com/pi-hole/docker-pi-hole/ and https://docs.pi-hole.net/ 4 | services: 5 | pihole: 6 | container_name: pihole 7 | image: pihole/pihole:v5.0 8 | network_mode: host 9 | #ports: 10 | # - "53:53/tcp" 11 | # - "53:53/udp" 12 | # - "67:67/udp" 13 | # - "80:80/tcp" 14 | # - "443:443/tcp" 15 | environment: 16 | TZ: 'Europe/Paris' 17 | WEBPASSWORD: '****' 18 | VIRTUAL_HOST: 'pihole' 19 | ServerIP: 192.168.1.27 20 | #Faire tourner PiHole sur le port 8080 21 | WEB_PORT: 8080 22 | # Volumes store your data between container upgrades 23 | volumes: 24 | - './etc-pihole/:/etc/pihole/' 25 | - './etc-dnsmasq.d/:/etc/dnsmasq.d/' 26 | dns: 27 | - 127.0.0.1 28 | - 1.1.1.1 29 | # Recommended but not required (DHCP needs NET_ADMIN) 30 | # https://github.com/pi-hole/docker-pi-hole#note-on-capabilities 31 | cap_add: 32 | - NET_ADMIN 33 | restart: unless-stopped 34 | -------------------------------------------------------------------------------- /kubernetes/manifests/grafana/grafana-deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: grafana-deployment 5 | spec: 6 | replicas: 1 7 | selector: 8 | #Comment le deploiement trouve les nodes à gérer 9 | matchLabels: 10 | app: grafana 11 | template: 12 | metadata: 13 | labels: 14 | #Les pods recoivent le champ app: openhab dans le champ label 15 | app: grafana 16 | spec: 17 | #Mount following host volume on pod 18 | volumes: 19 | - name: grafana-storage 20 | persistentVolumeClaim: 21 | claimName: grafana-nfs-pvc 22 | - name: tz-config 23 | hostPath: 24 | path: /usr/share/zoneinfo/Europe/Paris 25 | type: File 26 | containers: 27 | - name: grafana 28 | image: grafana/grafana:6.5.2 29 | #Can be useful 30 | #resources: 31 | # limits: 32 | # memory: "128Mi" 33 | # cpu: "500m" 34 | ports: 35 | - containerPort: 3000 36 | name: http 37 | protocol: TCP 38 | 39 | #Volume on container 40 | volumeMounts: 41 | - mountPath: /etc/localtime 42 | name: tz-config 43 | #Path on the container to mount 44 | - mountPath: /var/lib/grafana 45 | name: grafana-storage 46 | subPath: data 47 | #Path on the container to mount 48 | - mountPath: /var/log/grafana 49 | name: grafana-storage 50 | subPath: logs -------------------------------------------------------------------------------- /kubernetes/manifests/grafana/grafana-ingress-resources.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: extensions/v1beta1 2 | kind: Ingress 3 | metadata: 4 | name: grafana-ingress-resources 5 | spec: 6 | rules: 7 | - host: grafana.guiet.lan 8 | http: 9 | paths: 10 | - backend: 11 | serviceName: grafana-service-clusterip 12 | servicePort: 80 -------------------------------------------------------------------------------- /kubernetes/manifests/grafana/grafana-nfs-pv.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolume 3 | metadata: 4 | name: grafana-nfs-pv 5 | labels: 6 | #TODO: type loca?? what does it mean? 7 | type: local 8 | spec: 9 | storageClassName: grafana-nfs-pv 10 | capacity: 11 | #Sets here the max capacity 12 | storage: 10Mi 13 | accessModes: 14 | - ReadWriteOnce 15 | nfs: 16 | server: nfs.guiet.lan 17 | path: "/mnt/touros-ext-drive/k8s-data/grafana-pv" 18 | 19 | 20 | -------------------------------------------------------------------------------- /kubernetes/manifests/grafana/grafana-service-clusterip.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: grafana-service-clusterip 5 | spec: 6 | type: ClusterIP 7 | selector: 8 | app: grafana 9 | ports: 10 | - protocol: TCP 11 | port: 80 12 | #Ip du container openhab (voir deploiement du pod) 13 | targetPort: 3000 -------------------------------------------------------------------------------- /kubernetes/manifests/grafana/granafa-nfs-pvc.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolumeClaim 3 | metadata: 4 | name: grafana-nfs-pvc 5 | spec: 6 | accessModes: 7 | #Only one pod can read or write? need to be check 8 | - ReadWriteOnce 9 | resources: 10 | requests: 11 | storage: 10Mi 12 | #Used to bound pvc and pv 13 | storageClassName: grafana-nfs-pv -------------------------------------------------------------------------------- /kubernetes/manifests/k8s-dashboard/sa_cluster_admin.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ServiceAccount 3 | metadata: 4 | name: dashboard-admin 5 | namespace: kube-system 6 | --- 7 | apiVersion: rbac.authorization.k8s.io/v1beta1 8 | kind: ClusterRoleBinding 9 | metadata: 10 | name: cluster-admin-rolebinding 11 | roleRef: 12 | apiGroup: rbac.authorization.k8s.io 13 | kind: ClusterRole 14 | name: cluster-admin 15 | subjects: 16 | - kind: ServiceAccount 17 | name: dashboard-admin 18 | namespace: kube-system -------------------------------------------------------------------------------- /kubernetes/manifests/nodered/nodered-deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: nodered-deployment 5 | spec: 6 | replicas: 1 7 | selector: 8 | #Comment le deploiement trouve les nodes à gérer 9 | matchLabels: 10 | app: nodered 11 | template: 12 | metadata: 13 | labels: 14 | #Les pods recoivent le champ app: nodered dans le champ label 15 | app: nodered 16 | spec: 17 | #Mount following host volume on pod 18 | volumes: 19 | - name: nodered-storage 20 | persistentVolumeClaim: 21 | claimName: nodered-nfs-pvc 22 | - name: tz-config 23 | hostPath: 24 | path: /usr/share/zoneinfo/Europe/Paris 25 | type: File 26 | containers: 27 | - name: nodered 28 | image: nodered/node-red:1.0.3-3-12 29 | env: 30 | - name: TZ 31 | value: "Europe/Paris" 32 | - name: FLOWS 33 | value: "home_flows.json" 34 | #Can be useful 35 | #resources: 36 | # limits: 37 | # memory: "128Mi" 38 | # cpu: "500m" 39 | ports: 40 | - containerPort: 1880 41 | name: http 42 | protocol: TCP 43 | 44 | #Volume on container 45 | volumeMounts: 46 | - mountPath: /etc/localtime 47 | name: tz-config 48 | #Path on the container to mount 49 | - mountPath: /data 50 | name: nodered-storage 51 | subPath: data 52 | -------------------------------------------------------------------------------- /kubernetes/manifests/nodered/nodered-ingress-resources.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: extensions/v1beta1 2 | kind: Ingress 3 | metadata: 4 | name: nodered-ingress-resources 5 | spec: 6 | rules: 7 | - host: nodered.guiet.lan 8 | http: 9 | paths: 10 | - backend: 11 | serviceName: nodered-service-clusterip 12 | servicePort: 80 -------------------------------------------------------------------------------- /kubernetes/manifests/nodered/nodered-nfs-pv.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolume 3 | metadata: 4 | name: nodered-nfs-pv 5 | labels: 6 | #TODO: type loca?? what does it mean? 7 | type: local 8 | spec: 9 | storageClassName: nodered-nfs-pv 10 | capacity: 11 | #Sets here the max capacity 12 | storage: 10Mi 13 | accessModes: 14 | - ReadWriteOnce 15 | nfs: 16 | server: nfs.guiet.lan 17 | path: "/mnt/touros-ext-drive/k8s-data/node-red-pv" -------------------------------------------------------------------------------- /kubernetes/manifests/nodered/nodered-nfs-pvc.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolumeClaim 3 | metadata: 4 | name: nodered-nfs-pvc 5 | spec: 6 | accessModes: 7 | #Only one pod can read or write? need to be check 8 | - ReadWriteOnce 9 | resources: 10 | requests: 11 | storage: 10Mi 12 | #Used to bound pvc and pv 13 | storageClassName: nodered-nfs-pv -------------------------------------------------------------------------------- /kubernetes/manifests/nodered/nodered-service-clusterip.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: nodered-service-clusterip 5 | spec: 6 | type: ClusterIP 7 | selector: 8 | app: nodered 9 | ports: 10 | - protocol: TCP 11 | port: 80 12 | #Ip du container openhab (voir deploiement du pod) 13 | targetPort: 1880 -------------------------------------------------------------------------------- /kubernetes/manifests/openhab/openhab-ingress-resources.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: extensions/v1beta1 2 | kind: Ingress 3 | metadata: 4 | name: openhab-ingress-resources 5 | spec: 6 | rules: 7 | - host: openhab.guiet.lan 8 | http: 9 | paths: 10 | - backend: 11 | serviceName: openhab-service-clusterip 12 | servicePort: 80 13 | -------------------------------------------------------------------------------- /kubernetes/manifests/openhab/openhab-nfs-pv.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolume 3 | metadata: 4 | name: openhab-nfs-pv 5 | labels: 6 | #TODO: type loca?? what does it mean? 7 | type: local 8 | spec: 9 | storageClassName: openhab-nfs-pv 10 | capacity: 11 | #Sets here the max capacity 12 | storage: 500Mi 13 | accessModes: 14 | - ReadWriteOnce 15 | nfs: 16 | server: nfs.guiet.lan 17 | path: "/mnt/touros-ext-drive/k8s-data/openhab-pv" 18 | 19 | 20 | -------------------------------------------------------------------------------- /kubernetes/manifests/openhab/openhab-nfs-pvc.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: PersistentVolumeClaim 3 | metadata: 4 | name: openhab-nfs-pvc 5 | spec: 6 | accessModes: 7 | #Only one pod can read or write? need to be check 8 | - ReadWriteOnce 9 | resources: 10 | requests: 11 | storage: 500Mi 12 | #Used to bound pvc and pv 13 | storageClassName: openhab-nfs-pv -------------------------------------------------------------------------------- /kubernetes/manifests/openhab/openhab-service-clusterip.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: openhab-service-clusterip 5 | spec: 6 | type: ClusterIP 7 | selector: 8 | app: openhab 9 | ports: 10 | - protocol: TCP 11 | port: 80 12 | #Ip du container openhab (voir deploiement du pod) 13 | targetPort: 8080 -------------------------------------------------------------------------------- /kubernetes/manifests/openhab/openhab-service-nodeport.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: openhab-service 5 | spec: 6 | type: NodePort 7 | selector: 8 | app: openhab 9 | ports: 10 | - protocol: TCP 11 | nodePort: 30163 12 | port: 80 13 | targetPort: 8080 -------------------------------------------------------------------------------- /postgresql/dump_structure.sh: -------------------------------------------------------------------------------- 1 | pg_dump -U automation_p -W -p 5432 -h 192.168.1.25 -s -f automationserver.sql automation 2 | -------------------------------------------------------------------------------- /sketches/anemometer/linear_regression_anemometer.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/sketches/anemometer/linear_regression_anemometer.xlsx -------------------------------------------------------------------------------- /sketches/anemometer_calibration/anemometer_calibration.ino: -------------------------------------------------------------------------------- 1 | #include 2 | #include "SSD1306.h" 3 | #include 4 | 5 | 6 | WiFiServer server(80); //Initialize the server on Port 80 7 | SSD1306 display(0x3C, D2, D1); 8 | 9 | void setup() { 10 | 11 | // display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // initialize with the I2C addr 0x3C (for the 64x48) 12 | //display.display(); 13 | 14 | Serial.begin(115200); 15 | Serial.println("Beginning..."); 16 | 17 | WiFi.mode(WIFI_AP); //Our ESP8266-12E is an AccessPoint 18 | WiFi.softAP("ANEMOMETER-CALIBRATION-AP"); // Provide the (SSID, password); 19 | server.begin(); // Start the HTTP Server 20 | 21 | IPAddress httpServerIP = WiFi.softAPIP(); 22 | Serial.print("Server IP is : "); 23 | Serial.println(httpServerIP); 24 | Serial.println("Ready..."); 25 | 26 | display.init(); 27 | 28 | display.drawString(0,0,"Ready..."); 29 | display.display(); 30 | 31 | } 32 | 33 | void loop() { 34 | 35 | WiFiClient client = server.available(); 36 | if (!client) { 37 | return; 38 | } 39 | 40 | String request = client.readStringUntil('\r'); 41 | 42 | display.clear(); 43 | display.drawString(0,0,"WS : " + request); 44 | display.display(); 45 | } 46 | -------------------------------------------------------------------------------- /sketches/blink_arduino_pro_mini/blink_arduino_pro_mini.ino: -------------------------------------------------------------------------------- 1 | /* Pro Micro Test Code 2 | by: Nathan Seidle 3 | modified by: Jim Lindblom 4 | SparkFun Electronics 5 | date: September 16, 2013 6 | license: Public Domain - please use this code however you'd like. 7 | It's provided as a learning tool. 8 | 9 | This code is provided to show how to control the SparkFun 10 | ProMicro's TX and RX LEDs within a sketch. It also serves 11 | to explain the difference between Serial.print() and 12 | Serial1.print(). 13 | */ 14 | 15 | //using SparkFun Pro Micro board (3.3v, 8Mhz) 16 | //https://github.com/sparkfun/Arduino_Boards 17 | 18 | int RXLED = 17; // The RX LED has a defined Arduino pin 19 | // The TX LED was not so lucky, we'll need to use pre-defined 20 | // macros (TXLED1, TXLED0) to control that. 21 | // (We could use the same macros for the RX LED too -- RXLED1, 22 | // and RXLED0.) 23 | 24 | void setup() 25 | { 26 | pinMode(RXLED, OUTPUT); // Set RX LED as an output 27 | // TX LED is set as an output behind the scenes 28 | 29 | Serial.begin(9600); //This pipes to the serial monitor 30 | Serial1.begin(9600); //This is the UART, pipes to sensors attached to board 31 | } 32 | 33 | void loop() 34 | { 35 | Serial.println("Hello world"); // Print "Hello World" to the Serial Monitor 36 | Serial1.println("Hello!"); // Print "Hello!" over hardware UART 37 | 38 | digitalWrite(RXLED, LOW); // set the LED on 39 | TXLED0; //TX LED is not tied to a normally controlled pin 40 | delay(1000); // wait for a second 41 | digitalWrite(RXLED, HIGH); // set the LED off 42 | TXLED1; 43 | delay(1000); // wait for a second 44 | } 45 | -------------------------------------------------------------------------------- /start_automationserver: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | export NAME="automationserver" 4 | export EXEC="/usr/bin/jsvc" 5 | export HOME_PATH="/home/fred/automationserver" 6 | export LOG4J="log4j.configuration=file:${HOME_PATH}/config/log4j.xml" 7 | export JAVA_HOME="/usr/java/jdk1.8.0_111" 8 | export JAVA_LIBRARY_PATH="java.library.path=/home/fred/automationserver" 9 | export CLASS_PATH="${HOME_PATH}/*" 10 | export ARGS="-Dautomationserver.config.path=/home/fred/automationserver/config/automationserver.properties" 11 | export LOG_OUT="${HOME_PATH}/logs/${NAME}.out" 12 | export LOG_ERR="${HOME_PATH}/logs/${NAME}.err" 13 | export PID="${HOME_PATH}/${NAME}.pid" 14 | export CLASS=fr.guiet.automationserver.AutomationServer 15 | 16 | rm /var/lock/LCK..ttyUSB0 17 | $EXEC -home "$JAVA_HOME" -cp "$CLASS_PATH" -D"${JAVA_LIBRARY_PATH}" -D"${LOG4J}" $ARGS -outfile "${LOG_OUT}" -errfile "${LOG_ERR}" -pidfile "${PID}" $1 $CLASS 18 | -------------------------------------------------------------------------------- /start_tomcat: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | export CATALINA_HOME=/home/guiet/applications/tomcat9 4 | export JAVA_HOME=/home/guiet/applications/java/jdk1.8.0_121 5 | export JRE_HOME=/home/guiet/applications/java/jdk1.8.0_121/jre 6 | export CATALINA_OPTS="$CATALINA_OPTS -Dautomationserver.config.path=/home/guiet/projets/AutomationServer/automationserver/ASMain/src/main/resources/automationserver.properties -Dlog4j.configuration=file:/home/guiet/applications/tomcat9/conf/log4j.xml" 7 | $CATALINA_HOME/bin/startup.sh 8 | 9 | 10 | -------------------------------------------------------------------------------- /stop_automationserver: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | export NAME="automationserver" 4 | export EXEC="/usr/bin/jsvc" 5 | export HOME_PATH="/home/fred/automationserver" 6 | export PID="${HOME_PATH}/$NAME.pid" 7 | export CLASS=fr.guiet.automationserver.AutomationServer 8 | 9 | ${EXEC} -stop -pidfile "${PID}" ${CLASS} 10 | -------------------------------------------------------------------------------- /third-party-lib/arduino/Low-Power-master/Examples/idleWakePeriodic/idleWakePeriodic.ino: -------------------------------------------------------------------------------- 1 | // **** INCLUDES ***** 2 | #include "LowPower.h" 3 | 4 | void setup() 5 | { 6 | // No setup is required for this library 7 | } 8 | 9 | void loop() 10 | { 11 | // Enter idle state for 8 s with the rest of peripherals turned off 12 | // Each microcontroller comes with different number of peripherals 13 | // Comment off line of code where necessary 14 | 15 | // ATmega328P, ATmega168 16 | LowPower.idle(SLEEP_8S, ADC_OFF, TIMER2_OFF, TIMER1_OFF, TIMER0_OFF, 17 | SPI_OFF, USART0_OFF, TWI_OFF); 18 | 19 | // ATmega32U4 20 | //LowPower.idle(SLEEP_8S, ADC_OFF, TIMER4_OFF, TIMER3_OFF, TIMER1_OFF, 21 | // TIMER0_OFF, SPI_OFF, USART1_OFF, TWI_OFF, USB_OFF); 22 | 23 | // ATmega2560 24 | //LowPower.idle(SLEEP_8S, ADC_OFF, TIMER5_OFF, TIMER4_OFF, TIMER3_OFF, 25 | // TIMER2_OFF, TIMER1_OFF, TIMER0_OFF, SPI_OFF, USART3_OFF, 26 | // USART2_OFF, USART1_OFF, USART0_OFF, TWI_OFF); 27 | 28 | // ATmega256RFR2 29 | //LowPower.idle(SLEEP_8S, ADC_OFF, TIMER5_OFF, TIMER4_OFF, TIMER3_OFF, 30 | // TIMER2_OFF, TIMER1_OFF, TIMER0_OFF, SPI_OFF, 31 | // USART1_OFF, USART0_OFF, TWI_OFF); 32 | 33 | // Do something here 34 | // Example: Read sensor, data logging, data transmission. 35 | } 36 | 37 | -------------------------------------------------------------------------------- /third-party-lib/arduino/Low-Power-master/Examples/powerDownWakeExternalInterrupt/powerDownWakeExternalInterrupt.ino: -------------------------------------------------------------------------------- 1 | // **** INCLUDES ***** 2 | #include "LowPower.h" 3 | 4 | // Use pin 2 as wake up pin 5 | const int wakeUpPin = 2; 6 | 7 | void wakeUp() 8 | { 9 | // Just a handler for the pin interrupt. 10 | } 11 | 12 | void setup() 13 | { 14 | // Configure wake up pin as input. 15 | // This will consumes few uA of current. 16 | pinMode(wakeUpPin, INPUT); 17 | } 18 | 19 | void loop() 20 | { 21 | // Allow wake up pin to trigger interrupt on low. 22 | attachInterrupt(0, wakeUp, LOW); 23 | 24 | // Enter power down state with ADC and BOD module disabled. 25 | // Wake up when wake up pin is low. 26 | LowPower.powerDown(SLEEP_FOREVER, ADC_OFF, BOD_OFF); 27 | 28 | // Disable external pin interrupt on wake up pin. 29 | detachInterrupt(0); 30 | 31 | // Do something here 32 | // Example: Read sensor, data logging, data transmission. 33 | } 34 | -------------------------------------------------------------------------------- /third-party-lib/arduino/Low-Power-master/Examples/powerDownWakePeriodic/powerDownWakePeriodic.ino: -------------------------------------------------------------------------------- 1 | // **** INCLUDES ***** 2 | #include "LowPower.h" 3 | 4 | void setup() 5 | { 6 | // No setup is required for this library 7 | } 8 | 9 | void loop() 10 | { 11 | // Enter power down state for 8 s with ADC and BOD module disabled 12 | LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF); 13 | 14 | // Do something here 15 | // Example: Read sensor, data logging, data transmission. 16 | } 17 | -------------------------------------------------------------------------------- /third-party-lib/arduino/Low-Power-master/Examples/standbyExternalInterruptSAMD21/standbyExternalInterruptSAMD21.ino: -------------------------------------------------------------------------------- 1 | // **** INCLUDES ***** 2 | #include "LowPower.h" 3 | 4 | // External interrupt on pin 0 (use pin 0 to 24, except pin 4 on Arduino Zero) 5 | const int pin = 0; 6 | unsigned char count = 10; 7 | 8 | void setup() 9 | { 10 | // Wait for serial USB port to open 11 | while(!SerialUSB); 12 | SerialUSB.println("***** ATSAMD21 Standby Mode Example *****"); 13 | 14 | // ***** IMPORTANT ***** 15 | // Delay is required to allow the USB interface to be active during 16 | // sketch upload process 17 | SerialUSB.println("Entering standby mode in:"); 18 | for (count; count > 0; count--) 19 | { 20 | SerialUSB.print(count); 21 | SerialUSB.println(" s"); 22 | delay(1000); 23 | } 24 | // ********************* 25 | 26 | // External interrupt on pin (example: press of an active low button) 27 | // A pullup resistor is used to hold the signal high when no button press 28 | attachInterrupt(pin, blink, LOW); 29 | } 30 | 31 | void loop() 32 | { 33 | SerialUSB.println("Entering standby mode."); 34 | SerialUSB.println("Apply low signal to wake the processor."); 35 | SerialUSB.println("Zzzz..."); 36 | // Detach USB interface 37 | USBDevice.detach(); 38 | // Enter standby mode 39 | LowPower.standby(); 40 | // Attach USB interface 41 | USBDevice.attach(); 42 | // Wait for serial USB port to open 43 | while(!SerialUSB); 44 | // Serial USB is blazing fast, you might miss the messages 45 | delay(1000); 46 | SerialUSB.println("Awake!"); 47 | SerialUSB.println("Send any character to enter standby mode again"); 48 | // Wait for user response 49 | while(!SerialUSB.available()); 50 | while(SerialUSB.available() > 0) 51 | { 52 | SerialUSB.read(); 53 | } 54 | } 55 | 56 | void blink(void) 57 | { 58 | 59 | } 60 | -------------------------------------------------------------------------------- /third-party-lib/arduino/Low-Power-master/README.md: -------------------------------------------------------------------------------- 1 | ### Low-Power 2 | Lightweight low power library for Arduino. 3 | 4 | Version: 1.60 5 | 6 | Date: 01-04-2016 7 | 8 | Devices Supported: 9 | * ATMega168 10 | * ATMega328P 11 | * ATMega32U4 12 | * ATMega2560 13 | * ATMega256RFR2 14 | * ATSAMD21G18A 15 | 16 | ####Notes: 17 | External interrupt during standby on ATSAMD21G18A requires a patch to the Arduino SAMD Core in order for it to work. Fix is provided by this particular pull request. 18 | -------------------------------------------------------------------------------- /third-party-lib/arduino/Low-Power-master/keywords.txt: -------------------------------------------------------------------------------- 1 | ####################################### 2 | # Syntax Coloring Map LowPower 3 | ####################################### 4 | 5 | ####################################### 6 | # Datatypes (KEYWORD1) 7 | ####################################### 8 | 9 | ####################################### 10 | # Methods and Functions (KEYWORD2) 11 | ####################################### 12 | 13 | idle KEYWORD2 14 | adcNoiseReduction KEYWORD2 15 | powerDown KEYWORD2 16 | powerSave KEYWORD2 17 | powerStandby KEYWORD2 18 | powerExtStandby KEYWORD2 19 | standby KEYWORD2 20 | 21 | ####################################### 22 | # Instances (KEYWORD2) 23 | ####################################### 24 | 25 | LowPower KEYWORD2 26 | 27 | ####################################### 28 | # Constants (LITERAL1) 29 | ####################################### 30 | 31 | SLEEP_15MS LITERAL1 32 | SLEEP_30MS LITERAL1 33 | SLEEP_60MS LITERAL1 34 | SLEEP_120MS LITERAL1 35 | SLEEP_250MS LITERAL1 36 | SLEEP_500MS LITERAL1 37 | SLEEP_1S LITERAL1 38 | SLEEP_2S LITERAL1 39 | SLEEP_4S LITERAL1 40 | SLEEP_8S LITERAL1 41 | SLEEP_FOREVER LITERAL1 42 | ADC_OFF LITERAL1 43 | ADC_ON LITERAL1 44 | BOD_OFF LITERAL1 45 | BOD_ON LITERAL1 46 | TIMER4_OFF LITERAL1 47 | TIMER4_ON LITERAL1 48 | TIMER3_OFF LITERAL1 49 | TIMER3_ON LITERAL1 50 | TIMER2_OFF LITERAL1 51 | TIMER2_ON LITERAL1 52 | TIMER1_OFF LITERAL1 53 | TIMER1_ON LITERAL1 54 | TIMER0_OFF LITERAL1 55 | TIMER0_ON LITERAL1 56 | USART3_OFF LITERAL1 57 | USART3_ON LITERAL1 58 | USART2_OFF LITERAL1 59 | USART2_ON LITERAL1 60 | USART1_OFF LITERAL1 61 | USART1_ON LITERAL1 62 | USART0_OFF LITERAL1 63 | USART0_ON LITERAL1 64 | SPI_OFF LITERAL1 65 | SPI_ON LITERAL1 66 | TWI_OFF LITERAL1 67 | TWI_ON LITERAL1 68 | USB_OFF LITERAL1 69 | USB_ON LITERAL1 70 | IDLE_0 LITERAL1 71 | IDLE_1 LITERAL1 72 | IDLE_2 LITERAL1 73 | -------------------------------------------------------------------------------- /third-party-lib/arduino/Low-Power-master/library.properties: -------------------------------------------------------------------------------- 1 | name=Low-Power 2 | version=1.6 3 | author=Rocket Scream Electronics 4 | maintainer=Rocket Scream Electronics 5 | sentence=Lightweight power management library 6 | paragraph=Lightweight power management library 7 | category=Other 8 | url=https://github.com/rocketscream/Low-Power 9 | architectures=avr,samd 10 | -------------------------------------------------------------------------------- /third-party-lib/native/librxtxSerial.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-lib/native/librxtxSerial.so -------------------------------------------------------------------------------- /third-party-tools/automationserver/cmd/deploy.sh: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | echo "Getting new version from Git..." 4 | cd /applications/java/src//AutomationServer/automationserver/ASParent 5 | git pull 6 | echo "Compiling new version..." 7 | mvn clean package 8 | echo "Removing old version..." 9 | rm -f /applications/automationserver/bin/* 10 | echo "Copying new version..." 11 | cp /applications/java/src/AutomationServer/third-party-lib/native/*.so /applications/automationserver/bin/ 12 | cp /applications/java/src/AutomationServer/automationserver/ASMain/dist/automationserver-main-bin/lib/* /applications/automationserver/bin/ 13 | cp /applications/java/src/AutomationServer/automationserver/ASWebApp/target/automationserver-webapp.war /applications/automationserver/bin 14 | echo "Removing old logs..." 15 | rm -f /applications/automationserver/logs/* 16 | echo "Creating empty logs files..." 17 | touch /applications/automationserver/logs/automationserver-info.log 18 | touch /applications/automationserver/logs/automationserver-error.log 19 | touch /applications/automationserver/logs/automationserver-warn.log 20 | echo "Adding rw rigths to others so tomcat can write in it..." 21 | chmod o+rw /applications/automationserver/logs/automationserver-info.log 22 | chmod o+rw /applications/automationserver/logs/automationserver-error.log 23 | chmod o+rw /applications/automationserver/logs/automationserver-warn.log 24 | echo "Done!" 25 | 26 | 27 | -------------------------------------------------------------------------------- /third-party-tools/automationserver/cmd/start.sh: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | export NAME="automationserver" 4 | export EXEC="/usr/bin/jsvc" 5 | export HOME_PATH="/applications/automationserver" 6 | export LOG4J="log4j.configurationFile=file:${HOME_PATH}/config/log4j.xml" 7 | #export JAVA_HOME="/usr/java/jdk1.8.0_111" 8 | export JAVA_LIBRARY_PATH="java.library.path=/applications/automationserver/bin" 9 | export CLASS_PATH="${HOME_PATH}/bin/*" 10 | export ARGS="-Dautomationserver.config.path=/applications/automationserver/config/automationserver.properties" 11 | export LOG_OUT="${HOME_PATH}/logs/${NAME}.out" 12 | export LOG_ERR="${HOME_PATH}/logs/${NAME}.err" 13 | export PID="${HOME_PATH}/${NAME}.pid" 14 | export CLASS=fr.guiet.automationserver.AutomationServer 15 | export TMP_FOLDER="/tmp" 16 | 17 | #rm /var/lock/LCK..ttyUSB0 18 | #remove pid because sometime when Raspberry reboot it is not removed and prevent automationserver from starting 19 | rm ${PID} 20 | rm -rf ${TMP_FOLDER} 21 | $EXEC -nodetach -server -jvm server -java-home "$JAVA_HOME" -cwd "/applications/automationserver/bin" -cp "$CLASS_PATH" -D"user.dir=/tmp" -D"${JAVA_LIBRARY_PATH}" -D"${LOG4J}" $ARGS -outfile "${LOG_OUT}" -errfile "${LOG_ERR}" -pidfile "${PID}" $1 $CLASS 22 | 23 | -------------------------------------------------------------------------------- /third-party-tools/automationserver/docker/automationserver_dockerbuild: -------------------------------------------------------------------------------- 1 | docker build -t guiet/automationserver:1.0 -f automationserver_dockerfile . 2 | 3 | -------------------------------------------------------------------------------- /third-party-tools/automationserver/docker/automationserver_dockerrun: -------------------------------------------------------------------------------- 1 | docker run --privileged \ 2 | --name automationserver \ 3 | -h docker-automationserver \ 4 | --network automationserver-network \ 5 | -v /etc/localtime:/etc/localtime:ro \ 6 | -v /etc/timezone:/etc/timezone:ro \ 7 | -v /home/fred/applications/automationserver/logs:/applications/automationserver/logs \ 8 | -v /home/fred/applications/automationserver/cmd:/applications/automationserver/cmd \ 9 | -v /home/fred/applications/automationserver/config:/applications/automationserver/config \ 10 | -v /home/fred/applications/automationserver/bin:/applications/automationserver/bin \ 11 | -v /dev:/dev \ 12 | --restart=unless-stopped \ 13 | -d \ 14 | guiet/automationserver:1.0 15 | -------------------------------------------------------------------------------- /third-party-tools/automationserver/docker/docker-entry-point.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -e 3 | 4 | echo "Now starting AutomationServer..." 5 | /applications/automationserver/cmd/start.sh 6 | 7 | #exec $@ 8 | -------------------------------------------------------------------------------- /third-party-tools/automationserver/install/prerequisite: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | #add fred group 4 | #sudo groupadd fred --gid 1000 5 | #add fred user 6 | #sudo useradd -r -s /sbin/nologin fred --uid 1000 -g fred 7 | 8 | #create volume bind with docker container 9 | sudo mkdir -p /home/fred/applications/automationserver 10 | sudo mkdir -p /home/fred/applications/automationserver/config 11 | sudo mkdir -p /home/fred/applications/automationserver/logs 12 | sudo mkdir -p /home/fred/applications/automationserver/bin 13 | sudo mkdir -p /home/fred/applications/automationserver/cmd 14 | 15 | #add conf file 16 | sudo cp /home/fred/git/AutomationServer/third-party-tools/automationserver/conf/*.properties /home/fred/applications/automationserver/config 17 | sudo cp /home/fred/git/AutomationServer/third-party-tools/automationserver/conf/*.xml /home/fred/applications/automationserver/config 18 | sudo cp /home/fred/git/AutomationServer/third-party-tools/automationserver/conf/gammu-config /home/fred/applications/automationserver/config 19 | sudo cp /home/fred/git/AutomationServer/third-party-tools/automationserver/cmd/* /home/fred/applications/automationserver/cmd/ 20 | 21 | #change applications/automationserver folders owner 22 | #sudo chown -R fred:fred /home/fred/applications/automationserver 23 | -------------------------------------------------------------------------------- /third-party-tools/grafana/docker/.env: -------------------------------------------------------------------------------- 1 | COMPOSE_PROJECT_NAME=grafana 2 | -------------------------------------------------------------------------------- /third-party-tools/grafana/docker/README.md: -------------------------------------------------------------------------------- 1 | #Grafana 2 | 3 | # Migrate from version X to version Y 4 | 5 | * Stop Grafana container 6 | * Backup /home/fred/applications/grafana/data folder 7 | * Update Grafana image version to use 8 | * Start Grafana and show logs (`docker logs container_name`), database should be migrated automatically 9 | -------------------------------------------------------------------------------- /third-party-tools/grafana/docker/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3.7' 2 | 3 | services: 4 | grafana: 5 | image: grafana/grafana:6.5.2 6 | container_name: grafana-6.5.2 7 | restart: unless-stopped 8 | volumes: 9 | - /home/fred/applications/grafana/data:/var/lib/grafana 10 | - /home/fred/applications/grafana/logs:/var/log/grafana 11 | ports: 12 | - 3000:3000 13 | networks: 14 | - automationserver 15 | 16 | networks: 17 | automationserver: 18 | name: automationserver-network 19 | 20 | -------------------------------------------------------------------------------- /third-party-tools/grafana/docker/grafana_dockerrun: -------------------------------------------------------------------------------- 1 | docker-compose up -d 2 | -------------------------------------------------------------------------------- /third-party-tools/grafana/docker/grafana_dockerstop: -------------------------------------------------------------------------------- 1 | docker-compose down 2 | -------------------------------------------------------------------------------- /third-party-tools/grafana/install/prerequisite: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | #add grafan group 4 | sudo groupadd grafana --gid 472 5 | #add grafan user 6 | sudo useradd -r -s /sbin/nologin grafana --uid 472 -g grafana 7 | 8 | #create volume bind with docker container 9 | sudo mkdir -p /home/fred/applications/grafana/logs 10 | sudo mkdir -p /home/fred/applications/grafana/data 11 | 12 | #change mosquitto folders owner 13 | sudo chown -R grafana:grafana /home/fred/applications/grafana 14 | -------------------------------------------------------------------------------- /third-party-tools/influxdb/conf/installweb.txt: -------------------------------------------------------------------------------- 1 | https://bentek.fr/influxdb-grafana-raspberry-pi/ 2 | -------------------------------------------------------------------------------- /third-party-tools/influxdb/docker/docker-entry-point.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -e 3 | 4 | RESTORE_DIR=/influxdb/restore 5 | DATA_DIR=/influxdb/data 6 | META_DIR=/influxdb/meta 7 | INFLUXDB_DAEMON_DIR=/usr/bin/influxd 8 | CONF_FILE=/influxdb/conf/influxdb.conf 9 | LOG_FILE=/influxdb/logs/influxdb.log 10 | 11 | #echo "Checking for backup to restore" 12 | #if [ -z "$(ls -A ${RESTORE_DIR})" ]; then 13 | # echo "Restore dir empty...nuffin to do !" 14 | #else 15 | # echo "Restore dir not empty...will try to restore database..." 16 | # echo "Restoring metastore..." 17 | # ${INFLUXDB_DAEMON_DIR} restore -metadir ${META_DIR} ${RESTORE_DIR} 18 | # echo "Restoring database automation with command : ${INFLUXDB_DAEMON_DIR} restore -database automation -datadir ${DATA_DIR} ${RESTORE_DIR}" 19 | # ${INFLUXDB_DAEMON_DIR} restore -database automation -datadir ${DATA_DIR} ${RESTORE_DIR} 20 | # echo "Removing restore files" 21 | # rm /influxdb/restore/* 22 | #fi 23 | 24 | echo "Now starting Influxdb..." 25 | ${INFLUXDB_DAEMON_DIR} -config ${CONF_FILE} 2>&1 | tee -a ${LOG_FILE} 26 | -------------------------------------------------------------------------------- /third-party-tools/influxdb/docker/influxdb_dockerbuild: -------------------------------------------------------------------------------- 1 | docker build -t guiet/influxdb:1.7.8 -f influxdb_dockerfile . 2 | 3 | -------------------------------------------------------------------------------- /third-party-tools/influxdb/docker/influxdb_dockerfile: -------------------------------------------------------------------------------- 1 | FROM balenalib/raspberry-pi:stretch 2 | 3 | LABEL maintainer="fguiet@gmail.com" 4 | 5 | #ENV CONFIG_PATH=/home/fred/git/AutomationServer/third-party-tools/influxdb/conf 6 | 7 | #update stretch and install wget 8 | RUN apt-get update && apt-get upgrade 9 | 10 | RUN groupadd --gid 9003 influxdb 11 | RUN useradd --uid 9003 --gid 9003 influxdb 12 | 13 | #add influxdb stretch repository 14 | RUN curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add - 15 | RUN echo "deb https://repos.influxdata.com/debian stretch stable" | sudo tee /etc/apt/sources.list.d/influxdb.list 16 | 17 | RUN apt-get install -y apt-transport-https 18 | RUN apt-get update && apt-get install -y influxdb 19 | 20 | #Folder that can contain backup to restore 21 | RUN mkdir -p /influxdb/restore 22 | RUN mkdir -p /influxdb/conf 23 | RUN mkdir -p /influxdb/wal 24 | RUN mkdir -p /influxdb/logs 25 | RUN mkdir -p /influxdb/meta 26 | RUN mkdir -p /influxdb/data 27 | 28 | RUN chown -R influxdb:influxdb /influxdb 29 | 30 | VOLUME ["/influxdb"] 31 | 32 | EXPOSE 8086 33 | 34 | COPY docker-entry-point.sh /usr/local/bin/ 35 | RUN chmod 555 /usr/local/bin/docker-entry-point.sh 36 | ENTRYPOINT ["/usr/local/bin/docker-entry-point.sh"] 37 | 38 | #User used in RUN, CMD, ENTRYPOINT 39 | USER influxdb 40 | 41 | #Launch influxdb daemon 42 | CMD [""] 43 | -------------------------------------------------------------------------------- /third-party-tools/influxdb/docker/influxdb_dockerrun: -------------------------------------------------------------------------------- 1 | docker run \ 2 | -v /etc/localtime:/etc/localtime:ro \ 3 | -v /etc/timezone:/etc/timezone:ro \ 4 | --name influxdb \ 5 | --network automationserver-network \ 6 | -h docker-influxdb \ 7 | -v /home/fred/applications/influxdb:/influxdb \ 8 | -d \ 9 | --restart=always \ 10 | -p 8086:8086 \ 11 | guiet/influxdb:1.7.8 12 | 13 | -------------------------------------------------------------------------------- /third-party-tools/influxdb/install/prerequisite: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | #add influxb group 4 | sudo groupadd influxdb --gid 9003 5 | #add influxdb user 6 | sudo useradd -r -s /sbin/nologin influxdb --uid 9003 -g influxdb 7 | 8 | #create volume bind with docker container 9 | sudo mkdir -p /home/fred/applications/influxdb 10 | sudo mkdir -p /home/fred/applications/influxdb/conf 11 | sudo mkdir -p /home/fred/applications/influxdb/restore 12 | sudo mkdir -p /home/fred/applications/influxdb/wal 13 | sudo mkdir -p /home/fred/applications/influxdb/logs 14 | sudo mkdir -p /home/fred/applications/influxdb/meta 15 | sudo mkdir -p /home/fred/applications/influxdb/data 16 | 17 | #add conf file 18 | #sudo cp -rf /home/fred/git/AutomationServer/third-party-tools/influxdb/conf /home/fred/applications/influxdb 19 | #delete logs 20 | sudo rm -Rf /home/fred/applications/influxdb/logs/*.log 21 | 22 | #change influxdb folders owner 23 | sudo chown -R influxdb:influxdb /home/fred/applications/influxdb 24 | -------------------------------------------------------------------------------- /third-party-tools/influxdb/install/readme.txt: -------------------------------------------------------------------------------- 1 | Starting Influxdb docker 2 | ------------------------ 3 | 4 | 1. Run AutomationServer/third-party-tools/influxdb/install/prerequisite 5 | 2. From influxdb container make old influxdb backup 6 | influxd backup -database automation /influxdb/restore 7 | tar -zcvf automation.tar.gz /influxdb/restore 8 | 3. Copy /influxdb/restore to /home/fred/database/influxb/backup/YYYYMMDD 9 | 4. Remove tar from /influxdb/restore 10 | 5. Change container version in file /home/fred/git/AutomationServer/third-party-tools/influxdb/docker/influxdb_dockerbuild 11 | 6. Stop influxdb container, remove it and remove images 12 | 7. Build new images 13 | 8. Create container from image : docker create guiet/influxdb:1.7.1 14 | 9. Copy new influxdb conf file from new container : docker cp 4b0f71acea43:/etc/influxdb/influxdb.conf . 15 | 10. Remove fake container (from point 8) 16 | 10. Make a diff between old and new conf file 17 | 11. copy new conf file in ~/applications/influxdb/conf and empty all ~/applications/influxdb/* (sauf conf) 18 | 12. Launch influxdb docker : AutomationServer/third-party-tools/influxdb/docker/influxdb_dockerrun 19 | 13. Launch docker exec -it influxdb bash 20 | 14. Launch /usr/bin/influx => drop database automation; 21 | 15. /usr/bin/influxd restore -online -db automation /influxdb/restore 22 | 16. Restoration A REVOIR!!!! 23 | 24 | 25 | -------------------------------------------------------------------------------- /third-party-tools/mosquitto/conf/ca_certificates/README: -------------------------------------------------------------------------------- 1 | Place your SSL/TLS Certificate Authority certificates in this directory. 2 | -------------------------------------------------------------------------------- /third-party-tools/mosquitto/conf/certs/README: -------------------------------------------------------------------------------- 1 | Place your SSL/TLS server keys and certificates in this directory. 2 | 3 | This directory should only be readable by the mosquitto user. 4 | -------------------------------------------------------------------------------- /third-party-tools/mosquitto/conf/conf.d/README: -------------------------------------------------------------------------------- 1 | Any files placed in this directory that have a .conf ending will be loaded as 2 | config files by the broker. Use this to make your local config. 3 | -------------------------------------------------------------------------------- /third-party-tools/mosquitto/conf/mosquitto.conf: -------------------------------------------------------------------------------- 1 | # Place your local configuration in /mqtt/config/conf.d/ 2 | 3 | pid_file /var/run/mosquitto.pid 4 | 5 | persistence true 6 | persistence_location /mosquitto/data/ 7 | 8 | user mosquitto 9 | 10 | # Port to use for the default listener. 11 | port 1883 12 | 13 | 14 | log_dest file /mosquitto/log/mosquitto.log 15 | log_dest stdout 16 | 17 | include_dir /mosquitto/config/conf.d 18 | -------------------------------------------------------------------------------- /third-party-tools/mosquitto/docker/.env: -------------------------------------------------------------------------------- 1 | COMPOSE_PROJECT_NAME=mosquitto 2 | -------------------------------------------------------------------------------- /third-party-tools/mosquitto/docker/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3.7' 2 | 3 | services: 4 | mosquitto: 5 | image: eclipse-mosquitto:1.6.8 6 | container_name: eclipse-mosquitto-1.6.8 7 | restart: unless-stopped 8 | volumes: 9 | - /home/fred/applications/mosquitto/config:/mosquitto/config 10 | - /home/fred/applications/mosquitto/data:/mosquitto/data 11 | - /home/fred/applications/mosquitto/log:/mosquitto/log 12 | - /etc/localtime:/etc/localtime:ro 13 | - /etc/timezone:/etc/timezone:ro 14 | ports: 15 | - 1883:1883 16 | networks: 17 | - automationserver 18 | 19 | networks: 20 | automationserver: 21 | name: automationserver-network 22 | -------------------------------------------------------------------------------- /third-party-tools/mosquitto/docker/mosquitto_dockerrun: -------------------------------------------------------------------------------- 1 | docker-compose up -d 2 | -------------------------------------------------------------------------------- /third-party-tools/mosquitto/docker/mosquitto_dockerstop: -------------------------------------------------------------------------------- 1 | docker-compose down 2 | -------------------------------------------------------------------------------- /third-party-tools/mosquitto/install/prerequisite: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | #add mosquitto group 4 | sudo groupadd mosquitto --gid 9002 5 | #add mosquitto user 6 | sudo useradd -r -s /sbin/nologin mosquitto --uid 9002 -g mosquitto 7 | 8 | #create volume bind with docker container 9 | sudo mkdir -p /home/fred/applications/mosquitto/log 10 | sudo mkdir -p /home/fred/applications/mosquitto/config 11 | sudo mkdir -p /home/fred/applications/mosquitto/data 12 | 13 | #add conf file 14 | #sudo rm -R /home/fred/applications/mosquitto/conf/* 15 | #sudo cp -rf /home/fred/git/AutomationServer/third-party-tools/mosquitto/conf /home/fred/applications/mosquitto 16 | 17 | #change mosquitto folders owner 18 | sudo chown -R mosquitto:mosquitto /home/fred/applications/mosquitto 19 | sudo chmod o+rx /home/fred/applications/mosquitto -R 20 | 21 | -------------------------------------------------------------------------------- /third-party-tools/mosquitto/install/readme.txt: -------------------------------------------------------------------------------- 1 | Starting Mosquitto docker 2 | ------------------------ 3 | 4 | 1. Run AutomationServer/third-party-tools/mosquitto/install/prerequisite 5 | 2. Launch mosquitto docker : AutomationServer/third-party-tools/mosquitto/docker/mosquitto_dockerrun 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /third-party-tools/node-red/docker/.env: -------------------------------------------------------------------------------- 1 | COMPOSE_PROJECT_NAME=node-red 2 | -------------------------------------------------------------------------------- /third-party-tools/node-red/docker/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3.7' 2 | 3 | services: 4 | node-red: 5 | image: nodered/node-red:1.0.3-3-12 6 | container_name: node-red-1.0.3-3-12 7 | restart: unless-stopped 8 | environment: 9 | - TZ=Europe/Paris 10 | - FLOWS=home_flows.json 11 | volumes: 12 | - /home/fred/applications/node-red/data:/data 13 | - /etc/localtime:/etc/localtime:ro 14 | ports: 15 | - 1880:1880 16 | networks: 17 | - automationserver 18 | 19 | networks: 20 | automationserver: 21 | name: automationserver-network 22 | 23 | -------------------------------------------------------------------------------- /third-party-tools/node-red/docker/nodered_dockerrun: -------------------------------------------------------------------------------- 1 | docker-compose up -d 2 | -------------------------------------------------------------------------------- /third-party-tools/node-red/docker/nodered_dockerstop: -------------------------------------------------------------------------------- 1 | docker-compose down 2 | -------------------------------------------------------------------------------- /third-party-tools/node-red/install/prerequisite: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | #create volume bind with docker container 4 | mkdir -p /home/fred/applications/node-red/data 5 | 6 | #node-red is launch with pirate user (uid=1000) 7 | #folder is owned by fred user 8 | chmod o+rwx /home/fred/applications/node-red/data 9 | 10 | -------------------------------------------------------------------------------- /third-party-tools/node-red/install/readme.txt: -------------------------------------------------------------------------------- 1 | #Installer des nouveaux noeuds 2 | 3 | # Open a shell in the container 4 | docker exec -it mynodered /bin/bash 5 | 6 | # Once inside the container, npm install the nodes in /data 7 | cd /data 8 | npm install node-red-node-smooth 9 | exit 10 | 11 | # Restart the container to load the new nodes 12 | docker stop mynodered 13 | docker start mynodered 14 | 15 | #Noeuds nécessaires: 16 | 17 | npm install node-red-contrib-bigtimer 18 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/boilerChart.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 |
11 | 12 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/caveChart.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 |
11 | 12 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/cctvCam1Chart.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 |
11 | 12 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/charts.css: -------------------------------------------------------------------------------- 1 | .container iframe { 2 | width: 100%; 3 | height: 400px; 4 | } 5 | 6 | .container { 7 | width: 98%; 8 | margin: 0 auto; 9 | } 10 | 11 | h2 { 12 | text-align: center; 13 | } 14 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/elecChart.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 |
11 | 12 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/exterieurChart.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 |
11 | 12 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/index.html: -------------------------------------------------------------------------------- 1 | 2 |

openHAB user provided static content

3 |

Serve your own static html pages or resources from here. Files stored in the openHAB configuration subfolder html will be available through the HTTP server of openHAB, e.g. http://device-address:8080/static/image.png.

4 |

Resources for sitemap elements (image, video,...) can also be provided though this folder.

5 | 6 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/issue-120.css: -------------------------------------------------------------------------------- 1 | .mdl-ripple { background: #000; opacity: 0.001; } 2 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/issue-120.html: -------------------------------------------------------------------------------- 1 | 4 | 5 | 8 | 9 | 10 | 11 | 36 | 37 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/pluvioChart.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 |
11 | 12 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/readme.txt: -------------------------------------------------------------------------------- 1 | Serve your own static html pages or resources from here. 2 | Files stored in this folder will be available through the HTTP server of openHAB, e.g. "http://device-address:8080/static/image.png". 3 | Resources for sitemap elements (image, video,...) can also be provided though this folder. 4 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/salonChart.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 |
11 | 12 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/colorful/blowing-snow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/colorful/blowing-snow.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/colorful/clear-night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/colorful/clear-night.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/colorful/cloudy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/colorful/cloudy.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/colorful/dust.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/colorful/dust.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/colorful/few-showers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/colorful/few-showers.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/colorful/fog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/colorful/fog.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/colorful/freezing-drizzle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/colorful/freezing-drizzle.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/colorful/freezing-rain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/colorful/freezing-rain.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/colorful/hot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/colorful/hot.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/colorful/light-snow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/colorful/light-snow.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/colorful/mostly-cloudy-day.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/colorful/mostly-cloudy-day.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/colorful/mostly-cloudy-night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/colorful/mostly-cloudy-night.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/colorful/partly-cloudy-day.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/colorful/partly-cloudy-day.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/colorful/partly-cloudy-night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/colorful/partly-cloudy-night.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/colorful/rain-and-sleet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/colorful/rain-and-sleet.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/colorful/rain-and-snow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/colorful/rain-and-snow.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/colorful/rain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/colorful/rain.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/colorful/scattered-showers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/colorful/scattered-showers.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/colorful/scattered-thunder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/colorful/scattered-thunder.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/colorful/scattered-thundershowers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/colorful/scattered-thundershowers.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/colorful/sleet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/colorful/sleet.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/colorful/snow-and-sleet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/colorful/snow-and-sleet.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/colorful/snow-flurries.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/colorful/snow-flurries.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/colorful/snow-showers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/colorful/snow-showers.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/colorful/snow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/colorful/snow.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/colorful/storm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/colorful/storm.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/colorful/sunny.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/colorful/sunny.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/colorful/thunder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/colorful/thunder.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/colorful/thundershower.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/colorful/thundershower.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/colorful/unknown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/colorful/unknown.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/colorful/wind.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/colorful/wind.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/dark/blowing-snow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/dark/blowing-snow.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/dark/clear-night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/dark/clear-night.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/dark/cloudy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/dark/cloudy.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/dark/dust.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/dark/dust.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/dark/few-showers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/dark/few-showers.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/dark/fog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/dark/fog.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/dark/freezing-drizzle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/dark/freezing-drizzle.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/dark/freezing-rain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/dark/freezing-rain.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/dark/hot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/dark/hot.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/dark/light-snow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/dark/light-snow.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/dark/mostly-cloudy-day.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/dark/mostly-cloudy-day.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/dark/mostly-cloudy-night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/dark/mostly-cloudy-night.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/dark/partly-cloudy-day.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/dark/partly-cloudy-day.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/dark/partly-cloudy-night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/dark/partly-cloudy-night.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/dark/rain-and-sleet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/dark/rain-and-sleet.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/dark/rain-and-snow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/dark/rain-and-snow.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/dark/rain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/dark/rain.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/dark/scattered-showers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/dark/scattered-showers.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/dark/scattered-thunder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/dark/scattered-thunder.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/dark/scattered-thundershowers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/dark/scattered-thundershowers.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/dark/sleet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/dark/sleet.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/dark/snow-and-sleet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/dark/snow-and-sleet.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/dark/snow-flurries.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/dark/snow-flurries.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/dark/snow-showers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/dark/snow-showers.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/dark/snow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/dark/snow.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/dark/storm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/dark/storm.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/dark/sunny.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/dark/sunny.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/dark/thunder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/dark/thunder.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/dark/thundershower.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/dark/thundershower.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/dark/unknown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/dark/unknown.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/dark/wind.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/dark/wind.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_black/blowing-snow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_black/blowing-snow.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_black/clear-night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_black/clear-night.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_black/cloudy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_black/cloudy.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_black/dust.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_black/dust.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_black/few-showers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_black/few-showers.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_black/fog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_black/fog.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_black/freezing-drizzle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_black/freezing-drizzle.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_black/freezing-rain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_black/freezing-rain.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_black/hot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_black/hot.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_black/light-snow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_black/light-snow.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_black/mostly-cloudy-day.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_black/mostly-cloudy-day.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_black/mostly-cloudy-night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_black/mostly-cloudy-night.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_black/partly-cloudy-day.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_black/partly-cloudy-day.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_black/partly-cloudy-night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_black/partly-cloudy-night.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_black/rain-and-sleet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_black/rain-and-sleet.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_black/rain-and-snow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_black/rain-and-snow.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_black/rain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_black/rain.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_black/scattered-showers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_black/scattered-showers.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_black/scattered-thunder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_black/scattered-thunder.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_black/scattered-thundershowers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_black/scattered-thundershowers.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_black/sleet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_black/sleet.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_black/snow-and-sleet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_black/snow-and-sleet.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_black/snow-flurries.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_black/snow-flurries.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_black/snow-showers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_black/snow-showers.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_black/snow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_black/snow.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_black/storm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_black/storm.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_black/sunny.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_black/sunny.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_black/thunder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_black/thunder.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_black/thundershower.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_black/thundershower.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_black/unknown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_black/unknown.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_black/wind.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_black/wind.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/blowing-snow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/blowing-snow.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/clear-night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/clear-night.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/cloudy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/cloudy.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/dust.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/dust.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/few-showers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/few-showers.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/fog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/fog.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/freezing-drizzle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/freezing-drizzle.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/freezing-rain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/freezing-rain.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/hot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/hot.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/light-snow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/light-snow.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/mostly-cloudy-day.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/mostly-cloudy-day.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/mostly-cloudy-night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/mostly-cloudy-night.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/partly-cloudy-day.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/partly-cloudy-day.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/partly-cloudy-night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/partly-cloudy-night.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/rain-and-sleet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/rain-and-sleet.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/rain-and-snow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/rain-and-snow.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/rain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/rain.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/scattered-showers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/scattered-showers.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/scattered-thunder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/scattered-thunder.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/scattered-thundershowers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/scattered-thundershowers.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/sleet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/sleet.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/snow-and-sleet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/snow-and-sleet.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/snow-flurries.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/snow-flurries.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/snow-showers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/snow-showers.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/snow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/snow.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/storm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/storm.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/sunny.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/sunny.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/thunder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/thunder.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/thundershower.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/thundershower.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/unknown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/unknown.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/wind.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_colorful/wind.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_white/blowing-snow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_white/blowing-snow.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_white/clear-night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_white/clear-night.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_white/cloudy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_white/cloudy.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_white/dust.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_white/dust.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_white/few-showers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_white/few-showers.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_white/fog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_white/fog.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_white/freezing-drizzle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_white/freezing-drizzle.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_white/freezing-rain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_white/freezing-rain.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_white/hot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_white/hot.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_white/light-snow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_white/light-snow.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_white/mostly-cloudy-day.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_white/mostly-cloudy-day.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_white/mostly-cloudy-night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_white/mostly-cloudy-night.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_white/partly-cloudy-day.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_white/partly-cloudy-day.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_white/partly-cloudy-night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_white/partly-cloudy-night.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_white/rain-and-sleet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_white/rain-and-sleet.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_white/rain-and-snow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_white/rain-and-snow.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_white/rain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_white/rain.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_white/scattered-showers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_white/scattered-showers.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_white/scattered-thunder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_white/scattered-thunder.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_white/scattered-thundershowers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_white/scattered-thundershowers.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_white/sleet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_white/sleet.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_white/snow-and-sleet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_white/snow-and-sleet.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_white/snow-flurries.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_white/snow-flurries.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_white/snow-showers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_white/snow-showers.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_white/snow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_white/snow.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_white/storm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_white/storm.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_white/sunny.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_white/sunny.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_white/thunder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_white/thunder.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_white/thundershower.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_white/thundershower.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_white/unknown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_white/unknown.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/flat_white/wind.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/flat_white/wind.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/light/blowing-snow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/light/blowing-snow.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/light/clear-night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/light/clear-night.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/light/cloudy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/light/cloudy.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/light/dust.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/light/dust.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/light/few-showers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/light/few-showers.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/light/fog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/light/fog.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/light/freezing-drizzle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/light/freezing-drizzle.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/light/freezing-rain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/light/freezing-rain.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/light/hot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/light/hot.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/light/light-snow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/light/light-snow.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/light/mostly-cloudy-day.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/light/mostly-cloudy-day.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/light/mostly-cloudy-night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/light/mostly-cloudy-night.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/light/partly-cloudy-day.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/light/partly-cloudy-day.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/light/partly-cloudy-night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/light/partly-cloudy-night.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/light/rain-and-sleet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/light/rain-and-sleet.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/light/rain-and-snow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/light/rain-and-snow.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/light/rain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/light/rain.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/light/scattered-showers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/light/scattered-showers.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/light/scattered-thunder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/light/scattered-thunder.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/light/scattered-thundershowers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/light/scattered-thundershowers.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/light/sleet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/light/sleet.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/light/snow-and-sleet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/light/snow-and-sleet.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/light/snow-flurries.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/light/snow-flurries.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/light/snow-showers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/light/snow-showers.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/light/snow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/light/snow.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/light/storm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/light/storm.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/light/sunny.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/light/sunny.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/light/thunder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/light/thunder.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/light/thundershower.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/light/thundershower.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/light/unknown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/light/unknown.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/images/light/wind.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/html/weather-data/images/light/wind.png -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/layouts/example.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-size: 14px; 3 | font-family: Helvetica, sans-serif; 4 | } 5 | 6 | table { 7 | border-spacing: 0px; 8 | border: 0px; 9 | padding: 0px; 10 | width: 1px; 11 | } 12 | 13 | #weather-table, #weather-location-name{ 14 | padding-bottom: 10px; 15 | } 16 | 17 | #weather-icon { 18 | width: 90px; 19 | height: 90px; 20 | padding-right: 5px; 21 | } 22 | 23 | #weather-temp { 24 | font-size: 35px; 25 | width: 1px; 26 | } 27 | 28 | #weather-temp-sign { 29 | vertical-align: top; 30 | padding-top: 9px; 31 | font-size: 16px; 32 | } 33 | 34 | #weather-table-details { 35 | font-size: 12px; 36 | } 37 | 38 | #weather-table-details td { 39 | white-space: nowrap; 40 | } 41 | 42 | #weather-forecast-table img { 43 | width: 70px; 44 | height: 70px; 45 | } 46 | 47 | #weather-forecast-table td { 48 | text-align: center; 49 | } 50 | 51 | #weather-forecast-table .temp-max { 52 | font-size: 18px; 53 | color: red; 54 | } 55 | 56 | #weather-forecast-table .temp-min { 57 | font-size: 16px; 58 | color: blue; 59 | } -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/layouts/example.js: -------------------------------------------------------------------------------- 1 | /* 2 | Disables the border and scrolling of the Webview sitemap iframe in the openhab.app webpage. 3 | */ 4 | function formatIframe() { 5 | var iframe = window.frameElement; 6 | if (iframe) { 7 | iframe.style.border = "0px"; 8 | iframe.scrolling = "no"; 9 | iframe.style.height = "280px"; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/html/weather-data/layouts/readme.txt: -------------------------------------------------------------------------------- 1 | Display 2 | ------- 3 | Either call it directly 4 | http://YOUR_SERVER:8080/weather?locationId=...&layout=example&iconset=colorful 5 | 6 | or with a sitemap: 7 | Webview url="/weather?locationId=...&layout=example&iconset=colorful" height=7 8 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/items/anemometer.items: -------------------------------------------------------------------------------- 1 | String Anemometer_Rpm "Rpm : [%s] r/5s" {channel="mqtt:topic:homeMqttBroker:anemometer:anemometerrpm"} 2 | String Anemometer_Voltage "Batt. anemomètre : [%s] v" {channel="mqtt:topic:homeMqttBroker:anemometer:anemometervoltage"} 3 | DateTime Anemometer_LastUpdate "Maj anemomètre [%1$tA, %1$td.%1$tm.%1$tY %1$tH:%1$tM]" 4 | 5 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/items/basement.items: -------------------------------------------------------------------------------- 1 | Number Cave_Temp "Température [%.1f °C]" {channel="mqtt:topic:homeMqttBroker:basement:cave_temp"} 2 | Number Cave_Humidity "Humidité [%.2f %%]" {channel="mqtt:topic:homeMqttBroker:basement:cave_humidity"} 3 | String Cave_Extractor "Etat extracteur [%s]" {channel="mqtt:topic:homeMqttBroker:basement:cave_extractor"} 4 | 5 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/items/ble_hub.items: -------------------------------------------------------------------------------- 1 | String Upstairs_Ble_Hub "BLE Hub Etage dernière activité" { channel="mqtt:topic:homeMqttBroker:ble_hub:upstairs_ble_hub" } 2 | DateTime Upstairs_Ble_Hub_LastUpdate "BLE Hub Etage dernière activité : [%1$tA, %1$td.%1$tm.%1$tY %1$tH:%1$tM]" 3 | String Downstairs_Ble_Hub "BLE Hub Rez Chaussée dernière activité" { channel="mqtt:topic:homeMqttBroker:ble_hub:downstairs_ble_hub" } 4 | DateTime Downstairs_Ble_Hub_LastUpdate "BLE Hub Rez Chaussée dernière activité : [%1$tA, %1$td.%1$tm.%1$tY %1$tH:%1$tM]" 5 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/items/electricity.items: -------------------------------------------------------------------------------- 1 | String HeurePleine "Heure pleine : [%s]" {channel="mqtt:topic:homeMqttBroker:electricity:heurepleine"} 2 | String HeureCreuse "Heure creuse : [%s]" {channel="mqtt:topic:homeMqttBroker:electricity:heurecreuse"} 3 | String ConsoInst "Conso. instantanée : [%s]" {channel="mqtt:topic:homeMqttBroker:electricity:consoinst"} 4 | String TodayCost "Coût journalier : [%s €]" {channel="mqtt:topic:homeMqttBroker:electricity:today_cost"} 5 | String MonthCost "Coût mensuel : [%s €]" {channel="mqtt:topic:homeMqttBroker:electricity:month_cost"} 6 | 7 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/items/garage.items: -------------------------------------------------------------------------------- 1 | Number Garage_Temp "Temp. garage [%.2f °C]" { channel="mqtt:topic:homeMqttBroker:outside:garage_temp" } 2 | Number Pressure "Pression atmosphérique [%.2f hPa]" { channel="mqtt:topic:homeMqttBroker:outside:pressure" } 3 | Number Pressure_Normalized "Pression atmo. normalisée [%.2f hPa]" 4 | DateTime GarageSensor_LastUpdate "Dernière récep. capteur [%1$tA, %1$td.%1$tm.%1$tY %1$tH:%1$tM]" 5 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/items/mailbox.items: -------------------------------------------------------------------------------- 1 | String Mailbox_Vcc "Batterie [%s]" {channel="mqtt:topic:homeMqttBroker:mailbox:mailbox_vcc"} 2 | DateTime Mailbox_LastUpdate "Dernière réception courrier [%1$tA, %1$td.%1$tm.%1$tY %1$tH:%1$tM]" 3 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/items/manon.items: -------------------------------------------------------------------------------- 1 | Number Manon_Current_Temp "Temp. actuelle [%.1f °C]" {channel="mqtt:topic:homeMqttBroker:rooms:manon_current_temp"} 2 | Number Manon_Programmed_Temp "Temp. programmée [%.1f °C]" {channel="mqtt:topic:homeMqttBroker:rooms:manon_programmed_temp"} 3 | Number Manon_Humidity "Humidité [%d %%]" {channel="mqtt:topic:homeMqttBroker:rooms:manon_humidity"} 4 | String Manon_Heater_State "Etat radiateur [MAP(heater_state.map):%s]" {channel="mqtt:topic:homeMqttBroker:rooms:manon_heater_state"} 5 | String Manon_Sensor_State "Etat capteur [MAP(sensor_state.map):%s]" {channel="mqtt:topic:homeMqttBroker:rooms:manon_sensor_state"} 6 | String Manon_Sensor_LastInfo "Dernière info capteur [%s]" {channel="mqtt:topic:homeMqttBroker:rooms:manon_sensor_lastinfo"} 7 | String Manon_Heater_NextChange "Prochaine prog. [%s]" {channel="mqtt:topic:homeMqttBroker:rooms:manon_heater_nextchange"} 8 | Number Manon_Wanted_Temp "Définir la dérogation [%.1f °C]" {channel="mqtt:topic:homeMqttBroker:rooms:manon_wanted_temp"} 9 | Number Manon_Derog "Dérogation en cours à [%.1f °C]" 10 | Number Manon_Battery "Batterie [%.2f v]" {channel="mqtt:topic:homeMqttBroker:rooms:manon_battery"} 11 | Number Manon_Sensor_Rssi "Rssi [%d]" {channel="mqtt:topic:homeMqttBroker:rooms:manon_sensor_rssi"} 12 | Switch Manon_Derog_Visibility 13 | 14 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/items/readme.txt: -------------------------------------------------------------------------------- 1 | Your item definitions go here. 2 | All items files have to have the ".items" file extension and must follow a special syntax. 3 | 4 | Check out the openHAB documentation for more details: 5 | http://docs.openhab.org/configuration/items.html 6 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/items/salon.items: -------------------------------------------------------------------------------- 1 | Number Salon_Current_Temp "Temp. actuelle [%.1f °C]" {channel="mqtt:topic:homeMqttBroker:rooms:salon_current_temp"} 2 | Number Salon_Programmed_Temp "Temp. programmée [%.1f °C]" {channel="mqtt:topic:homeMqttBroker:rooms:salon_programmed_temp"} 3 | Number Salon_Humidity "Humidité [%.2f %%]" {channel="mqtt:topic:homeMqttBroker:rooms:salon_humidity"} 4 | String Salon_Heater_State "Etat radiateur [MAP(heater_state.map):%s]" {channel="mqtt:topic:homeMqttBroker:rooms:salon_heater_state"} 5 | String Salon_Sensor_State "Etat capteur [MAP(sensor_state.map):%s]" {channel="mqtt:topic:homeMqttBroker:rooms:salon_sensor_state"} 6 | String Salon_Sensor_LastInfo "Dernière info capteur [%s]" {channel="mqtt:topic:homeMqttBroker:rooms:salon_sensor_lastinfo"} 7 | String Salon_Heater_NextChange "Prochaine prog. [%s]" {channel="mqtt:topic:homeMqttBroker:rooms:salon_heater_nextchange"} 8 | Number Salon_Wanted_Temp "Définir la dérogation [%.1f °C]" {channel="mqtt:topic:homeMqttBroker:rooms:salon_wanted_temp"} 9 | Number Salon_Derog "Dérogation en cours à [%.1f °C]" 10 | Number Salon_Battery "Batterie [%.2f v]" {channel="mqtt:topic:homeMqttBroker:rooms:salon_battery"} 11 | Number Salon_Sensor_Rssi "Rssi [%d]" {channel="mqtt:topic:homeMqttBroker:rooms:salon_sensor_rssi"} 12 | Switch Salon_Derog_Visibility 13 | Switch Salon_HUE_Motion "Capteur présence" { http="<[http://192.168.1.2/api/DVB9hqva71-vbGkJgQ5GElkUclfXi4g8DWCxGqWQ/sensors/5:3000:JS(getHueMotionEvent.js)]" } 14 | String Salon_FrontDoor_State "Porte entrée [MAP(door_state.map):%s]" {channel="mqtt:topic:homeMqttBroker:rooms:salon_frontdoor_state"} 15 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/items/watermeter.items: -------------------------------------------------------------------------------- 1 | String WaterConsumptionByHour "Conso. heure en cours : [%s] l" {channel="mqtt:topic:homeMqttBroker:watermeter:waterconsumptionbyhour"} 2 | String WaterConsumptionByDay "Conso. du jour : [%s] l" {channel="mqtt:topic:homeMqttBroker:watermeter:waterconsumptionbyday"} 3 | String WaterMeterVoltage "Batt. water meter : [%s] v" {channel="mqtt:topic:homeMqttBroker:watermeter:watermetervoltage"} 4 | DateTime WaterMeter_LastUpdate "Maj water meter [%1$tA, %1$td.%1$tm.%1$tY %1$tH:%1$tM]" 5 | 6 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/items/windvane.items: -------------------------------------------------------------------------------- 1 | String Windvane_Direction "Vent : [%s]" {channel="mqtt:topic:homeMqttBroker:windvane:windvanedirection"} 2 | String Windvane_Voltage "Batt. windvane : [%s] v" {channel="mqtt:topic:homeMqttBroker:windvane:windvanevoltage"} 3 | DateTime Windvane_LastUpdate "Maj windvane [%1$tA, %1$td.%1$tm.%1$tY %1$tH:%1$tM]" 4 | 5 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/misc/exec.whitelist: -------------------------------------------------------------------------------- 1 | # For security reasons all commands that are used by the exec binding or transformation need to be whitelisted. 2 | # Every command needs to be listed on a separate line below. 3 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/persistence/readme.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/persistence/readme.txt -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/rules/anemometer.rules: -------------------------------------------------------------------------------- 1 | import org.openhab.core.library.types.DateTimeType 2 | 3 | rule "Handle Anemometer Notification" 4 | when 5 | Item Anemometer_Voltage received update 6 | then 7 | Anemometer_LastUpdate.postUpdate(new DateTimeType()) 8 | end 9 | 10 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/rules/ble_hub.rules: -------------------------------------------------------------------------------- 1 | import org.openhab.core.library.types.DateTimeType 2 | 3 | rule "Handle Upstairs Ble Hub Notification" 4 | when 5 | Item Upstairs_Ble_Hub received update 6 | then 7 | Upstairs_Ble_Hub_LastUpdate.postUpdate(new DateTimeType()) 8 | end 9 | 10 | rule "Handle Downstairs Ble Hub Notification" 11 | when 12 | Item Downstairs_Ble_Hub received update 13 | then 14 | Downstairs_Ble_Hub_LastUpdate.postUpdate(new DateTimeType()) 15 | end 16 | 17 | 18 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/rules/fishfeeder.rules_old: -------------------------------------------------------------------------------- 1 | import org.openhab.core.library.types.DateTimeType 2 | 3 | rule "Handle Fish Feeder Notification" 4 | when 5 | Item Manon_Fish_Feeder received update 6 | then 7 | Manon_Fish_Feeder_LastUpdate.postUpdate(new DateTimeType()) 8 | end 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/rules/garagesensor.rules: -------------------------------------------------------------------------------- 1 | import org.openhab.core.library.types.DateTimeType 2 | 3 | rule "Handle Garage Sensor Notification" 4 | when 5 | Item Garage_Temp received update 6 | then 7 | GarageSensor_LastUpdate.postUpdate(new DateTimeType()) 8 | end 9 | 10 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/rules/mailbox.rules: -------------------------------------------------------------------------------- 1 | import org.openhab.core.library.types.DateTimeType 2 | 3 | rule "Handle Mailbox Notification" 4 | when 5 | Item Mailbox_Vcc received update 6 | then 7 | Mailbox_LastUpdate.postUpdate(new DateTimeType()) 8 | end 9 | 10 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/rules/pressure.rules: -------------------------------------------------------------------------------- 1 | import org.openhab.core.library.types.DecimalType 2 | 3 | rule "Handle Normalised Pressure" 4 | when 5 | Item Pressure received update 6 | then 7 | val DecimalType pressure = Pressure.state as DecimalType 8 | val normalized_pressure = (pressure + (122 / 8.3)) 9 | Pressure_Normalized.postUpdate(new DecimalType(normalized_pressure)) 10 | end 11 | 12 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/rules/raingauge.rules: -------------------------------------------------------------------------------- 1 | import org.openhab.core.library.types.DateTimeType 2 | 3 | rule "Handle RainGauge Notification" 4 | when 5 | Item Raingauge_Vcc received update 6 | then 7 | Raingauge_LastUpdate.postUpdate(new DateTimeType()) 8 | end 9 | 10 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/rules/readme.txt: -------------------------------------------------------------------------------- 1 | Your rules go here. 2 | All rule files have to have the ".rules" file extension and must follow a special syntax. 3 | 4 | Check out the openHAB documentation for more details: 5 | http://docs.openhab.org/features/automation/ruledsl.html 6 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/rules/watermeter.rules: -------------------------------------------------------------------------------- 1 | import org.openhab.core.library.types.DateTimeType 2 | 3 | rule "Handle WaterMeter Notification" 4 | when 5 | Item WaterMeterVoltage received update 6 | then 7 | WaterMeter_LastUpdate.postUpdate(new DateTimeType()) 8 | end 9 | 10 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/rules/windvane.rules: -------------------------------------------------------------------------------- 1 | import org.openhab.core.library.types.DateTimeType 2 | 3 | rule "Handle Windvane Notification" 4 | when 5 | Item Windvane_Voltage received update 6 | then 7 | Windvane_LastUpdate.postUpdate(new DateTimeType()) 8 | end 9 | 10 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/scripts/readme.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fguiet/AutomationServer/317d756f8522820327d107c7ef62a43c24ae244b/third-party-tools/openhab/conf/scripts/readme.txt -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/services/http.cfg: -------------------------------------------------------------------------------- 1 | # timeout in milliseconds for the http requests (optional, defaults to 5000) 2 | #timeout= 3 | 4 | # the interval in milliseconds when to find new refresh candidates 5 | # (optional, defaults to 1000) 6 | #granularity= 7 | 8 | # whether to substitute the current time or state value into the URL 9 | # (optional, defaults to true) 10 | #format= 11 | 12 | # configuration of the first cache item 13 | #.url= 14 | #.updateInterval= 15 | 16 | # configuration of the second cache item 17 | #.url= 18 | #.updateInterval= 19 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/services/mqtt-eventbus.cfg: -------------------------------------------------------------------------------- 1 | # Name of the broker as it is defined in the openhab.cfg. If this property is not available, no event bus MQTT binding will be created. 2 | #broker= 3 | 4 | # When available, all status updates which occur on the openHAB event bus are published to the provided topic. The message content will 5 | # be the status. The variable ${item} will be replaced during publishing with the item name for which the state was received. 6 | #statePublishTopic= 7 | 8 | # When available, all commands which occur on the openHAB event bus are published to the provided topic. The message content will be the 9 | # command. The variable ${item} will be replaced during publishing with the item name for which the command was received. 10 | #commandPublishTopic= 11 | 12 | # When available, all status updates received on this topic will be posted to the openHAB event bus. The message content is assumed to be 13 | # a string representation of the status. The topic should include the variable ${item} to indicate which part of the topic contains the 14 | # item name which can be used for posting the received value to the event bus. 15 | #stateSubscribeTopic= 16 | 17 | # When available, all commands received on this topic will be posted to the openHAB event bus. The message content is assumed to be a 18 | # string representation of the command. The topic should include the variable ${item} to indicate which part of the topic contains the 19 | # item name which can be used for posting the received value to the event bus. 20 | #commandSubscribeTopic= 21 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/services/mqtt.cfg: -------------------------------------------------------------------------------- 1 | # 2 | # Define your MQTT broker connections here for use in the MQTT Binding or MQTT 3 | # Persistence bundles. Replace with an ID you choose. 4 | # 5 | 6 | # URL to the MQTT broker, e.g. tcp://localhost:1883 or ssl://localhost:8883 7 | mosquitto-broker.url=tcp://192.168.1.25:1883 8 | 9 | # Optional. Client id (max 23 chars) to use when connecting to the broker. 10 | # If not provided a default one is generated. 11 | mosquitto-broker.clientId=openhab2 12 | 13 | # Optional. User id to authenticate with the broker. 14 | #.user= 15 | 16 | # Optional. Password to authenticate with the broker. 17 | #.pwd= 18 | 19 | # Optional. Set the quality of service level for sending messages to this broker. 20 | # Possible values are 0 (Deliver at most once),1 (Deliver at least once) or 2 21 | # (Deliver exactly once). Defaults to 0. 22 | #.qos= 23 | 24 | # Optional. True or false. Defines if the broker should retain the messages sent to 25 | # it. Defaults to false. 26 | #.retain= 27 | 28 | # Optional. True or false. Defines if messages are published asynchronously or 29 | # synchronously. Defaults to true. 30 | #.async= 31 | 32 | # Optional. Defines the last will and testament that is sent when this client goes offline 33 | # Format: topic:message:qos:retained
34 | #.lwt= 35 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/services/readme.txt: -------------------------------------------------------------------------------- 1 | Your service configurations will reside here. 2 | All configuration files have to have the ".cfg" file extension. 3 | Service configuration files are automatically created as soon as you install an add-on that can be configured. 4 | 5 | Check out the openHAB documentation for more details: 6 | http://docs.openhab.org/configuration/services.html 7 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/sitemaps/readme.txt: -------------------------------------------------------------------------------- 1 | Your sitemap definitions go here. 2 | All sitemap files have to have the ".sitemap" file extension and must follow a special syntax. 3 | 4 | Check out the openHAB documentation for more details: 5 | http://docs.openhab.org/features/sitemap.html 6 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/things/weather.things: -------------------------------------------------------------------------------- 1 | Bridge openweathermap:weather-api:api "OpenWeatherMap Account" [apikey="ff842058b1cb20e5af06378a4a8015e9", refreshInterval=30, language="fr"] { 2 | Thing weather-and-forecast meteo_artenay "Météo Artenay" [location="48.08,1.88", forecastHours=0, forecastDays=7] 3 | } 4 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/transform/boiler_state.map: -------------------------------------------------------------------------------- 1 | OFF=ETEINT 2 | ON=ALLUME 3 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/transform/de.map: -------------------------------------------------------------------------------- 1 | CLOSED=zu 2 | OPEN=offen 3 | NULL=undefiniert 4 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/transform/door_state.map: -------------------------------------------------------------------------------- 1 | 0=OUVERTE 2 | 1=FERMEE 3 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/transform/en.map: -------------------------------------------------------------------------------- 1 | CLOSED=closed 2 | OPEN=open 3 | NULL=unknown 4 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/transform/getAlarmMgt.js: -------------------------------------------------------------------------------- 1 | // Wrap everything in a function 2 | (function(i) { 3 | var 4 | array = i.split(";"); 5 | return array[7]; 6 | })(input) 7 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/transform/getAwayMode.js: -------------------------------------------------------------------------------- 1 | // Wrap everything in a function 2 | (function(i) { 3 | var 4 | array = i.split(";"); 5 | return array[3]; 6 | })(input) 7 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/transform/getBattery.js: -------------------------------------------------------------------------------- 1 | // Wrap everything in a function 2 | (function(i) { 3 | var 4 | array = i.split(";"); 5 | return array[9]; 6 | })(input) 7 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/transform/getBoilerLastInfo.js: -------------------------------------------------------------------------------- 1 | // Wrap everything in a function 2 | (function(i) { 3 | var 4 | array = i.split(";"); 5 | return array[12]; 6 | })(input) 7 | 8 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/transform/getBoilerLastOnDuration.js: -------------------------------------------------------------------------------- 1 | // Wrap everything in a function 2 | (function(i) { 3 | var 4 | array = i.split(";"); 5 | return array[13]; 6 | })(input) 7 | 8 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/transform/getBoilerState.js: -------------------------------------------------------------------------------- 1 | // Wrap everything in a function 2 | (function(i) { 3 | var 4 | array = i.split(";"); 5 | return array[14]; 6 | })(input) 7 | 8 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/transform/getBoilerTemp.js: -------------------------------------------------------------------------------- 1 | // Wrap everything in a function 2 | (function(i) { 3 | var 4 | array = i.split(";"); 5 | return array[15]; 6 | })(input) 7 | 8 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/transform/getCaveExtractor.js: -------------------------------------------------------------------------------- 1 | // Wrap everything in a function 2 | (function(i) { 3 | var 4 | array = i.split(";"); 5 | return array[3]; 6 | })(input) 7 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/transform/getCaveHumi.js: -------------------------------------------------------------------------------- 1 | // Wrap everything in a function 2 | (function(i) { 3 | var 4 | array = i.split(";"); 5 | return array[2]; 6 | })(input) 7 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/transform/getCaveTemp.js: -------------------------------------------------------------------------------- 1 | // Wrap everything in a function 2 | (function(i) { 3 | var 4 | array = i.split(";"); 5 | return array[1]; 6 | })(input) 7 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/transform/getConsoInst.js: -------------------------------------------------------------------------------- 1 | // Wrap everything in a function 2 | (function(i) { 3 | var 4 | array = i.split(";"); 5 | return array[2]; 6 | })(input) 7 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/transform/getCurrentTemp.js: -------------------------------------------------------------------------------- 1 | // Wrap everything in a function 2 | (function(i) { 3 | var 4 | array = i.split(";"); 5 | return array[0]; 6 | })(input) 7 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/transform/getHeaterState.js: -------------------------------------------------------------------------------- 1 | // Wrap everything in a function 2 | (function(i) { 3 | var 4 | array = i.split(";"); 5 | return array[4]; 6 | })(input) 7 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/transform/getHeureCreuse.js: -------------------------------------------------------------------------------- 1 | // Wrap everything in a function 2 | (function(i) { 3 | var 4 | array = i.split(";"); 5 | return array[0]; 6 | })(input) 7 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/transform/getHeurePleine.js: -------------------------------------------------------------------------------- 1 | // Wrap everything in a function 2 | (function(i) { 3 | var 4 | array = i.split(";"); 5 | return array[1]; 6 | })(input) 7 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/transform/getHueMotionEvent.js: -------------------------------------------------------------------------------- 1 | (function(i) { 2 | var json = JSON.parse(i); 3 | return ((json['state']['presence'])) == true ? "ON" : "OFF"; 4 | })(input) 5 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/transform/getHumidity.js: -------------------------------------------------------------------------------- 1 | // Wrap everything in a function 2 | (function(i) { 3 | var 4 | array = i.split(";"); 5 | return array[1]; 6 | })(input) 7 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/transform/getMgtAutoMode.js: -------------------------------------------------------------------------------- 1 | // Wrap everything in a function 2 | (function(i) { 3 | var 4 | array = i.split(";"); 5 | return array[11]; 6 | })(input) 7 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/transform/getNextBill.js: -------------------------------------------------------------------------------- 1 | // Wrap everything in a function 2 | (function(i) { 3 | var 4 | array = i.split(";"); 5 | return array[4]; 6 | })(input) 7 | 8 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/transform/getNextChange.js: -------------------------------------------------------------------------------- 1 | // Wrap everything in a function 2 | (function(i) { 3 | var 4 | array = i.split(";"); 5 | return array[3]; 6 | })(input) 7 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/transform/getNextRSClose.js: -------------------------------------------------------------------------------- 1 | // Wrap everything in a function 2 | (function(i) { 3 | var 4 | array = i.split(";"); 5 | return array[9]; 6 | })(input) 7 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/transform/getNextRSOpen.js: -------------------------------------------------------------------------------- 1 | // Wrap everything in a function 2 | (function(i) { 3 | var 4 | array = i.split(";"); 5 | return array[8]; 6 | })(input) 7 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/transform/getProgTemp.js: -------------------------------------------------------------------------------- 1 | // Wrap everything in a function 2 | (function(i) { 3 | var 4 | array = i.split(";"); 5 | return array[2]; 6 | })(input) 7 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/transform/getRSMgt.js: -------------------------------------------------------------------------------- 1 | // Wrap everything in a function 2 | (function(i) { 3 | var 4 | array = i.split(";"); 5 | return array[5]; 6 | })(input) 7 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/transform/getRSNorthState.js: -------------------------------------------------------------------------------- 1 | // Wrap everything in a function 2 | (function(i) { 3 | var 4 | array = i.split(";"); 5 | return array[10]; 6 | })(input) 7 | 8 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/transform/getRSWestState.js: -------------------------------------------------------------------------------- 1 | // Wrap everything in a function 2 | (function(i) { 3 | var 4 | array = i.split(";"); 5 | return array[6]; 6 | })(input) 7 | 8 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/transform/getRaingaugeVcc.js: -------------------------------------------------------------------------------- 1 | // Wrap everything in a function 2 | (function(i) { 3 | var 4 | array = i.split(";"); 5 | return array[1]; 6 | })(input) 7 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/transform/getRssi.js: -------------------------------------------------------------------------------- 1 | // Wrap everything in a function 2 | (function(i) { 3 | var 4 | array = i.split(";"); 5 | return array[10]; 6 | })(input) 7 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/transform/getSensorLastInfo.js: -------------------------------------------------------------------------------- 1 | // Wrap everything in a function 2 | (function(i) { 3 | var 4 | array = i.split(";"); 5 | return array[8]; 6 | })(input) 7 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/transform/getSensorState.js: -------------------------------------------------------------------------------- 1 | // Wrap everything in a function 2 | (function(i) { 3 | var 4 | array = i.split(";"); 5 | return array[6]; 6 | })(input) 7 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/transform/getWantedTemp.js: -------------------------------------------------------------------------------- 1 | // Wrap everything in a function 2 | (function(i) { 3 | var 4 | array = i.split(";"); 5 | return array[7]; 6 | })(input) 7 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/transform/heater_state.map: -------------------------------------------------------------------------------- 1 | HEATEROFF=ETEINT 2 | HEATERON=ALLUME 3 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/transform/readme.txt: -------------------------------------------------------------------------------- 1 | Transformations like map or jsonpath can utilize configuration files with data definitions. 2 | These files have their specific file extensions and syntax definition. 3 | 4 | Check out the openHAB documentation for more details: 5 | http://docs.openhab.org/addons/transformations.html 6 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/transform/rs_state.map: -------------------------------------------------------------------------------- 1 | OPENED=OUVERT 2 | CLOSED=FERME 3 | UNDETERMINED=ENTRE-OUVERT 4 | UNREACHABLE=ERREUR 5 | VOID=INITIALISATION 6 | ERROR=ERREUR 7 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/transform/sensor_state.map: -------------------------------------------------------------------------------- 1 | SENSOROK=OK 2 | SENSORKO=KO 3 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/transform/setAlarmMgt.js: -------------------------------------------------------------------------------- 1 | // Wrap everything in a function 2 | (function(i) { 3 | return "SETALARMMGT;" + i.toString(); 4 | })(input) 5 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/transform/setAlarmMode.js: -------------------------------------------------------------------------------- 1 | // Wrap everything in a function 2 | (function(i) { 3 | return "SETALARM;" + i.toString(); 4 | })(input) 5 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/transform/setAwayMode.js: -------------------------------------------------------------------------------- 1 | // Wrap everything in a function 2 | (function(i) { 3 | return "SETAWAYMODE;" + i.toString(); 4 | })(input) 5 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/transform/setMgtAutoMode.js: -------------------------------------------------------------------------------- 1 | // Wrap everything in a function 2 | (function(i) { 3 | return "SETHOMEMODE;" + i.toString(); 4 | })(input) 5 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/transform/setRSMgt.js: -------------------------------------------------------------------------------- 1 | // Wrap everything in a function 2 | (function(i) { 3 | return "SETROLLERSHUTTERMGT;" + i.toString(); 4 | })(input) 5 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/transform/setRSNorthAction.js: -------------------------------------------------------------------------------- 1 | // Wrap everything in a function 2 | (function(i) { 3 | return "SETACTION;8;" + i.toString(); 4 | })(input) 5 | 6 | -------------------------------------------------------------------------------- /third-party-tools/openhab/conf/transform/setRSWestAction.js: -------------------------------------------------------------------------------- 1 | // Wrap everything in a function 2 | (function(i) { 3 | return "SETACTION;7;" + i.toString(); 4 | })(input) 5 | 6 | -------------------------------------------------------------------------------- /third-party-tools/openhab/docker/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3.7' 2 | 3 | services: 4 | openhab: 5 | network_mode: host 6 | image: openhab/openhab:2.5.4-armhf-debian 7 | container_name: openhab-2.5.4 8 | restart: unless-stopped 9 | volumes: 10 | - /etc/localtime:/etc/localtime:ro 11 | - /etc/timezone:/etc/timezone:ro 12 | - /home/fred/applications/openhab/conf:/openhab/conf 13 | - /home/fred/applications/openhab/userdata:/openhab/userdata 14 | - /home/fred/applications/openhab/addons:/openhab/addons 15 | environment: 16 | - USER_ID=9001 17 | - GROUP_ID=9001 18 | -------------------------------------------------------------------------------- /third-party-tools/openhab/docker/openhab_dockerrun: -------------------------------------------------------------------------------- 1 | docker-compose up -d 2 | -------------------------------------------------------------------------------- /third-party-tools/openhab/docker/openhab_dockerstop: -------------------------------------------------------------------------------- 1 | docker-compose down 2 | -------------------------------------------------------------------------------- /third-party-tools/openhab/install/crontab/restart_openhab: -------------------------------------------------------------------------------- 1 | CONTAINER_ID=$(docker ps -qf "name=^/openhab-.*$") 2 | docker stop ${CONTAINER_ID} 3 | docker start ${CONTAINER_ID} 4 | -------------------------------------------------------------------------------- /third-party-tools/openhab/install/prerequisite: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | #add openhab group 4 | sudo groupadd openhab --gid 9001 5 | #add openhab user 6 | sudo useradd -r -s /sbin/nologin openhab --uid 9001 -g openhab 7 | 8 | #create volume bind with docker container 9 | sudo mkdir -p /home/fred/applications/openhab/conf 10 | sudo mkdir -p /home/fred/applications/openhab/addons 11 | sudo mkdir -p /home/fred/applications/openhab/userdata 12 | 13 | #add conf file 14 | sudo cp -rf /home/fred/git/AutomationServer/third-party-tools/openhab/conf /home/fred/applications/openhab 15 | 16 | #change openhab folders owner 17 | sudo chown -R openhab:openhab /home/fred/applications/openhab 18 | -------------------------------------------------------------------------------- /third-party-tools/openhab/install/readme.txt: -------------------------------------------------------------------------------- 1 | Based on docker image https://hub.docker.com/r/openhab/openhab/ 2 | 3 | Starting openhab docker 4 | ------------------------ 5 | 6 | 1. Run AutomationServer/third-party-tools/openhab/install/prerequisite 7 | 8 | It will copy custom conf to shared folder 9 | 10 | 2. Launch openhab docker : AutomationServer/third-party-tools/openhab/docker/openhab_dockerrun 11 | 12 | openhab can be open via : http://openhabip:8080/basicui/app 13 | 14 | 3. In OpenHab2 15 | 16 | Binding 17 | Add Astro Binding 18 | Add NTP Extension 19 | Add Http Binding 20 | 21 | Things 22 | Add Astro moon data 23 | Add Astro sun data 24 | Add Local Time 25 | 26 | In item configure moon, sun item with correct id astro moon/sun thing 27 | 28 | Create /openhab/userdata/webapps folder 29 | 30 | cd ~/applications/openhab/userdata 31 | sudo mkdir webapps 32 | 33 | Copy /openhab/conf/html/weather-data in /openhab/userdata/webapps 34 | 35 | sudo cp -r ~/applications/openhab/conf/html/weather-data/ webapps/ 36 | 37 | Change owner 38 | sudo chown -R openhab:openhab webapps/ 39 | 40 | Restarting Openhab due to memory leak 41 | ------------------------------------- 42 | 43 | mkdir -p /home/fred/applications/crontab 44 | cp ~/git/AutomationServer/third-party-tools/openhab/install/restart_openhab /home/fred/applications/crontab/ 45 | 46 | crontab -e 47 | 0 0 * * 1,4 /home/fred/applications/crontab/restart_openhab 48 | 49 | 50 | -------------------------------------------------------------------------------- /third-party-tools/openhab/install/restart_openhab: -------------------------------------------------------------------------------- 1 | docker stop openhab 2 | docker start openhab 3 | -------------------------------------------------------------------------------- /third-party-tools/postgresql/docker/docker-entry-point.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -e 3 | 4 | PG_DATA_DIR=/postgresql/data 5 | PG_LOG_DIR=/postgresql/logs 6 | PG_BIN_DIR=/usr/lib/postgresql/9.6/bin 7 | 8 | echo "Checking for PostgreSQL cluster creation" 9 | if [ -z "$(ls -A ${PG_DATA_DIR})" ]; then 10 | echo "PG Data folder empty...creating new PostgreSQL cluster" 11 | ${PG_BIN_DIR}/initdb --locale=en_GB.UTF-8 -D ${PG_DATA_DIR} 12 | 13 | echo "Configuring pg_hba.conf..." 14 | echo "host all all 0.0.0.0/0 md5" >> ${PG_DATA_DIR}/pg_hba.conf 15 | echo "Configuring postgresql.conf..." 16 | echo "listen_addresses='*'" >> /${PG_DATA_DIR}/postgresql.conf 17 | else 18 | echo "PG Data not empty...will start PG now" 19 | fi 20 | 21 | echo "Starting PostgreSQL 9.6 server..." 22 | ${PG_BIN_DIR}/postgres -D ${PG_DATA_DIR} > ${PG_LOG_DIR}/postgresql.log 2>&1 23 | 24 | -------------------------------------------------------------------------------- /third-party-tools/postgresql/docker/postgresql_dockerbuild: -------------------------------------------------------------------------------- 1 | docker build -t guiet/postgresql:9.6 -f postgresql_dockerfile . 2 | 3 | -------------------------------------------------------------------------------- /third-party-tools/postgresql/docker/postgresql_dockerfile: -------------------------------------------------------------------------------- 1 | FROM balenalib/raspberry-pi:stretch 2 | 3 | LABEL maintainer="fguiet@gmail.com" 4 | 5 | RUN groupadd --gid 9004 postgres 6 | RUN useradd --uid 9004 --gid 9004 postgres 7 | 8 | RUN apt-get update && apt-get upgrade && apt-get install -y locales && localedef -i en_GB -c -f UTF-8 -A /etc/locale.alias en_GB.UTF-8 9 | 10 | RUN apt-get install -y postgresql-9.6 11 | 12 | RUN mkdir -p /postgresql/data 13 | RUN mkdir -p /postgresql/conf 14 | RUN mkdir -p /postgresql/logs 15 | RUN mkdir -p /postgresql/restore 16 | 17 | RUN mkdir -p /var/run/postgresql && chown -R postgres:postgres /var/run/postgresql 18 | RUN chown -R postgres:postgres /postgresql 19 | RUN chmod 700 /postgresql/data 20 | RUN chmod 755 /var/run/postgresql 21 | 22 | VOLUME ["/postgresql"] 23 | 24 | EXPOSE 5432 25 | 26 | COPY docker-entry-point.sh /usr/local/bin/ 27 | RUN chmod 555 /usr/local/bin/docker-entry-point.sh 28 | ENTRYPOINT ["/usr/local/bin/docker-entry-point.sh"] 29 | 30 | #user used in RUN, CMD, ENTRYPOINT 31 | USER postgres 32 | 33 | #ENV CONFIG_PATH=/home/fred/git/AutomationServer/third-party-tools/postgresql/conf 34 | ENV PGDATA=/postgresql/data 35 | ENV PGHOME=/usr/lib/postgresql/9.6 36 | ENV LANG=en_GB.utf8 37 | ENV PATH=$PATH:$PGHOME/bin 38 | ENV PGTZ=Europe/Paris 39 | 40 | CMD [""] 41 | 42 | -------------------------------------------------------------------------------- /third-party-tools/postgresql/docker/postgresql_dockerrun: -------------------------------------------------------------------------------- 1 | docker run \ 2 | --name postgresql \ 3 | -v /etc/localtime:/etc/localtime:ro \ 4 | -v /etc/timezone:/etc/timezone:ro \ 5 | --network automationserver-network \ 6 | -h docker-postgresql \ 7 | -v /home/fred/applications/postgresql:/postgresql \ 8 | --restart=always \ 9 | -p 5432:5432 \ 10 | -d \ 11 | guiet/postgresql:9.6 12 | -------------------------------------------------------------------------------- /third-party-tools/postgresql/install/prerequisite: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | #add postgresql group 4 | sudo groupadd postgres --gid 9004 5 | #add postgresql user 6 | sudo useradd -r -s /bin/bash postgres --uid 9004 -g postgres 7 | 8 | #create volume bind with docker container 9 | sudo mkdir -p /home/fred/applications/postgresql/logs 10 | sudo mkdir -p /home/fred/applications/postgresql/data 11 | sudo mkdir -p /home/fred/applications/postgresql/conf 12 | sudo mkdir -p /home/fred/applications/postgresql/restore 13 | 14 | #change mosquitto folders owner 15 | sudo chown -R postgres:postgres /home/fred/applications/postgresql 16 | -------------------------------------------------------------------------------- /third-party-tools/postgresql/install/readme.txt: -------------------------------------------------------------------------------- 1 | Starting Postgresql docker 2 | ------------------------ 3 | 4 | 1. Run AutomationServer/third-party-tools/postgresql/install/prerequisite 5 | 2. Make old postgresl backups 6 | pg_dumpall --globals-only > users_20180409.sql 7 | pg_dump --create automation > automation_dump_20180409.sql 8 | 9 | 3. Put backups in applications/postgresql/restore/ 10 | 4. Launch postgresql docker : AutomationServer/third-party-tools/postgresql/docker/postgresql_dockerrun 11 | If /postgresl/data empty a new cluster will be created 12 | log to container : docker exec -it postgresql bash 13 | Restore database 14 | cd /postgres/restore 15 | first users, example : psql < users_20180409.sql 16 | then data, psql < automation_dump_20180409.sql 17 | 18 | 19 | -------------------------------------------------------------------------------- /third-party-tools/tomcat/cmd/deploy.sh: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | echo "Stopping Tomcat docker container..." 4 | docker stop tomcat 5 | echo "Copying new WebApp..." 6 | cp /home/fred/applications/automationserver/bin/automationserver-webapp.war /home/fred/applications/tomcat/deploy/ 7 | echo "Starting Tomcat docker container..." 8 | docker start tomcat 9 | -------------------------------------------------------------------------------- /third-party-tools/tomcat/docker/docker-entry-point.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -e 3 | 4 | TOMCAT_DEPLOY_FOLDER=/tomcat/deploy 5 | TOMCAT_WEBAPP_DIR=/applications/apache-tomcat-9.0.24/webapps 6 | 7 | echo "Checking whether webapp deployment is necessary" 8 | if [ -z "$(ls -A ${TOMCAT_DEPLOY_FOLDER})" ]; then 9 | echo "Deploy folder empty...skipping..." 10 | else 11 | echo "Deploying new webapp..." 12 | echo "Removing old webapp..." 13 | rm -Rf ${TOMCAT_WEBAPP_DIR} 14 | mkdir ${TOMCAT_WEBAPP_DIR} 15 | echo "Moving new wepapp to deployment folder..." 16 | mv ${TOMCAT_DEPLOY_FOLDER}/automationserver-webapp.war ${TOMCAT_WEBAPP_DIR}/ 17 | fi 18 | 19 | echo "Starting Tomcat server..." 20 | exec $@ 21 | 22 | -------------------------------------------------------------------------------- /third-party-tools/tomcat/docker/tomcat_dockerbuild: -------------------------------------------------------------------------------- 1 | docker build -t guiet/tomcat:9.0.24 -f tomcat_dockerfile /home/fred/git/AutomationServer/third-party-tools/tomcat/docker 2 | 3 | -------------------------------------------------------------------------------- /third-party-tools/tomcat/docker/tomcat_dockerrun: -------------------------------------------------------------------------------- 1 | docker run \ 2 | -v /etc/localtime:/etc/localtime:ro \ 3 | -v /etc/timezone:/etc/timezone:ro \ 4 | --name tomcat \ 5 | --network automationserver-network \ 6 | -h docker-tomcat \ 7 | -v /home/fred/applications/tomcat:/tomcat \ 8 | -v /home/fred/applications/automationserver/config:/applications/automationserver/config \ 9 | -v /home/fred/applications/automationserver/logs:/applications/automationserver/logs \ 10 | -d \ 11 | --restart=always \ 12 | -p 8510:8510 \ 13 | guiet/tomcat:9.0.24 14 | 15 | -------------------------------------------------------------------------------- /third-party-tools/tomcat/install/prerequisite: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | #add fred group 4 | #sudo groupadd fred --gid 1001 5 | #add fred user 6 | #sudo useradd -r -s /sbin/nologin fred --uid 1001 -g fred 7 | 8 | #create volume bind with docker container 9 | sudo mkdir -p /home/fred/applications/tomcat 10 | sudo mkdir -p /home/fred/applications/tomcat/logs 11 | sudo mkdir -p /home/fred/applications/tomcat/firmwares 12 | sudo mkdir -p /home/fred/applications/tomcat/deploy 13 | sudo mkdir -p /home/fred/applications/tomcat/cmd 14 | 15 | #cp /home/fred/git/AutomationServer/third-party-tools/tomcat/cmd/deploy.sh /home/fred/applications/tomcat/cmd/ 16 | 17 | #change applications/automationserver folders owner 18 | sudo chown -R fred:fred /home/fred/applications/tomcat 19 | --------------------------------------------------------------------------------