diff --git a/firmware/1.5.4.1/app/include/user_config.h b/firmware/1.5.4.1/app/include/user_config.h index c3abc02..4948222 100644 --- a/firmware/1.5.4.1/app/include/user_config.h +++ b/firmware/1.5.4.1/app/include/user_config.h @@ -97,7 +97,7 @@ extern void luaL_assertfail(const char *file, int line, const char *message); #define LUA_PROCESS_LINE_SIG 2 #define LUA_OPTIMIZE_DEBUG 3 -#define ENDUSER_SETUP_AP_SSID "AlarmPanel" +#define ENDUSER_SETUP_AP_SSID "konnected-security" /* * A valid hostname only contains alphanumeric and hyphen(-) characters, with no hyphens at first or last char @@ -107,8 +107,8 @@ extern void luaL_assertfail(const char *file, int line, const char *message); * if WIFI_STA_HOSTNAME_APPEND_MAC defined: Hostname MUST be 26 chars or less, since last 3 octets of MAC address will be appended * if defined hostname is invalid: hostname will default to NODE-xxxxxx (xxxxxx being last 3 octets of MAC address) */ -#define WIFI_STA_HOSTNAME "AlarmPanel" -//#define WIFI_STA_HOSTNAME_APPEND_MAC +#define WIFI_STA_HOSTNAME "konnected-security-" +#define WIFI_STA_HOSTNAME_APPEND_MAC //#define WIFI_SMART_ENABLE diff --git a/firmware/1.5.4.1/app/include/user_version.h b/firmware/1.5.4.1/app/include/user_version.h index 4fa2c4d..0af2e4b 100644 --- a/firmware/1.5.4.1/app/include/user_version.h +++ b/firmware/1.5.4.1/app/include/user_version.h @@ -6,9 +6,9 @@ #define NODE_VERSION_REVISION 4U #define NODE_VERSION_INTERNAL 1U -#define NODE_VERSION "NodeMCU 1.5.4.1\r\nAlarmPanel 0.1\r\n" +#define NODE_VERSION "NodeMCU 1.5.4.1\r\nKonnected Security 2.0.beta1\r\n" #ifndef BUILD_DATE -#define BUILD_DATE "20170628" +#define BUILD_DATE "20170708" #endif extern char SDK_VERSION[]; diff --git a/firmware/konnected-security-2-0-beta1.bin b/firmware/konnected-security-2-0-beta1.bin new file mode 100644 index 0000000..f461166 Binary files /dev/null and b/firmware/konnected-security-2-0-beta1.bin differ diff --git a/scripts/build-firmware b/scripts/build-firmware new file mode 100755 index 0000000..2d09c70 --- /dev/null +++ b/scripts/build-firmware @@ -0,0 +1,11 @@ +#!/bin/bash + +FIRMWARE_PATH=${PWD}/../nodemcu-firmware +IMAGE_NAME=konnected-security-2-0-beta1 + +cp firmware/1.5.4.1/app/include/* $FIRMWARE_PATH/app/include/ + docker run -e "INTEGER_ONLY=1" \ + -e "IMAGE_NAME=${IMAGE_NAME}" \ + --rm -ti -v $FIRMWARE_PATH:/opt/nodemcu-firmware marcelstoer/nodemcu-build + +cp ${FIRMWARE_PATH}/bin/nodemcu_integer_${IMAGE_NAME}.bin firmware/${IMAGE_NAME}.bin \ No newline at end of file diff --git a/scripts/flash b/scripts/flash new file mode 100755 index 0000000..c0bcb7f --- /dev/null +++ b/scripts/flash @@ -0,0 +1,7 @@ +#!/bin/bash + +IMAGE_NAME=konnected-security-2-0-beta1 +PORT=/dev/cu.wchusbserial1410 + +esptool.py --port=${PORT} write_flash --flash_mode dio 0x00000 firmware/${IMAGE_NAME}.bin +cd source-code && nodemcu-uploader --port=${PORT} upload * --verify=raw \ No newline at end of file diff --git a/smartapps/konnected-io/konnected-alarm-panel-connect.src/konnected-alarm-panel-connect.groovy b/smartapps/konnected-io/konnected-security-connect.src/konnected-security-connect.groovy similarity index 92% rename from smartapps/konnected-io/konnected-alarm-panel-connect.src/konnected-alarm-panel-connect.groovy rename to smartapps/konnected-io/konnected-security-connect.src/konnected-security-connect.groovy index 4a5459d..79f6972 100644 --- a/smartapps/konnected-io/konnected-alarm-panel-connect.src/konnected-alarm-panel-connect.groovy +++ b/smartapps/konnected-io/konnected-security-connect.src/konnected-security-connect.groovy @@ -1,5 +1,5 @@ /** - * Konnected Alarm + * Konnected Security (Connect) * * Copyright 2017 konnected.io * @@ -14,7 +14,7 @@ * */ definition( - name: "Konnected Alarm", + name: "Konnected Security (Connect)", namespace: "konnected-io", author: "konnected.io", description: "Convert your wired home alarm system into a SmartThings smart alarm", @@ -24,6 +24,7 @@ definition( iconX3Url: "https://raw.githubusercontent.com/konnected-io/SmartThings/master/images/icons/KonnectedAlarmPanel@3x.png", singleInstance: true ) + mappings { path("/device/:mac/:id/:deviceState") { action: [ PUT: "childDeviceStateUpdate"] } path("/ping") { action: [ GET: "devicePing"] } @@ -36,18 +37,18 @@ preferences { } def installed() { - log.info "installed(): Installing Konnected Alarm SmartApp" + log.info "installed(): Installing Konnected Security SmartApp" initialize() runEvery3Hours(discoverySearch) } def updated() { - log.info "updated(): Updating Konnected Alarm SmartApp" + log.info "updated(): Updating Konnected Security SmartApp" initialize() } def uninstalled() { - log.info "uninstall(): Uninstalling Konnected Alarm SmartApp" + log.info "uninstall(): Uninstalling Konnected Security SmartApp" revokeAccessToken() // Uninstall SmartApp, tell device that access is revoked and remove all the settings @@ -109,7 +110,7 @@ def pageWelcome() { configuredAlarmPanels.each { href( name: "device_" + it.mac, - title: "AlarmPanel_" + it.mac[-6..-1], + title: "konnected-" + it.mac[-6..-1], description: "Tap to view device status", required: false, image: "https://raw.githubusercontent.com/konnected-io/SmartThings/master/images/icons/Device.png", @@ -136,7 +137,16 @@ def pageDiscovery() { discoveryVerification() def alarmPanels = pageDiscoveryGetAlarmPanels() section("Please wait while we discover your device") { - input(name: "selectedAlarmPanels", type: "enum", title: "Select Alarm Panel (${alarmPanels.size() ?: 0} found)", required: true, multiple: true, options: alarmPanels, defaultValue: settings.selectedAlarmPanels, submitOnChange: true) + input( + name: "selectedAlarmPanels", + type: "enum", + title: "Select devices (${alarmPanels.size() ?: 0} found)", + required: true, + multiple: true, + options: alarmPanels, + defaultValue: settings.selectedAlarmPanels, + submitOnChange: true + ) } } } @@ -144,7 +154,7 @@ def pageDiscovery() { Map pageDiscoveryGetAlarmPanels() { def alarmPanels = [:] def verifiedAlarmPanels = getDevices().findAll{ it.value.verified == true } - verifiedAlarmPanels.each { alarmPanels["${it.value.mac}"] = it.value.name ?: "AlarmPanel_${it.value.mac[-6..-1]}" } + verifiedAlarmPanels.each { alarmPanels["${it.value.mac}"] = it.value.name ?: "konnected-${it.value.mac[-6..-1]}" } return alarmPanels } @@ -208,12 +218,12 @@ private Map pageConfigurationGetDeviceType(Integer i) { return deviceTypes } -//Retrieve selected device +// Retrieve selected device def getConfiguredDevices() { getDevices().findAll { settings.selectedAlarmPanels.contains(it.value.mac) }.collect { it.value } } -//Retrieve devices saved in state +// Retrieve devices saved in state def getDevices() { if (!state.devices) { state.devices = [:] } return state.devices @@ -223,11 +233,17 @@ def getDeviceIpAndPort(device) { "${convertHexToIP(device.networkAddress)}:${convertHexToInt(device.deviceAddress)}" } -//Device Discovery : Device Type -def discoveryDeviceType() { return "urn:schemas-konnected-io:device:AlarmPanel:1" } -//Device Discovery : Send M-Search to multicast -def discoverySearch() { sendHubCommand(new physicalgraph.device.HubAction("lan discovery ${discoveryDeviceType()}", physicalgraph.device.Protocol.LAN)) } -//Device Discovery : Subscribe to SSDP events +// Device Discovery : Device Type +def discoveryDeviceType() { + return "urn:schemas-konnected-io:device:Security:1" +} + +// Device Discovery : Send M-Search to multicast +def discoverySearch() { + sendHubCommand(new physicalgraph.device.HubAction("lan discovery ${discoveryDeviceType()}", physicalgraph.device.Protocol.LAN)) +} + +// Device Discovery : Subscribe to SSDP events def discoverySubscription(force=false) { if (force) { unsubscribe() diff --git a/source-code/device.lua b/source-code/device.lua index 6999092..8496721 100644 --- a/source-code/device.lua +++ b/source-code/device.lua @@ -1,6 +1,6 @@ local me = { - name = "AlarmPanel", - hwVersion = "0.1", - swVersion = "0.1" + name = "Security", + hwVersion = "2.0.beta1", + swVersion = "2.0.beta1" } return me