From f689cf9848fa603e39922ac9159d8055e07618e5 Mon Sep 17 00:00:00 2001 From: reloxx13 Date: Thu, 15 Feb 2018 01:16:00 +0100 Subject: [PATCH] Created JSON Status Responses (markdown) --- JSON-Status-Responses.md | 401 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 401 insertions(+) create mode 100644 JSON-Status-Responses.md diff --git a/JSON-Status-Responses.md b/JSON-Status-Responses.md new file mode 100644 index 00000000..df4feb82 --- /dev/null +++ b/JSON-Status-Responses.md @@ -0,0 +1,401 @@ +## Default + + { + "Status": { + "Module": 1, + "FriendlyName": "XXX", + "Topic": "sonoff", + "ButtonTopic": "0", + "Power": 0, + "PowerOnState": 0, + "LedState": 1, + "SaveData": 0, + "SaveState": 1, + "ButtonRetain": 0, + "PowerRetain": 0 + }, + "StatusPRM": { + "Baudrate": 115200, + "GroupTopic": "sonoffs", + "OtaUrl": "XXX", + "Uptime": "1 02:33:26", + "Sleep": 150, + "BootCount": 32, + "SaveCount": 72, + "SaveAddress": "FB000" + }, + "StatusFWR": { + "Version": "5.12.0a", + "BuildDateTime": "2018.02.11 16:15:40", + "Boot": 31, + "Core": "2_4_0", + "SDK": "2.1.0(deb1901)" + }, + "StatusLOG": { + "SerialLog": 0, + "WebLog": 4, + "SysLog": 0, + "LogHost": "domus1", + "LogPort": 514, + "SSId1": "XXX", + "SSId2": "XXX", + "TelePeriod": 300, + "SetOption": "00000001" + }, + "StatusMEM": { + "ProgramSize": 457, + "Free": 544, + "Heap": 23, + "ProgramFlashSize": 1024, + "FlashSize": 1024, + "FlashMode": 3 + }, + "StatusNET": { + "Hostname": "XXX", + "IPAddress": "192.168.178.XX", + "Gateway": "192.168.178.XX", + "Subnetmask": "255.255.255.XX", + "DNSServer": "192.168.178.XX", + "Mac": "2C:3A:E8:XX:XX:XX", + "Webserver": 2, + "WifiConfig": 4 + }, + "StatusTIM": { + "UTC": "Thu Feb 15 00:00:50 2018", + "Local": "Thu Feb 15 01:00:50 2018", + "StartDST": "Sun Mar 25 02:00:00 2018", + "EndDST": "Sun Oct 28 03:00:00 2018", + "Timezone": 1 + }, + "StatusSNS": { + "Time": "2018.02.15 01:00:50", + "Switch1": "OFF" + }, + "StatusSTS": { + "Time": "2018.02.15 01:00:50", + "Uptime": "1 02:33:26", + "Vcc": 3.504, + "POWER": "OFF", + "Wifi": { + "AP": 1, + "SSId": "XXX", + "RSSI": 100, + "APMac": "34:31:C4:XX:XX:XX" + } + } + } + + +## MQTT + +After StatusNET + + "StatusMQT": { + "MqttHost": "192.168.XXX.XX", + "MqttPort": 1883, + "MqttClientMask": "DVES_%06X", + "MqttClient": "DVES_4AXXXX", + "MqttUser": "admin", + "MAX_PACKET_SIZE": 1000, + "KEEPALIVE": 15 + }, + +## Domoticz +idx, nvalue, svalue without array + + ..."StatusTIM": { + "UTC": "Thu Feb 01 20:29:40 2018", + "Local": "Thu Feb 01 21:29:40 2018", + "StartDST": "Sun Mar 25 02:00:00 2018", + "EndDST": "Sun Oct 28 03:00:00 2018", + "Timezone": 1 + }, + "idx": 286, + "nvalue": 0, + "svalue": "19.7", + "StatusSNS": { + "Time": "2018.02.01 21:29:40", + "DS18B20": { + "Temperature": 19.7 + }, + "TempUnit": "C" + }, + "StatusSTS": { ... + + +## POW + +After StatusTIM + + "StatusPTH": { + "PowerLow": 0, + "PowerHigh": 0, + "VoltageLow": 0, + "VoltageHigh": 0, + "CurrentLow": 0, + "CurrentHigh": 0 + }, + "StatusSNS": { + "Time": "2018.02.04 23:17:01", + "ENERGY": { + "Total": 3.185, + "Yesterday": 3.058, + "Today": 0.127, + "Power": 0, + "Factor": 0.00, + "Voltage": 221, + "Current": 0.000 + } + }, + +## Sensors + +### AM2301 + + "StatusSNS": { + "Time": "2018.02.01 22:52:09", + "AM2301": { + "Temperature": 15.5, + "Humidity": 50.6 + }, + "TempUnit": "C" + }, + +### BMP280 + + { + "StatusSNS": { + "Time": "2018-02-10T22:46:34", + "BMP280": { + "Temperature": 80.9, + "Pressure": 984.4 + } + } + } + + +### DHT11 + + "StatusSNS": { + "Time": "2018.02.01 22:48:39", + "DHT11": { + "Temperature": 12.0, + "Humidity": 42.0 + }, + "TempUnit": "C" + }, + +### DS18B20 + + "StatusSNS": { + "Time": "2018.02.01 21:29:40", + "DS18B20": { + "Temperature": 19.7 + }, + "TempUnit": "C" + }, + +### SHT3X (and DHT11, multiple Sensor example) + + { + "StatusSNS": { + "Time": "2018-02-07T20:16:19", + "DHT11": { + "Temperature": 78.8, + "Humidity": 27.0 + }, + "SHT3X": { + "Temperature": 74.8, + "Humidity": 18.9 + }, + "TempUnit": "F" + } + } + + +## Bugged JSON in <= 5.10.0 (invalid JSON) + +Also, before 5.10.0j JSON was translated! (< 5.10.0j) + + STATUS = { + "Status": { + "Module": 4, + "FriendlyName": "XXX", + "Topic": "sonoff", + "ButtonTopic": "0", + "Power": 0, + "PowerOnState": 0, + "LedState": 0, + "SaveData": 1, + "SaveState": 1, + "ButtonRetain": 0, + "PowerRetain": 0 + } + } + STATUS1 = { + "StatusPRM": { + "Baudrate": 115200, + "GroupTopic": "sonoffs", + "OtaUrl": "X", + "Laufzeit": 8, + "Sleep": 0, + "BootZähler": 50, + "SaveCount": 121, + "SaveAddress": "F8000" + } + } + STATUS2 = { + "StatusFWR": { + "Version": "5.10.0", + "BuildDatumUhrzeit": "2018.01.12 17:48:45", + "Boot": 6, + "Core": "2_4_0", + "SDK": "2.1.0(deb1901)" + } + } + STATUS3 = { + "StatusLOG": { + "SerialLog": 2, + "WebLog": 2, + "SysLog": 0, + "LogHost": "XXX", + "LogPort": 514, + "SSId1": "YYYY", + "SSId2": "XXX", + "TelePeriod": 300, + "SetOption": "00000009" + } + } + STATUS4 = { + "StatusMEM": { + "ProgramSize": 508, + "frei": 492, + "Heap-Größe": 19, + "ProgramFlashSize": 1024, + "FlashSize": 1024, + "FlashMode": 3 + } + } + STATUS5 = { + "StatusNET": { + "Hostname": "XXX", + "IPAddress": "192.168.178.111", + "Gateway": "192.168.178.1", + "Subnetmaske": "255.255.255.0", + "DNSServer": "192.168.178.1", + "MAC": "XX:XX:XX:XX:XX:XX", + "Webserver": 2, + "WifiConfig": 0 + } + } + STATUS6 = { + "StatusMQT": { + "MqttHost": "192.168.178.111", + "MqttPort": 1883, + "MqttClientMaske": "XXXX", + "MqttClient": "XXXX", + "MqttUser": "XXXX", + "MAX_PACKET_SIZE": 512, + "KEEPALIVE": 15 + } + } + STATUS7 = { + "StatusTIM": { + "UTC": "Mon Jan 22 19:05:14 2018", + "lokale Zeit": "Mon Jan 22 20:05:14 2018", + "StartDST": "Sun Mar 25 02:00:00 2018", + "EndDST": "Sun Oct 28 03:00:00 2018", + "Timezone": 1 + } + } + in = { + "idx": 13, + "nvalue": 0, + "svalue": "1.5;99.9;3" + } + STATUS10 = { + "StatusSNS": { + "Zeit": "2018.01.22 20:05:14", + "AM2301": { + "Temperatur": 1.5, + "Feuchtigkeit": 99.9 + }, + "TempUnit": "C" + } + } + STATUS11 = { + "StatusSTS": { + "Zeit": "2018.01.22 20:05:14", + "Laufzeit": 8, + "VCC": 3.476, + "POWER": "OFF", + "WLAN": { + "AP": 1, + "SSID": "XXXX", + "RSSI": 18, + "APMac": "XX:XX:XX:XX:XX:XX" + } + } + } + + +### PHP Fix for invalid JSON <= 5.10.0 + + private function fixJsonFormatV5100( $string ) { + + $string = substr( $string, strpos( $string, "STATUS = " ) ); + if ( strpos( $string, "POWER = " ) !== FALSE ) { + $string = substr( $string, strpos( $string, "{" ) ); + $string = substr( $string, 0, strrpos( $string, "}" ) + 1 ); + } + if ( strpos( $string, "ERGEBNIS = " ) !== FALSE ) { + $string = substr( $string, strpos( $string, "{" ) ); + $string = substr( $string, 0, strrpos( $string, "}" ) + 1 ); + } + if ( strpos( $string, "RESULT = " ) !== FALSE ) { + $string = substr( $string, strpos( $string, "{" ) ); + $string = substr( $string, 0, strrpos( $string, "}" ) + 1 ); + } + + $remove = [ + PHP_EOL, + "\n", + "STATUS = ", + "}STATUS1 = {", + "}STATUS2 = {", + "}STATUS3 = {", + "}STATUS4 = {", + "}STATUS5 = {", + "}STATUS6 = {", + "}STATUS7 = {", + "}in = {", + "}STATUS8 = {", + "}STATUS9 = {", + "}STATUS10 = {", + "}STATUS11 = {", + "STATUS2 = ", + ]; + $replace = [ + "", + "", + "", + ",", + ",", + ",", + ",", + ",", + ",", + ",", + ",", + ",", + ",", + ",", + ",", + "", + ]; + + $string = str_replace( $remove, $replace, $string ); + + return $string; + } +