ChirpStack
DECODER
function Decode(fPort, bytes, variables) {
var Down_rssi = -1*parseInt(bytes[0]);
var Down_snr = bytes[1];
var Down_datarate = bytes[2];
// usando entero
var unalectura = (bytes[4] << 8) |(bytes[3]);
unalectura = (unalectura/1000);
unalectura = +unalectura.toFixed(2);
var appData = {'Down_rssi':Down_rssi,'Down_snr':Down_snr,
'Down_datarate':Down_datarate,
'bateria_V': unalectura}
return appData;
}
ENCODER
function Encode(fPort, obj, variables) {
var UP_rssi = obj["UP_rssi"];
// var Up_snr = obj["UP_snr"];
var mensaje = [UP_rssi];
return mensaje;
}
Home Assistant
configuration.yaml
mqtt:
sensor:
- name: "rssi_up_cc50"
unique_id: cc27rssiup
state_topic: "application/1/device/a53ec615aede3f50/event/up"
unit_of_measurement: "dBm"
value_template: "{{ value_json.rxInfo[0].rssi}}"
#availability:
# - topic: "home/sensor1/status"
payload_available: "online"
payload_not_available: "offline"
json_attributes_topic: "application/1/device/a53ec615aede3f50/event/up"
Automation
Desencadenante
platform: mqtt topic: application/1/device/a53ec615aede3f50/event/up
Accion
service: mqtt.publish
data:
qos: 0
retain: false
topic: application/1/device/a53ec615aede3f50/command/down
payload: '{"confirmed":false,"fPort":4,"object":{"UP_rssi":{{(states("sensor.rssi_up_cc50") | int)*(-1)}}}}'
