OK - you have zwave-js-ui all set up and working. You are using MQTT. So you push a button on a minimote or similar. What is the MQTT topic/response? Presumably something to do with events and "zwave_js_event"? What's the payload? Tell me more!
Why do I ask? I'm sure openLuup & MQTT could handle this?
Hi all
Looking for some ideas about how I might be able to automate my lights.
Currently I have Fibaro FGMS001 (combined lux / motion / temperature sensors)
I can currently get the lights to come on in a room by simply implying that lux <100 and the movement sensor is tripped. That's not so bad, although it's a bit crude.
Struggling more with:
Keeping them on: I've turned the motion sensitivity up quite a lot, but when (fore example) reading in bed, they trip off
Extending a timer (so there's a minimum time of 'on' after trip) needs to get quite high, such that you might be in a room for 10 seconds, and the lights stay on for 20 minutes.
Any bright ideas?
Cheers
C
Having trouble setting the Aeotec Siren 6 volume and the duration for a specific siren (alarm).
Reactor version: latest-23010-7dd2c9e9
Setting the tone value works fine. On the other end, what ever value I put under volume_level and duration has no effect.
As usual, I am doing something wrong but can't figure out what.
aca1fe53-792d-4da0-9ea9-8ad62cbff3ce-image.png
Thanks in advance.
I finally decided to make use of the DynamicGroupController.
I needed to find an easy/effective way to identify devices with low battery levels and this caught my attention.
I created an expression, actually two. One to get the entity names and another one to strip off "_battery_level" at the end of an entity name. That way it looks clean when a notification is sent.
So far, I like what it can do and will try to see where else I can leverage it despite being experimental.
I did search this forum for comments/feedback. I couldn't find any. So I apologize up front if there were.
Question for Patrick, am I safe to use this controller? Should I only use it for testing purposes?
Thanks
Any thoughts on this? OpenLuup / MSR on bare metal Debian Bullseye.
The heating normally comes on an hour before the radio, this morning that was 0430.
Normally this works perfectly and has done for many weeks. This morning though, something odd:
Device in question is 20300. In shot, MSR correctly triggered and changed the setpoint to 21 at
2023-01-16T04:30:00.147Z
But at
2023-01-16 04:31:51.128
OpenLuup has reset the set point to 18.
More than prepared to accept this as a glitch, but curious as to any thoughts?
Reactor log:
[latest-23010]2023-01-16T04:29:11.701Z <httpapi:INFO> httpapi: API request from ::ffff:192.168.70.70: GET /api/v1/systime [latest-23010]2023-01-16T04:30:00.002Z <Rule:INFO> Morning Lights are on (rule-l6gxvycu in Outside Lights) starting evaluation; because timer-trigger Timer#rule-l6gxvycu [latest-23010]2023-01-16T04:30:00.005Z <Rule:INFO> Morning Lights are on (rule-l6gxvycu in Outside Lights) trigger evaluation result is true (previously false) [latest-23010]2023-01-16T04:30:00.005Z <Rule:INFO> Morning Lights are on (rule-l6gxvycu in Outside Lights) evaluated; rule state transition from RESET to SET! [latest-23010]2023-01-16T04:30:00.022Z <Rule:INFO> Morning Lights are on (rule-l6gxvycu in Outside Lights) evaluation complete [latest-23010]2023-01-16T04:30:00.022Z <Engine:INFO> Enqueueing "Morning Lights are on<SET>" (rule-l6gxvycu:S) [latest-23010]2023-01-16T04:30:00.023Z <Rule:INFO> Morning Heating (rule-l60fkpo3 in Heating Control) starting evaluation; because timer-trigger Timer#rule-l60fkpo3 [latest-23010]2023-01-16T04:30:00.025Z <Rule:INFO> Morning Heating (rule-l60fkpo3 in Heating Control) trigger evaluation result is true (previously false) [latest-23010]2023-01-16T04:30:00.025Z <Rule:INFO> Morning Heating (rule-l60fkpo3 in Heating Control) evaluated; rule state transition from RESET to SET! [latest-23010]2023-01-16T04:30:00.033Z <Rule:INFO> Morning Heating (rule-l60fkpo3 in Heating Control) evaluation complete [latest-23010]2023-01-16T04:30:00.034Z <Engine:INFO> Enqueueing "Morning Heating<SET>" (rule-l60fkpo3:S) [latest-23010]2023-01-16T04:30:00.035Z <Engine:NOTICE> Starting reaction Morning Lights are on<SET> (rule-l6gxvycu:S) [latest-23010]2023-01-16T04:30:00.036Z <Engine:NOTICE> Starting reaction Morning Heating<SET> (rule-l60fkpo3:S) [latest-23010]2023-01-16T04:30:00.037Z <Rule:INFO> Morning Lights are on (rule-l6gxvycu in Outside Lights) starting evaluation; because timer-trigger Timer#rule-l6gxvycu [latest-23010]2023-01-16T04:30:00.038Z <Rule:INFO> Morning Lights are on (rule-l6gxvycu in Outside Lights) trigger evaluation result is true (previously true) [latest-23010]2023-01-16T04:30:00.038Z <Rule:INFO> Morning Lights are on (rule-l6gxvycu in Outside Lights) evaluated; trigger state unchanged (true); rule state remains SET [latest-23010]2023-01-16T04:30:00.038Z <Rule:INFO> Morning Lights are on (rule-l6gxvycu in Outside Lights) evaluation complete [latest-23010]2023-01-16T04:30:00.038Z <Rule:INFO> Morning Heating (rule-l60fkpo3 in Heating Control) starting evaluation; because timer-trigger Timer#rule-l60fkpo3 [latest-23010]2023-01-16T04:30:00.040Z <Rule:INFO> Morning Heating (rule-l60fkpo3 in Heating Control) trigger evaluation result is true (previously true) [latest-23010]2023-01-16T04:30:00.040Z <Rule:INFO> Morning Heating (rule-l60fkpo3 in Heating Control) evaluated; trigger state unchanged (true); rule state remains SET [latest-23010]2023-01-16T04:30:00.040Z <Rule:INFO> Morning Heating (rule-l60fkpo3 in Heating Control) evaluation complete [latest-23010]2023-01-16T04:30:00.077Z <VeraController:NOTICE> VeraController#vera action power_switch.on([Object]{ }) on Switch#vera>device_20170 succeeded [latest-23010]2023-01-16T04:30:00.079Z <Engine:INFO> Resuming reaction Morning Lights are on<SET> (rule-l6gxvycu:S) from step 1 [latest-23010]2023-01-16T04:30:00.147Z <VeraController:NOTICE> VeraController#vera action x_vera_svc_upnp_org_TemperatureSetpoint1_Heat.SetCurrentSetpoint([Object]{ "NewCurrentSetpoint": "21" }) on Thermostat#vera>device_20300 succeeded [latest-23010]2023-01-16T04:30:00.147Z <Engine:INFO> Resuming reaction Morning Heating<SET> (rule-l60fkpo3:S) from step 2 [latest-23010]2023-01-16T04:30:00.212Z <VeraController:NOTICE> VeraController#vera action power_switch.on([Object]{ }) on Switch#vera>device_20090 succeeded [latest-23010]2023-01-16T04:30:00.213Z <Engine:INFO> Resuming reaction Morning Lights are on<SET> (rule-l6gxvycu:S) from step 2 [latest-23010]2023-01-16T04:30:00.214Z <Engine:INFO> Morning Lights are on<SET> all actions completed. [latest-23010]2023-01-16T04:30:00.274Z <VeraController:NOTICE> VeraController#vera action x_vera_svc_upnp_org_TemperatureSetpoint1_Heat.SetCurrentSetpoint([Object]{ "NewCurrentSetpoint": "22" }) on Thermostat#vera>device_20380 succeeded [latest-23010]2023-01-16T04:30:00.276Z <Engine:INFO> Resuming reaction Morning Heating<SET> (rule-l60fkpo3:S) from step 3 [latest-23010]2023-01-16T04:30:00.276Z <Engine:INFO> Morning Heating<SET> all actions completed. [latest-23010]2023-01-16T04:30:43.031Z <httpapi:INFO> httpapi: API request from ::ffff:192.168.70.253: GET /api/v1/systime [latest-23010]2023-01-16T04:32:28.489Z <Rule:INFO> Office Heater On (rule-laku2z5a in Office Environment) starting evaluation; because entity-changed ValueSensor#vera>device_25002 [latest-23010]2023-01-16T04:32:28.490Z <Rule:INFO> Office Heater On (rule-laku2z5a in Office Environment) trigger evaluation result is false (previously false) [latest-23010]2023-01-16T04:32:28.491Z <Rule:INFO> Office Heater On (rule-laku2z5a in Office Environment) evaluated; trigger state unchanged (false); rule state remains RESET [latest-23010]2023-01-16T04:32:28.491Z <Rule:INFO> Office Heater On (rule-laku2z5a in Office Environment) evaluation complete [latest-23010]2023-01-16T04:32:37.103Z <Rule:INFO> Server Room Temperature Alert (rule-l5sbqlpf in Server Room Conditions) starting evaluation; because entity-changed ValueSensor#vera>device_25005 [latest-23010]2023-01-16T04:32:37.105Z <Rule:INFO> Server Room Temperature Alert (rule-l5sbqlpf in Server Room Conditions) trigger evaluation result is false (previously false) [latest-23010]2023-01-16T04:32:37.105Z <Rule:INFO> Server Room Temperature Alert (rule-l5sbqlpf in Server Room Conditions) evaluated; trigger state unchanged (false); rule state remains RESET [latest-23010]2023-01-16T04:32:37.106Z <Rule:INFO> Server Room Temperature Alert (rule-l5sbqlpf in Server Room Conditions) evaluation complete [latest-23010]2023-01-16T04:35:22.545Z <httpapi:INFO> httpapi: API request from ::ffff:192.168.70.70: GET /api/v1/systime [latest-23010]2023-01-16T04:35:44.866Z <httpapi:INFO> httpapi: API request from ::ffff:192.168.70.253: GET /api/v1/systime [latest-23010]2023-01-16T04:41:19.045Z <httpapi:INFO> httpapi: API request from ::ffff:192.168.70.70: GET /api/v1/systimeOpenLuup log:
2023-01-16 04:29:55.988 openLuup.io.server:: HTTP:3480 connection from 192.168.70.249 tcp{client}: 0x563e8a4ac768 2023-01-16 04:29:55.988 openLuup.server:: GET /data_request?id=status&Timeout=15&DataVersion=31057384&MinimumDelay=50&output_format=json&_r=1673843395986 HTTP/1.1 tcp{client}: 0x563e8a4ac768 2023-01-16 04:30:00.037 openLuup.io.server:: HTTP:3480 connection from 192.168.70.249 tcp{client}: 0x563e8a4f1498 2023-01-16 04:30:00.040 openLuup.server:: GET /data_request?newTargetValue=1&DeviceNum=20170&id=action&serviceId=urn%3Aupnp-org%3AserviceId%3ASwitchPower1&action=SetTarget&output_format=json&_r=1673843400036 HTTP/1.1 tcp{client}: 0x563e 8a4f1498 2023-01-16 04:30:00.041 luup.call_action:: 20170.urn:upnp-org:serviceId:SwitchPower1.SetTarget 2023-01-16 04:30:00.041 luup.call_action:: action will be handled by parent: 37 2023-01-16 04:30:00.041 luup.variable_set:: 20170.urn:upnp-org:serviceId:SwitchPower1.Target was: 0 now: 1 #hooks:0 2023-01-16 04:30:00.075 openLuup.server:: request completed (35 bytes, 1 chunks, 34 ms) tcp{client}: 0x563e8a4f1498 2023-01-16 04:30:00.076 luup_log:0: 14Mb, 1.8%cpu, 9.4days 2023-01-16 04:30:00.080 openLuup.server:: request completed (2214 bytes, 1 chunks, 33328 ms) tcp{client}: 0x563e8a5edc38 2023-01-16 04:30:00.081 openLuup.io.server:: HTTP:3480 connection closed openLuup.server.receive closed tcp{client}: 0x563e8a4f1498 2023-01-16 04:30:00.104 openLuup.io.server:: HTTP:3480 connection from 192.168.70.249 tcp{client}: 0x563e8a001648 2023-01-16 04:30:00.105 openLuup.server:: GET /data_request?NewCurrentSetpoint=21&DeviceNum=20300&id=action&serviceId=urn%3Aupnp-org%3AserviceId%3ATemperatureSetpoint1_Heat&action=SetCurrentSetpoint&output_format=json&_r=1673843400103 H TTP/1.1 tcp{client}: 0x563e8a001648 2023-01-16 04:30:00.105 luup.call_action:: 20300.urn:upnp-org:serviceId:TemperatureSetpoint1_Heat.SetCurrentSetpoint 2023-01-16 04:30:00.106 luup.call_action:: action will be handled by parent: 37 2023-01-16 04:30:00.106 luup.variable_set:: 20300.urn:upnp-org:serviceId:TemperatureSetpoint1_Heat.CurrentSetpoint was: 18 now: 21 #hooks:0 2023-01-16 04:30:00.146 openLuup.server:: request completed (44 bytes, 1 chunks, 41 ms) tcp{client}: 0x563e8a001648 2023-01-16 04:30:00.148 openLuup.io.server:: HTTP:3480 connection closed openLuup.server.receive closed tcp{client}: 0x563e8a001648 2023-01-16 04:30:00.175 openLuup.io.server:: HTTP:3480 connection from 192.168.70.249 tcp{client}: 0x563e8907a7d8 2023-01-16 04:30:00.179 openLuup.server:: request completed (2466 bytes, 1 chunks, 34377 ms) tcp{client}: 0x563e89c31bd8 2023-01-16 04:30:00.179 openLuup.server:: GET /data_request?newTargetValue=1&DeviceNum=20090&id=action&serviceId=urn%3Aupnp-org%3AserviceId%3ASwitchPower1&action=SetTarget&output_format=json&_r=1673843400174 HTTP/1.1 tcp{client}: 0x563e 8907a7d8 2023-01-16 04:30:00.180 luup.call_action:: 20090.urn:upnp-org:serviceId:SwitchPower1.SetTarget 2023-01-16 04:30:00.180 luup.call_action:: action will be handled by parent: 37 2023-01-16 04:30:00.180 luup.variable_set:: 20090.urn:upnp-org:serviceId:SwitchPower1.Target was: 0 now: 1 #hooks:0 2023-01-16 04:30:00.210 openLuup.server:: request completed (35 bytes, 1 chunks, 30 ms) tcp{client}: 0x563e8907a7d8 2023-01-16 04:30:00.222 openLuup.io.server:: HTTP:3480 connection closed openLuup.server.receive closed tcp{client}: 0x563e8907a7d8 2023-01-16 04:30:00.239 openLuup.io.server:: HTTP:3480 connection from 192.168.70.249 tcp{client}: 0x563e89c4cbd8 2023-01-16 04:30:00.239 openLuup.server:: GET /data_request?NewCurrentSetpoint=22&DeviceNum=20380&id=action&serviceId=urn%3Aupnp-org%3AserviceId%3ATemperatureSetpoint1_Heat&action=SetCurrentSetpoint&output_format=json&_r=1673843400238 H TTP/1.1 tcp{client}: 0x563e89c4cbd8 2023-01-16 04:30:00.240 luup.call_action:: 20380.urn:upnp-org:serviceId:TemperatureSetpoint1_Heat.SetCurrentSetpoint 2023-01-16 04:30:00.240 luup.call_action:: action will be handled by parent: 37 2023-01-16 04:30:00.240 luup.variable_set:: 20380.urn:upnp-org:serviceId:TemperatureSetpoint1_Heat.CurrentSetpoint was: 18 now: 22 #hooks:0 2023-01-16 04:30:00.273 openLuup.server:: request completed (44 bytes, 1 chunks, 33 ms) tcp{client}: 0x563e89c4cbd8 2023-01-16 04:30:00.286 openLuup.io.server:: HTTP:3480 connection closed openLuup.server.receive closed tcp{client}: 0x563e89c4cbd8 2023-01-16 04:30:00.390 openLuup.server:: request completed (2946 bytes, 1 chunks, 4401 ms) tcp{client}: 0x563e8a4ac768 2023-01-16 04:30:00.406 openLuup.io.server:: HTTP:3480 connection closed openLuup.server.receive closed tcp{client}: 0x563e8a4ac768 2023-01-16 04:30:00.417 openLuup.io.server:: HTTP:3480 connection from 192.168.70.249 tcp{client}: 0x563e89ec0a88 2023-01-16 04:30:00.418 openLuup.server:: GET /data_request?id=status&Timeout=15&DataVersion=31057399&MinimumDelay=50&output_format=json&_r=1673843400417 HTTP/1.1 tcp{client}: 0x563e89ec0a88 2023-01-16 04:30:00.452 openLuup.server:: GET /data_request?id=lu_status2&output_format=json&DataVersion=31057396&Timeout=60&MinimumDelay=1500&_=1671788900248 HTTP/1.1 tcp{client}: 0x563e8a5edc38 2023-01-16 04:30:00.555 openLuup.server:: request completed (1474 bytes, 1 chunks, 103 ms) tcp{client}: 0x563e8a5edc38 2023-01-16 04:30:00.658 openLuup.server:: GET /data_request?id=lu_status2&output_format=json&DataVersion=31057397&Timeout=60&MinimumDelay=1500&_=1673519752390 HTTP/1.1 tcp{client}: 0x563e89c31bd8 2023-01-16 04:30:00.761 openLuup.server:: request completed (1222 bytes, 1 chunks, 103 ms) tcp{client}: 0x563e89c31bd8 2023-01-16 04:30:01.553 openLuup.server:: GET /data_request?id=lu_status2&output_format=json&DataVersion=31057399&Timeout=60&MinimumDelay=1500&_=1671788900249 HTTP/1.1 tcp{client}: 0x563e8a5edc38 2023-01-16 04:30:01.900 luup.variable_set:: 20090.urn:upnp-org:serviceId:SwitchPower1.Status was: 0 now: 1 #hooks:0 2023-01-16 04:30:01.900 luup.variable_set:: 20160.urn:micasaverde-com:serviceId:EnergyMetering1.KWHReading was: 1673842201 now: 1673843401 #hooks:0 2023-01-16 04:30:01.900 luup.variable_set:: 20170.urn:micasaverde-com:serviceId:EnergyMetering1.Watts was: 0 now: 0.6 #hooks:0 2023-01-16 04:30:01.949 openLuup.server:: GET /data_request?id=lu_status2&output_format=json&DataVersion=31057399&Timeout=60&MinimumDelay=1500&_=1673519752391 HTTP/1.1 tcp{client}: 0x563e89c31bd8 2023-01-16 04:30:02.052 openLuup.server:: request completed (1462 bytes, 1 chunks, 102 ms) tcp{client}: 0x563e89c31bd8 2023-01-16 04:30:02.256 openLuup.server:: request completed (1462 bytes, 1 chunks, 1837 ms) tcp{client}: 0x563e89ec0a88 2023-01-16 04:30:02.258 openLuup.server:: request completed (1462 bytes, 1 chunks, 705 ms) tcp{client}: 0x563e8a5edc38 2023-01-16 04:30:02.270 openLuup.io.server:: HTTP:3480 connection closed openLuup.server.receive closed tcp{client}: 0x563e89ec0a88 2023-01-16 04:30:02.281 openLuup.io.server:: HTTP:3480 connection from 192.168.70.249 tcp{client}: 0x563e8a33bfe8 2023-01-16 04:30:02.282 openLuup.server:: GET /data_request?id=status&Timeout=15&DataVersion=31057402&MinimumDelay=50&output_format=json&_r=1673843402280 HTTP/1.1 tcp{client}: 0x563e8a33bfe8 2023-01-16 04:30:02.397 openLuup.server:: GET /data_request?id=lu_status2&output_format=json&DataVersion=31057402&Timeout=60&MinimumDelay=1500&_=1671788900250 HTTP/1.1 tcp{client}: 0x563e8a5edc38 2023-01-16 04:30:02.839 openLuup.server:: GET /data_request?id=lu_status2&output_format=json&DataVersion=31057402&Timeout=60&MinimumDelay=1500&_=1673519752392 HTTP/1.1 tcp{client}: 0x563e89c31bd8 2023-01-16 04:30:02.986 luup.variable_set:: 20170.urn:micasaverde-com:serviceId:EnergyMetering1.Watts was: 0.6 now: 35.5 #hooks:0 2023-01-16 04:30:03.092 openLuup.server:: request completed (983 bytes, 1 chunks, 694 ms) tcp{client}: 0x563e8a5edc38 2023-01-16 04:30:03.411 openLuup.server:: GET /data_request?id=lu_status2&output_format=json&DataVersion=31057403&Timeout=60&MinimumDelay=1500&_=1671788900251 HTTP/1.1 tcp{client}: 0x563e8a5edc38 2023-01-16 04:30:03.515 openLuup.server:: request completed (983 bytes, 1 chunks, 1233 ms) tcp{client}: 0x563e8a33bfe8 2023-01-16 04:30:03.517 openLuup.server:: request completed (983 bytes, 1 chunks, 678 ms) tcp{client}: 0x563e89c31bd8 2023-01-16 04:30:03.524 openLuup.io.server:: HTTP:3480 connection closed openLuup.server.receive closed tcp{client}: 0x563e8a33bfe8 2023-01-16 04:30:03.535 openLuup.io.server:: HTTP:3480 connection from 192.168.70.249 tcp{client}: 0x563e89ff6ce8 2023-01-16 04:30:03.536 openLuup.server:: GET /data_request?id=status&Timeout=15&DataVersion=31057403&MinimumDelay=50&output_format=json&_r=1673843403534 HTTP/1.1 tcp{client}: 0x563e89ff6ce8 2023-01-16 04:30:03.666 openLuup.server:: GET /data_request?id=lu_status2&output_format=json&DataVersion=31057403&Timeout=60&MinimumDelay=1500&_=1673519752393 HTTP/1.1 tcp{client}: 0x563e89c31bd8 2023-01-16 04:30:10.455 luup.variable_set:: 20761.urn:micasaverde-com:serviceId:EnergyMetering1.KWHReading was: 1673842206 now: 1673843409 #hooks:0 2023-01-16 04:30:10.558 openLuup.server:: request completed (994 bytes, 1 chunks, 7022 ms) tcp{client}: 0x563e89ff6ce8 2023-01-16 04:30:10.565 openLuup.io.server:: HTTP:3480 connection closed openLuup.server.receive closed tcp{client}: 0x563e89ff6ce8 2023-01-16 04:30:10.577 openLuup.io.server:: HTTP:3480 connection from 192.168.70.249 tcp{client}: 0x563e89de6688 2023-01-16 04:30:10.577 openLuup.server:: GET /data_request?id=status&Timeout=15&DataVersion=31057404&MinimumDelay=50&output_format=json&_r=1673843410576 HTTP/1.1 tcp{client}: 0x563e89de6688 2023-01-16 04:30:10.681 openLuup.server:: request completed (994 bytes, 1 chunks, 7014 ms) tcp{client}: 0x563e89c31bd8 2023-01-16 04:30:10.985 openLuup.server:: request completed (994 bytes, 1 chunks, 7573 ms) tcp{client}: 0x563e8a5edc38 2023-01-16 04:30:11.520 openLuup.server:: GET /data_request?id=lu_status2&output_format=json&DataVersion=31057404&Timeout=60&MinimumDelay=1500&_=1671788900252 HTTP/1.1 tcp{client}: 0x563e8a5edc38 2023-01-16 04:30:11.951 openLuup.server:: GET /data_request?id=lu_status2&output_format=json&DataVersion=31057404&Timeout=60&MinimumDelay=1500&_=1673519752394 HTTP/1.1 tcp{client}: 0x563e89c31bd8 2023-01-16 04:30:12.597 luup.variable_set:: 20380.urn:upnp-org:serviceId:TemperatureSensor1.CurrentTemperature was: 19 now: 18 #hooks:0 2023-01-16 04:30:12.701 openLuup.server:: request completed (990 bytes, 1 chunks, 1180 ms) tcp{client}: 0x563e8a5edc38 2023-01-16 04:30:12.804 openLuup.server:: request completed (990 bytes, 1 chunks, 2226 ms) tcp{client}: 0x563e89de6688 2023-01-16 04:30:12.815 openLuup.io.server:: HTTP:3480 connection closed openLuup.server.receive closed tcp{client}: 0x563e89de6688 2023-01-16 04:30:12.825 openLuup.io.server:: HTTP:3480 connection from 192.168.70.249 tcp{client}: 0x563e8a027f48 2023-01-16 04:30:12.825 openLuup.server:: GET /data_request?id=status&Timeout=15&DataVersion=31057405&MinimumDelay=50&output_format=json&_r=1673843412824 HTTP/1.1 tcp{client}: 0x563e8a027f48 2023-01-16 04:30:13.130 openLuup.server:: request completed (990 bytes, 1 chunks, 1178 ms) tcp{client}: 0x563e89c31bd8 2023-01-16 04:30:13.541 openLuup.server:: GET /data_request?id=lu_status2&output_format=json&DataVersion=31057405&Timeout=60&MinimumDelay=1500&_=1671788900253 HTTP/1.1 tcp{client}: 0x563e8a5edc38 2023-01-16 04:30:13.816 openLuup.server:: GET /data_request?id=lu_status2&output_format=json&DataVersion=31057405&Timeout=60&MinimumDelay=1500&_=1673519752395 HTTP/1.1 tcp{client}: 0x563e89c31bd8 2023-01-16 04:30:28.245 openLuup.server:: request completed (742 bytes, 1 chunks, 15419 ms) tcp{client}: 0x563e8a027f48 2023-01-16 04:30:28.249 openLuup.io.server:: HTTP:3480 connection closed openLuup.server.receive closed tcp{client}: 0x563e8a027f48 2023-01-16 04:30:28.260 openLuup.io.server:: HTTP:3480 connection from 192.168.70.249 tcp{client}: 0x563e8a3dc468 2023-01-16 04:30:28.261 openLuup.server:: GET /data_request?id=status&Timeout=15&DataVersion=31057405&MinimumDelay=50&output_format=json&_r=1673843428259 HTTP/1.1 tcp{client}: 0x563e8a3dc468 2023-01-16 04:30:41.166 luup.variable_set:: 20380.urn:upnp-org:serviceId:TemperatureSensor1.CurrentTemperature was: 18 now: 19 #hooks:0 2023-01-16 04:30:41.371 openLuup.server:: request completed (990 bytes, 1 chunks, 27554 ms) tcp{client}: 0x563e89c31bd8 2023-01-16 04:30:41.575 openLuup.server:: request completed (990 bytes, 1 chunks, 13313 ms) tcp{client}: 0x563e8a3dc468 2023-01-16 04:30:41.587 openLuup.io.server:: HTTP:3480 connection closed openLuup.server.receive closed tcp{client}: 0x563e8a3dc468 2023-01-16 04:30:41.597 openLuup.io.server:: HTTP:3480 connection from 192.168.70.249 tcp{client}: 0x563e8978cad8 2023-01-16 04:30:41.597 openLuup.server:: GET /data_request?id=status&Timeout=15&DataVersion=31057406&MinimumDelay=50&output_format=json&_r=1673843441596 HTTP/1.1 tcp{client}: 0x563e8978cad8 2023-01-16 04:30:41.690 openLuup.server:: GET /data_request?id=lu_status2&output_format=json&DataVersion=31057406&Timeout=60&MinimumDelay=1500&_=1673519752396 HTTP/1.1 tcp{client}: 0x563e89c31bd8 2023-01-16 04:30:41.693 openLuup.server:: request completed (990 bytes, 1 chunks, 28151 ms) tcp{client}: 0x563e8a5edc38 2023-01-16 04:30:42.608 openLuup.server:: GET /data_request?id=lu_status2&output_format=json&DataVersion=31057406&Timeout=60&MinimumDelay=1500&_=1671788900254 HTTP/1.1 tcp{client}: 0x563e8a5edc38 2023-01-16 04:30:56.899 openLuup.server:: request completed (742 bytes, 1 chunks, 15301 ms) tcp{client}: 0x563e8978cad8 2023-01-16 04:30:56.903 openLuup.io.server:: HTTP:3480 connection closed openLuup.server.receive closed tcp{client}: 0x563e8978cad8 2023-01-16 04:30:56.915 openLuup.io.server:: HTTP:3480 connection from 192.168.70.249 tcp{client}: 0x563e8a23eac8 2023-01-16 04:30:56.915 openLuup.server:: GET /data_request?id=status&Timeout=15&DataVersion=31057406&MinimumDelay=50&output_format=json&_r=1673843456913 HTTP/1.1 tcp{client}: 0x563e8a23eac8 2023-01-16 04:31:12.352 openLuup.server:: request completed (742 bytes, 1 chunks, 15436 ms) tcp{client}: 0x563e8a23eac8 2023-01-16 04:31:12.356 openLuup.io.server:: HTTP:3480 connection closed openLuup.server.receive closed tcp{client}: 0x563e8a23eac8 2023-01-16 04:31:12.369 openLuup.io.server:: HTTP:3480 connection from 192.168.70.249 tcp{client}: 0x563e896b9828 2023-01-16 04:31:12.369 openLuup.server:: GET /data_request?id=status&Timeout=15&DataVersion=31057406&MinimumDelay=50&output_format=json&_r=1673843472367 HTTP/1.1 tcp{client}: 0x563e896b9828 2023-01-16 04:31:21.364 luup.variable_set:: 20380.urn:upnp-org:serviceId:TemperatureSensor1.CurrentTemperature was: 19 now: 20 #hooks:0 2023-01-16 04:31:21.471 openLuup.server:: request completed (990 bytes, 1 chunks, 9101 ms) tcp{client}: 0x563e896b9828 2023-01-16 04:31:21.473 openLuup.server:: request completed (990 bytes, 1 chunks, 39782 ms) tcp{client}: 0x563e89c31bd8 2023-01-16 04:31:21.490 openLuup.io.server:: HTTP:3480 connection closed openLuup.server.receive closed tcp{client}: 0x563e896b9828 2023-01-16 04:31:21.500 openLuup.io.server:: HTTP:3480 connection from 192.168.70.249 tcp{client}: 0x563e8a45b318 2023-01-16 04:31:21.500 openLuup.server:: GET /data_request?id=status&Timeout=15&DataVersion=31057407&MinimumDelay=50&output_format=json&_r=1673843481499 HTTP/1.1 tcp{client}: 0x563e8a45b318 2023-01-16 04:31:21.653 openLuup.server:: GET /data_request?id=lu_status2&output_format=json&DataVersion=31057407&Timeout=60&MinimumDelay=1500&_=1673519752397 HTTP/1.1 tcp{client}: 0x563e89c31bd8 2023-01-16 04:31:21.757 openLuup.server:: request completed (990 bytes, 1 chunks, 39149 ms) tcp{client}: 0x563e8a5edc38 2023-01-16 04:31:22.598 openLuup.server:: GET /data_request?id=lu_status2&output_format=json&DataVersion=31057407&Timeout=60&MinimumDelay=1500&_=1671788900255 HTTP/1.1 tcp{client}: 0x563e8a5edc38 2023-01-16 04:31:36.943 openLuup.server:: request completed (742 bytes, 1 chunks, 15443 ms) tcp{client}: 0x563e8a45b318 2023-01-16 04:31:36.949 openLuup.io.server:: HTTP:3480 connection closed openLuup.server.receive closed tcp{client}: 0x563e8a45b318 2023-01-16 04:31:36.959 openLuup.io.server:: HTTP:3480 connection from 192.168.70.249 tcp{client}: 0x563e8a85f578 2023-01-16 04:31:36.959 openLuup.server:: GET /data_request?id=status&Timeout=15&DataVersion=31057407&MinimumDelay=50&output_format=json&_r=1673843496958 HTTP/1.1 tcp{client}: 0x563e8a85f578 2023-01-16 04:31:51.128 luup.variable_set:: 20300.urn:upnp-org:serviceId:TemperatureSetpoint1_Heat.CurrentSetpoint was: 21 now: 18 #hooks:0 2023-01-16 04:31:51.233 openLuup.server:: request completed (994 bytes, 1 chunks, 28634 ms) tcp{client}: 0x563e8a5edc38 2023-01-16 04:31:51.337 openLuup.server:: request completed (994 bytes, 1 chunks, 29683 ms) tcp{client}: 0x563e89c31bd8 2023-01-16 04:31:51.339 openLuup.server:: request completed (994 bytes, 1 chunks, 14379 ms) tcp{client}: 0x563e8a85f578 2023-01-16 04:31:51.347 openLuup.io.server:: HTTP:3480 connection closed openLuup.server.receive closed tcp{client}: 0x563e8a85f578 2023-01-16 04:31:51.359 openLuup.io.server:: HTTP:3480 connection from 192.168.70.249 tcp{client}: 0x563e8985dd28TIA
C
All great stuff going on 🙂 One thing I am wondering about is is it possible to view the entire payload coming from Owntracks at all?
Reason I ask is that my iPhone has changed its
string_sensor.value to null even though we are snowed in. This obviously trips the binary sensor to off.
The sensor entity I have set to owntracks_in_region however remains true.
The change happened at 0523 this morning (UTC) when I was still asleep:
[latest-22337]2022-12-13T05:19:13.053Z <httpapi:INFO> httpapi: API request from ::ffff:192.168.70.70: GET /api/v1/systime [latest-22337]2022-12-13T05:22:05.883Z <httpapi:INFO> httpapi: API request from ::ffff:192.168.70.253: GET /api/v1/systime [latest-22337]2022-12-13T05:23:01.087Z <MQTTController:WARN> MQTTController#mqqt if_expr expression payload._type == 'location' || payload._type='transition' returned non-boolean (string) [latest-22337]2022-12-13T05:23:01.091Z <MQTTController:ERR> MQTTController#mqqt event handler failed for owntracks/catman/catmaniphone on catman_owntracks: [TypeError] Can't set NaN on attribute battery_power.level (mqqt>catman_owntracks) [-] [latest-22337]2022-12-13T05:23:01.091Z <MQTTController:CRIT> TypeError: Can't set NaN on attribute battery_power.level (mqqt>catman_owntracks) [-] TypeError: Can't set NaN on attribute battery_power.level (mqqt>catman_owntracks) at Entity.setAttribute (/home/catman/reactor/server/lib/Entity.js:453:19) at MQTTController.handle_event (/home/catman/reactor/ext/MQTTController/MQTTController.js:935:19) at MqttClient.<anonymous> (/home/catman/reactor/ext/MQTTController/MQTTController.js:424:38) at MqttClient.emit (node:events:527:28) at MqttClient.emit (node:domain:475:12) at MqttClient._handlePublish (/home/catman/reactor/ext/MQTTController/node_modules/mqtt/lib/client.js:1547:12) at MqttClient._handlePacket (/home/catman/reactor/ext/MQTTController/node_modules/mqtt/lib/client.js:535:12) at work (/home/catman/reactor/ext/MQTTController/node_modules/mqtt/lib/client.js:438:12) at Writable.writable._write (/home/catman/reactor/ext/MQTTController/node_modules/mqtt/lib/client.js:452:5) at doWrite (/home/catman/reactor/ext/MQTTController/node_modules/readable-stream/lib/_stream_writable.js:409:139) [latest-22337]2022-12-13T05:23:01.092Z <Rule:INFO> Location Test (rule-lbl1mbdn in Home or Away) starting evaluation; because entity-changed BinarySensor#mqqt>catman_owntracks [latest-22337]2022-12-13T05:23:01.092Z <Rule:INFO> Location Test (rule-lbl1mbdn in Home or Away) starting evaluation; because entity-changed BinarySensor#mqqt>catman_owntracks [latest-22337]2022-12-13T05:23:01.097Z <Timer:null> Timer#rule-lbl1mbdn just a note: I'm setting a delay of only 9ms (from 1670908981095<13/12/2022, 05:23:01> to 1670908981104<13/12/2022, 05:23:01>) [latest-22337]2022-12-13T05:23:01.098Z <Rule:INFO> Location Test (rule-lbl1mbdn in Home or Away) evaluated; rule state transition from RESET to SET! [latest-22337]2022-12-13T05:23:01.118Z <Rule:INFO> Location Test (rule-lbl1mbdn in Home or Away) evaluated; trigger state unchanged (false); rule state remains SET [latest-22337]2022-12-13T05:23:01.118Z <Rule:INFO> Location Test (rule-lbl1mbdn in Home or Away) evaluation complete [latest-22337]2022-12-13T05:23:01.118Z <Rule:INFO> Location Test (rule-lbl1mbdn in Home or Away) evaluation complete [latest-22337]2022-12-13T05:23:01.119Z <Engine:INFO> Enqueueing "Location Test<SET>" (rule-lbl1mbdn:S) [latest-22337]2022-12-13T05:23:01.131Z <Engine:NOTICE> Starting reaction Location Test<SET> (rule-lbl1mbdn:S) [latest-22337]2022-12-13T05:23:01.138Z <Engine:INFO> Location Test<SET> all actions completed.FWIW I have noticed the issue with the NaN on battery_power.level previously but it was while I was messing around with stuff.
My phone seems to update more frequently than Mrs C's which has not updated at all since I did a location push at 1218 UTC yesterday (to clear the battery_power.level issue.
Debian Bullseye on bare metal
The only thing I can think of right now is that for some reason my phone is sending something duff (although the other parameters (i.e. elevation, long and lat) all seem fine. Forcing a publish from the App results in everything updating as expected.
Log level in Mosquitto is set to all.
C
Possibly stupid question. I have Owntracks on my phone. It's claiming to report to my Mosquitto server. However, when I transitioned out of the logged area today, I can't find any log entry that seems to correlate.
Is there documentation to integrate Mosquitto with AltUI or MSR? Or am I going the wronggggggg way (again)?
TIA
C
....but not what you think, probably.
I doubt there's an answer here to this, and it's about Iphone locator (sorry!)
Hopefully the question is, at least, slightly interesting.
Polling on the phone is currently set to 5 minutes and IPhone locator appears to update every 5 minutes as I also get an update in the OpenLuup log every 5 minutes.
The 'problem' is that the Iphone locator (and therefore any conditions based upon a change in value) are happening 4 minutes and some seconds after the phone polls and updates its position. So effectively the phone is moving for nearly 10 minutes before any notification takes place. Which is a bit slow for my desired application.
As an example:
2022-05-05 17:27:08.244 luup.variable_set:: 55.urn:upnp-org:serviceId:IPhoneLocator1.MsgText2 was: 28.35 Km @ 0.00 Km/h on 2022-05-05 17:17 now: 28.35 Km @ 0.00 Km/h on 2022-05-05 17:22 #hooks:0 2022-05-05 17:32:12.340 luup.variable_set:: 55.urn:upnp-org:serviceId:IPhoneLocator1.MsgText2 was: 28.35 Km @ 0.00 Km/h on 2022-05-05 17:22 now: 27.77 Km @ 6.92 Km/h on 2022-05-05 17:27 #hooks:0Where you can see that the phone must have updated its location between 17:27:08.244 and 17:28:00.000
Anyone got an bright ideas how I can reduce the discrepency?
Cheers!
C
I am running HA, MSR and ZWavejs2MQTT on a Synology NAS (Docker). When the NAS reboots (after a power outage for example), I see errors (under Status), yellow triangles in front of Rule Sets and yellow bars in front of Global Expressions. See images below.
To give you some context, in some cases MSR writes statuses to HA Helpers. In order cases, MSR just can't seem to find the referenced entities.
Also, note the bevahior under Global Expressions (images below). The one with the yellow bar says, "Invalid reference to member attributes of null". If I click the Try this expression button, the Last value will refresh accordingly and the yellow bar disappears.
Interestingly, everything seems to be working like it should even if I don't do anything. Which is weird.
This behaviour does not happen when the MSR container is stopped and restarted manually.
Anybody experienced this? Thanks
Errors showing under Status
16581e96-9f7d-4107-a591-6c0755349a73-image.png
Yellow triangles showing under Rule Sets
84b7c20d-a325-4101-b456-5aa4814a798f-image.png
Yellow bar showing under Global Expressions
67f150eb-4c18-43ff-bd3b-b5bd181bc933-image.png
1a648901-450a-4b15-b558-c73a5b737b56-image.png
Hi @toggledbits,
i tried the ezmqtt today, i have some issues most likely that i'm doing something wrong.
i have on my ezlo hub 3 switches, 1 dimmer and 1 motion sensor
i can control the dimmer via ezmqtt/set/device/<device-id>/item/<item-name>
but i can't control the switches.
i receive on ezmqtt/tele/device/61e8937e124c35129921171d/item/switch payload true or false depending on the state of the switch, but when i send on ezmqtt/set/device/61e8937e124c35129921171d/item/switch payload true or false nothing happens, its the same for all switches.
what i'm doing wrong?
Cheers
Hi
Hope I am allowed to post this here?
I can't figure out how to correctly show device battery levels from the Vera Plus via MSR in Granfana.
These devices don't have the battery levels that its displaying in Granfana. I've tried messing about with various settings like units and decimals but its still not right.
dc0736f2-3821-436c-97ea-09eddb397346-image.png
Mosquitto and Owntracks
-
@therealdb said in Mosquitto and Owntracks:
@catmanv2 best thing to do is to map a custom device under MSR. Look at the doc.
Yeah now I've found the right bit of doc. Of course, I should have done something obvious like search for MQTT in the MSR manual, but sometimes I like to do things the hard way.
For some reason I can't add the controller section to my reactor.yaml file and get a running MSR but I'll dig into that.
Cheers
C
-
Cheers
I'm only trying to add this bit:
- id: mqtt name: MQTT enabled: true implementation: MQTTController config: # Replace IP with that of your MQTT broker below source: "mqtt://127.0.0.1:8883/" user: something password: something
Although the user and password are correct, I'm not clear if I need to quote them or not. Restarting reactor with that in my (otherwise working) reactor.yaml: Reactor stops and just sits there, logging nothing. (Not checked the Mosquitto logs yet)
If I swap reactor.yaml back to a working version reactor starts fine. So it's got to be something real easy.....C
-
@sweetgenius said in Mosquitto and Owntracks:
@catmanv2 I am no expert but try this:
Change user: to username: Also, I believe both username: and password: should be the same indenting as source.Thanks. username makes no difference. Does the indenting really matter? If so I shall have to get some code editor as vi isn't letting me get it right
C
-
@catmanv2 said in Mosquitto and Owntracks:
Does the indenting really matter?
Yes, indenting matters, like @therealdb said previously.
Is port 8883 the correct port for your setup? -
@sweetgenius said in Mosquitto and Owntracks:
@catmanv2 said in Mosquitto and Owntracks:
Does the indenting really matter?
Yes, indenting matters, like @therealdb said previously.
Is port 8883 the correct port for your setup?Lovely, ta. I shall fire up VS code! 8883 is correct as well
C
-
@catmanv2 said in Mosquitto and Owntracks:
Does the indenting really matter?
Yes! YAML is highly dependent on indenting! And you must use spaces, not tabs. Here are a few good YAML tools on line to help:
- https://yamllint.com - Check YAML (paste and click)
- https://yamlchecker.com - Another checker
- https://onlineyamltools.com/edit-yaml - A handy web-based syntax-driven editor
-
@catmanv2 said in Mosquitto and Owntracks:
it didn't work
Three words that should never be written into a post asking for help. At least, as I've often said, not as the entire summary of where you are. I suggest a form more like this (the numbering is just to separate component parts of your question/post):
"OK, It didn't work. Here's where I am with this darned thing..."
-
Describe what part/thing you are trying to do; if part of multiple step process, tell us both what you are trying to do overall, and what step of that process you are working on that is going wrong
"I'm trying to get my MQTTController instance in MSR to connect to my broker, and I need to use a username/password for authentication. I have configured the username and password in my
reactor.yaml
file." -
Describe what you expected to see.
"When I restarted MSR and hard-refreshed my browser, I thought I would see the MQTT system entity in the Entities list, or the controller listed as "up" on the Controller Status widget on the Status page.
-
Describe what you actually see (e.g. errors or exceptions) or what you don't see that you expected. If there's an error on the screen, make sure your narrative includes the full and complete text of it, and describe where it came up and what you were doing when it did. If it's a corrupted display or something better shown with a screen shot, add that behind your narrative.
"The MQTT controller doesn't show up at all in either the Entities list or Controller Status widget."
... or maybe it's worse than that?
"Reactor doesn't even start now."
-
Show your work. Give the problem context.
"Here's what the configuration section for my MQTTController instance looks like when it fails:". Paste the text of the configuration from first line to last without redaction or modification except passwords/access tokens/private keys[1].
-
Show that you dug for an answer yourself:
"I looked in the logs, and found these messages:" — follow with snippet of log, with one or two dozen lines of context before what you found. Never post just an error message without context.[1]
In many cases, this last step will lead you to answering your own question. If you can't interpret what you are seeing, that's perfectly fine, but we need to see it to help you, and there's no point in making us ask for it. Go look for it yourself, and give it up front.
Give us something to go on. Messaging back and forth in a forum like this is the worst way to play "Twenty Questions". The less detail you give, the longer it takes to get a solution. And the old Internet trope of the 2000s is still true in the current decade: "People will put as much effort into answering your question as you put into asking it."
IMO, the posting guidelines I wrote for the Reactor category here (which are based on posted guidelines created for Home Assistant's forums, which are based on guidelines created elsewhere) should be applied everywhere. It's in your interest.
---
[1] Formatting code and log snippets should be done using the ``` sequence on a line by itself, followed by the code or log snippet, followed by the ``` sequence on a line by itself again.
```
controllers:
- id: mqtt
name: MQTT
implementation: MQTTController
enabled: true
```
looks like this when your post is later displayed (which is helpful/necessary for readability and finding errors in YAML in particular):controllers: - id: mqtt name: MQTT implementation: MQTTController enabled: true
(@CatmanV2 , you clearly know how to do this formatting, I'm just adding this for completeness/benefit of future readers).
-
-
@toggledbits said in Mosquitto and Owntracks:
@catmanv2 said in Mosquitto and Owntracks:
it didn't work
Three words that should never be written into a post asking for help.
OK, fair shout but it was more a comment of 'It didn't work then'. (Not withstanding the rest of your valued guidance) I am no longer asking for help (on that issue), nor was I when I made that post. Because It was, buy that point, working.
C
-
OK. That wasn't clear to me. It seemed like you were still having issues. I am, in any case, glad to hear you made progress.
What step are you on now? Have you made your broker accessible on a public IP and port?
-
Yes, thanks.
I can see Owntracks connecting, and also Reactor is happily showing the MQTT Entitiy. So I think that all the connections are there. The next step for me would be to get the correct configuration for Reactor to, well, react to an Owntracks message.
My only request is if anyone has an Owntracks / YAML template for reactor (which is what I think I need next) that would save me from trying to create a new one....
....which I will cheerfully do once I've read a lot more about documentation and so on.Cheers
C
-
Here's a simple config for a binary sensor that is true when I am home (i.e. in the region called "Home" in Owntracks):
entities: owntracks_patrick_home: name: "Patrick Home" capabilities: [ binary_sensor ] primary_attribute: binary_sensor.state type: BinarySensor events: "owntracks/user/phrs21": "binary_sensor.state": json_payload: true if_expr: "payload._type == 'location'" expr: > ( first region in ( payload.inregions ?? [] ) with region == "Home": true ) ?? false
The
capabilities
andprimary_attribute
set up the entity in Reactor to hold the interpreted payload data from Owntracks' location updates. In this case, we're just going to keep a binary in/out state for the one region, nothing else.The event configured here reacts to an incoming "owntracks/user/phrs21" topic/message (
phrs21
is set in the Identification part of the connection configuration in the Owntracks app). When that topic comes in, we declare that the attributebinary_sensor.state
is going to be modified according to the expression given. Thejson_payload: true
line tells MQTTController to interpret that payload as JSON data and make a proper object out of it that the expression can then pick through easily. Theif_expr
expression makes sure that the assignment to the attribute is done only if the payload type islocation
(there are several message types that may be sent, not all of which contain region data). Theexpr
expression itself accesses and loops through theinregions
array of the payload (now object) to see ifHome
is an element of the array, and returns true if so. Otherwise, the expression returns false (i.e. not home). That result is assigned to thebinary_sensor.state
attribute..Some details:
- The expression fragment
( payload.inregions ?? [] )
is using the coalesce operator??
. Ifinregions
does not exist in the payload (i.e. you are not in any region), thepayload.inregions
reference would result in null, so the coalesce replaces that with an empty array ([]
). This prevents the expression from throwing an error ifinregions
is missing/null. - The ending fragment
?? false
is a similar use of the coalesce operator because, if "Home" is not found ininregions
, thefirst..in
statement will return a null (which is what it does when nothing matches). Using the coalesce converts that null into a real false, indicating that we didn't find "Home" listed and we are therefore surely not Home.
Edit: added
if_expr
in the config, and explanation in the narrative. - The expression fragment
-
Also, I've just added this as a template called
owntracks_in_region
to build 22260 of MQTTController. -
FYI, I revised the config and the narrative to make sure it doesn't try to update the sensor for message types that would never contain
inregions
(and thus could cause the binary sensor to spuriously go false).