[2] With camera powered up, press reset for 30+ secs. Then power cycle Login "administrator" no pass. URL is http://ipaddr/img/video.mjpeg. From https://itbyfire.blogspot.com/2017/03/hacking-xfinitys-home-security-cameras.html
[5] Sometimes you need to truly remove battery and reconnect / power cycle to get ziggbee2mqtt+HA to see settings made on the thermostat manually.
/opt/zigbee2mqtt/data/configuration.yaml:
...
external_converters:
- cl3156105.js
...
/opt/zigbee2mqtt/data# cat cl3156105.js
const fz = require('zigbee-herdsman-converters/converters/fromZigbee');
const tz = require('zigbee-herdsman-converters/converters/toZigbee');
const exposes = require('zigbee-herdsman-converters/lib/exposes');
const reporting = require('zigbee-herdsman-converters/lib/reporting');
const extend = require('zigbee-herdsman-converters/lib/extend');
const e = exposes.presets;
const ea = exposes.access;
const fzLocal = {
centralite3156105: {
cluster: 'hvacThermostat',
type: ['raw'],
convert: (model, msg, publish, options, meta) => {
const result = {};
const dp = msg.data;
meta.logger.debug(`Ricks centralite3156105: ${dp[2]} ${dp[5]} `);
const lookupmode = {0:'off',1:'heat',2:'cool',};
const value = lookupmode[dp[5]];
return {system_mode: value};
},
},
};
const definition = {
zigbeeModel: ['3156105'],
model: '3156105',
vendor: 'Centralite',
description: 'Centralite HA,',
fromZigbee: [fzLocal.centralite3156105, fz.battery, fz.thermostat, fz.fan, fz.ignore_time_read],
toZigbee: [tz.factory_reset, tz.thermostat_local_temperature, tz.thermostat_local_temperature_calibration,
tz.thermostat_occupied_heating_setpoint, tz.thermostat_occupied_cooling_setpoint,
tz.thermostat_setpoint_raise_lower, tz.thermostat_remote_sensing,
tz.thermostat_control_sequence_of_operation, tz.thermostat_system_mode,
tz.thermostat_relay_status_log, tz.fan_mode, tz.thermostat_running_state, tz.thermostat_temperature_setpoint_hold ],
exposes: [e.battery(),
exposes.binary('temperature_setpoint_hold', ea.ALL, true, false)
.withDescription('Prevent changes. `false` = run normally. `true` = prevent from making changes.'),
exposes.climate().withSetpoint('occupied_heating_setpoint', 10, 30, 1).withLocalTemperature()
.withSystemMode(['off', 'heat', 'cool', 'emergency_heating'])
.withRunningState(['idle', 'heat', 'cool', 'fan_only']).withFanMode(['auto', 'on'])
.withSetpoint('occupied_cooling_setpoint', 10, 30, 1)
.withLocalTemperatureCalibration(-30, 30, 0.1)],
meta: {battery: {voltageToPercentage: '3V_1500_2800'}},
configure: async (device, coordinatorEndpoint, logger) => {
const endpoint = device.getEndpoint(1);
await reporting.bind(endpoint, coordinatorEndpoint, ['genPowerCfg', 'hvacThermostat', 'hvacFanCtrl']);
await reporting.batteryVoltage(endpoint);
await reporting.thermostatRunningState(endpoint);
await reporting.thermostatTemperature(endpoint);
await reporting.fanMode(endpoint);
await reporting.thermostatTemperatureSetpointHold(endpoint);
await reporting.thermostatOccupiedCoolingSetpoint(endpoint);
await reporting.thermostatOccupiedHeatingSetpoint(endpoint);
},
};
module.exports = definition;
[6] USB + careful antenna placement via low loss cable safer than remote serial. Tasmota sometimes reboots itself and has lost serial port config. No good if away from home. Wifi 2 zigbee (virt serial port) bridges are prone to errors in the link (tasmota+sonoff zbbridge). I noticed high traffic on a wifi link can drown out the low bw wifi2zigbee. Also need separate UPS for such a bridge for power outages. USB based /dev/ttyUSBx adapter gets power from already UPS'd server.
[8] No need for wifi half of unit. use power/setup dongle to keep it wired. Hold reset behind camera down for 10 sec. Then "adminstrator". URL http://ipaddr/img/video.mjpeg See excellent descripiton by https://itbyfire.blogspot.com/2017/03/hacking-xfinitys-home-security-cameras.html
[1]
#!/bin/bash
if [ $# -lt 2 ]; then
echo $0 uid cmd
exit 0
fi
mqttip="-h 127.0.0.1 -p 1883"
uid=`echo "$1" | tr '[:upper:]' '[:lower:]'`
name=`echo $1 | sed s/_/' '/g`
xx="{\"name\": \"$name\", \"device_class\": \"door\", \"state_topic\": \"homeassistant/binary_sensor/$uid/state\", \"unique_id\":\"$uid\" }"
#echo \'$xx\'
#echo "$xx"
if [ "$2" = "config" ]; then
# need -r
mosquitto_pub $mqttip -r -t "homeassistant/binary_sensor/$uid/config" -m "$xx"
elif [ "$2" = "delete" ]; then
mosquitto_pub $mqttip -t "homeassistant/binary_sensor/$uid/config" -m ''
else
mosquitto_pub $mqttip -t "homeassistant/binary_sensor/$uid/state" -m "$2"
fi
exit 0
