JSON Status Responses

reloxx13 edited this page Jun 26, 2018 · 4 revisions

Table of Contents

JSON Changes

temp note: for now (6.0.0a) the statetext overwrites the json power result (e.g. "ON" => "AN" or any other statetext the users enter)

Basic Response

{
  "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
    }
  },

Back to Top

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"
  }
}

Sonoff SC

  "StatusSNS": {
    "Time": "2018-02-16T16:18:49",
    "Temperature": 25,
    "Humidity": 83,
    "Light": 10,
    "Noise": 20,
    "AirQuality": 100,
    "TempUnit": "C"
  },

PMS5003 and HTU21

"StatusSNS": {
    "Time": "2018-02-16T16:22:12",
    "HTU21": {
      "Temperature": 24.7,
      "Humidity": 32.1
    },
    "PMS5003": {
      "CF1": 1,
      "CF2.5": 2,
      "CF10": 2,
      "PM1": 1,
      "PM2.5": 2,
      "PM10": 2,
      "PB0.3": 423,
      "PB0.5": 116,
      "PB1": 17,
      "PB2.5": 1,
      "PB5": 0,
      "PB10": 0
    },
    "TempUnit": "C"
  },   

Back to Top

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;
		}

Back to Top

Home
Theo's Tasmota Tips
What's New

Getting Started

Upload tools

Usage

Devices - Additional Info

Home Automation Integration

Other Integrations

Further Topics

ESP32

Misc

Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.