@archers Very Cool gadget. I soldered to the flash pins, which given the size of the contacts was challenging, but managed to make it work. Now waiting for my BLE sensors to arrive.
Energy Monitoring built into the dual relay!
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.
Running latest version of MSR in Docker on Bullseye/Raspberry Pi CM4. Every time I "restart" MSR it returns to the default set of status panels. I add "Controller Status", but it disappears on every restart. Is this the planned behavior or do I have an issue somewhere?
Hello guys. I'm currently building my own home and i want it to be kind of high tech and cool but i have actually never owned a smart device other than a smartphone and an old smart TV so i don't even know what exactly am i looking for. I will explain my idea and i am looking forward to somebody shining some light.
Sooo - i was thinking about getting a WiFi controlled AC, TV, Washing machine, Dryer and smart switches for the lights. I suppose i need some kind of a assistant that connects to the wifi and can control all of these. Also i want an audio system - for the TV in the living room aaaand i also want to have 2 speakers in the bathroom which i have no idea where i would connect. I guees i need some kind of a receiver and amplifier for them to work correctly. But i also want that reciever to be hidden somewhere so it ahould be small and it also should be able to connect to the wifi i guess.
So wgat exactly do i need so far. Would any wifi device connect to any assistant? Or am i lookng for particullar stuff... Will i be able for example to turn on my AC from outside the household for example when im at work? And can i also connect an alarm system of some type?
Hi,
I am a student and recently i am working on smart home project and writing a seminar paper about the way users handle and manage IoT devices. I you have 3 min, please fill below survey. Its really short.
Thank you in advance, I really appreciate everyone's help.
I've done a bit of repackaging of MSR to make it work as an add-on under Home Assistant mostly for my own purposes but hopefully it makes it a bit easier to install and get going.
Contribute to mrw298/hassio-reactor-addon development by creating an account on GitHub.
Hi
Is there a way to copy text from an Alert or export them?
I wanted to copy a device ID number that MSR says no longer exists on my Ezlo Plus controller.
Thanks
Hardly a big deal, and likely user error. Bare metal install on Debian Bullseye
Observed behaviour:
TTS announcements are made with the correct volume. So a message to group 'Everywhere' with Volume 40 is announced. Asking an individual echo device to state its volume after the announcement gets the response 'This device is at volume 4'
So far so good.
Using the:
x_vera_svc_bochicchio_com_VeraAlexa1.SetVolumeIn an MSR reaction appears to have no impact when either applied to the group 'Everywhere' or a specific device.
So executing this reaction:
Screenshot 2023-01-31 at 09.17.40.png
Is acknowledged by the device (with a 'beep') and shows the Lua Log below:
2023-01-31 09:21:45.778 openLuup.io.server:: HTTP:3480 connection from 192.168.70.249 tcp{client}: 0x5572399831f8 2023-01-31 09:21:45.779 openLuup.server:: GET /data_request?GroupZones=Office&DesiredVolume=10&DeviceNum=22&id=action&serviceId=urn%3Abochicchio-com%3AserviceId%3AVeraAlexa1&action=SetVolume&output_format=json&_r=1675156905777 HTTP/1.1 tcp{client}: 0x5572399831f8 2023-01-31 09:21:45.780 luup.call_action:: 22.urn:bochicchio-com:serviceId:VeraAlexa1.SetVolume 2023-01-31 09:21:51.670 luup.variable_set:: 22.urn:bochicchio-com:serviceId:VeraAlexa1.LatestResponse was: sending cmd:speak:<s>Volume Set</s><break time="0s" /> to dev:Office type:A32DOYMUN6DTXA serial:G090U50991550NLS cu... now: sending cmd:vol:10 to dev:Office type:A32DOYMUN6DTXA serial:G090U50991550NLS customerid:A1CVTZEBJIUFJI #hooks:0 2023-01-31 09:21:51.671 openLuup.server:: request completed (35 bytes, 1 chunks, 5891 ms) tcp{client}: 0x5572399831f8 2023-01-31 09:21:51.683 openLuup.io.server:: HTTP:3480 connection closed openLuup.server.receive closed tcp{client}: 0x5572399831f8 2023-01-31 09:21:51.685 openLuup.server:: request completed (930 bytes, 1 chunks, 42818 ms) tcp{client}: 0x557239726708 2023-01-31 09:21:51.687 openLuup.server:: request completed (930 bytes, 1 chunks, 42548 ms) tcp{client}: 0x5572392c0fd8 2023-01-31 09:21:51.688 openLuup.server:: request completed (930 bytes, 1 chunks, 12501 ms) tcp{client}: 0x5572392c7f88 2023-01-31 09:21:51.692 openLuup.io.server:: HTTP:3480 connection closed openLuup.server.receive closed tcp{client}: 0x5572392c7f88 2023-01-31 09:21:51.704 openLuup.io.server:: HTTP:3480 connection from 192.168.70.249 tcp{client}: 0x557239be10b8 2023-01-31 09:21:51.704 openLuup.server:: GET /data_request?id=status&Timeout=15&DataVersion=66666322&MinimumDelay=50&output_format=json&_r=1675156911703 HTTP/1.1 tcp{client}: 0x557239be10b8 2023-01-31 09:21:51.905 openLuup.server:: GET /data_request?id=lu_status2&output_format=json&DataVersion=66666322&Timeout=60&MinimumDelay=1500&_=1675022474387 HTTP/1.1 tcp{client}: 0x5572392c0fd8 2023-01-31 09:21:53.042 openLuup.server:: GET /data_request?id=lu_status2&output_format=json&DataVersion=66666322&Timeout=60&MinimumDelay=1500&_=1675079237873 HTTP/1.1 tcp{client}: 0x557239726708However direct interrogation of the device reveals the volume has not changed.
I assume I'm doing something wrong or not understanding how this is meant to work?
One other observation is that messages announce to the 'Everywhere' group appear to make the volume 'stick' where as messages to an individual device appear to revert to the previous volume setting.
My expectation would be analagous to a radio i.e. the volume stays as it was last set, but happy to be corrected.
TIA!
C
Trying to figure out how I can include a list of entities that have "battery_level" in their ID without having to manually include them in a list. I have a group which selects all entities with the battery_power capability and filters them if they are dead. In HA there are quite a few entities that have the battery_power capability but don't actually report a battery percent (see screenshot below for an example), the entities I am interested in are the ones that contain battery_level in their ID.
I tried the following in the config file but it hasn't worked:
"dead_battery": select: - include_capability: battery_power - include_entity: "/^hass>battery_level/"What I think I am doing wrong here is that I am including entities with the batter_level capability which doesn't actually exist.
Hello,
I have a kitchen light that can be controlled by two switches, using either to turn it off or on. I have been slowly changing things over to be a smart home but this is the first switch I am attempting to install.
I am in a double wide modular home (mobile) that was built in 1994.
At first I thought I would need a 3 way switch but when taking the normal switches apart I realized that was incorrect because the wiring on my switches are different than anything I could find online.
For one a 3 way smart switch requires 5 wires and there are only 2 wires going into the primary switch with 3 wires going into the secondary switch from the primary switch (at least I think the 3 wires connect the two switches together). Images will be attached of the wiring.
There are two wires (one black and one white) going into the first switch and 3 wires (black, white, and red) going out of that and into the second switch (I assume). The odd thing is the red wire going to the second switch is connected to the white wire going into the first switch and the white wire going into the second switch seems to be a bridge wire or a traveler wire. Not exactly sure. You will see what I mean in the images.
I need to know what kind of smart switch I can use in this set up with one remaining a normal switch.
Note that for some reason the images got switched around when uploading them. The image with 2 wires on one side and 3 on the other is what I think is the primary and the image with just 3 wires is the secondary.
Primary.jpg Secondary.jpg
Suddenly my MSR actions aren't running anymore. I've had this before, but with an update to a new version it was fixed. see also
But an update from version 22240 to 22256 gave this time no result.
The reactions aren't running correctly. Most of my MSR automations are use turn lights on/off, and time based automations nothing worked where MSR does his magic.
I've also tested a bunch of things to see what's broken, here's what I've observed:
-I can successfully flip lights on/off manually within Vera
-I can successfully flip lights on/off manually within MSR's Entities section
-the sensors are correctly reporting to Vera and MSR (I can see when they're switch on/off)
-the rules within MSR are working correctly, I can see when they flip to 'true' of 'false' '
'
But I cannot successfully run the "Set Reaction" and "Reset Reaction" within MSR (by hitting the 'play' button)
But the play buttons on the entitiy action in the "Set Reaction" and in "Reset Reaction" they work well.
Can someone help me to get MSR working again
MSR is running bare metal on Rpi4
Build 21228 has been released. Docker images available from DockerHub as usual, and bare-metal packages here.
Home Assistant up to version 2021.8.6 supported; the online version of the manual will now state the current supported versions; Fix an error in OWMWeatherController that could cause it to stop updating; Unify the approach to entity filtering on all hub interface classes (controllers); this works for device entities only; it may be extended to other entities later; Improve error detail in messages for EzloController during auth phase; Add isRuleSet() and isRuleEnabled() functions to expressions extensions; Implement set action for lock and passage capabilities (makes them more easily scriptable in some cases); Fix a place in the UI where 24-hour time was not being displayed.I've made a few templates for MQTTController, mostly Zigbee2MQTT, and sharing them to the community if anyone else would find use for them.
MQTT templates for Multi-hub Reactor. Contribute to calmen77/MSR-mqtt_templates development by creating an account on GitHub.
These are the ones I'm using but I'm happy to add more Zigbee2MQTT templates if needed.
Happy Holidays!
Hello!
I have recently begun making my home smarter, and I've run into some trouble while trying to get my Sonoff zbmini-l, which is connected to my Philips Hue bridge, to work properly. I am able to control it individually, but not through scenes or with the Google Home app. Has anyone else encountered this problem and know of a fix? Additionally, I have another Zigbee bridge, but I am unable to find the Sonoff device on it.
Thank you in advance for your help!
PS: I am very new to this.
Hi,
Connection to Ezlo is going in timeout with api-cloud.ezlo. This happens in anonymous_access set to false or in true.
A lot of Error Incompatible serialization data (in the log I cut many more).
In MSR controller status, Ezlo is in green icon but after sometime devices start to not respond.
Can I have some help?
Synology Nas - INTEL - DSM 7.1.1-42962 Update 3
Ezlo Hub Model: h2.1 - v.2.0.35.2156.5
Docker Container
Reactor latest-23010-7dd2c9e9
Thanks in advance
[latest-23010]2023-01-20T18:11:08.069Z <app:null> Reactor build latest-23010-7dd2c9e9 starting on v16.15.1 [latest-23010]2023-01-20T18:11:08.071Z <app:null> Process ID 1 user/group 0/0; docker; platform linux/x64 #42962 SMP Tue Oct 18 15:07:03 CST 2022; locale (undefined) [latest-23010]2023-01-20T18:11:08.071Z <app:null> Basedir /opt/reactor; data in /var/reactor/storage [latest-23010]2023-01-20T18:11:08.071Z <app:null> NODE_PATH=/opt/reactor:/opt/reactor/node_modules [latest-23010]2023-01-20T18:11:08.085Z <app:INFO> Configured locale (undefined); selected locale(s) en-US.UTF-8 [latest-23010]2023-01-20T18:11:08.122Z <app:INFO> Loaded locale en-US [latest-23010]2023-01-20T18:11:08.128Z <Structure:null> Module Structure v22323 [latest-23010]2023-01-20T18:11:08.131Z <Capabilities:null> Module Capabilities v22356 [latest-23010]2023-01-20T18:11:08.166Z <Capabilities:NOTICE> System capabilities loaded from core distribution, data version 22356 revision 1 [latest-23010]2023-01-20T18:11:08.211Z <Plugin:null> Module Plugin v22300 [latest-23010]2023-01-20T18:11:08.238Z <TimerBroker:null> Module TimerBroker v22283 [latest-23010]2023-01-20T18:11:08.241Z <Entity:null> Module Entity v22353 [latest-23010]2023-01-20T18:11:08.247Z <Controller:null> Module Controller v22323 [latest-23010]2023-01-20T18:11:08.261Z <default:null> Module Ruleset v22293 [latest-23010]2023-01-20T18:11:08.262Z <default:null> Module Rulesets v22146 [latest-23010]2023-01-20T18:11:08.271Z <GlobalExpression:null> Module GlobalExpression v22146 [latest-23010]2023-01-20T18:11:08.296Z <Predicate:null> Module Predicate v22345 [latest-23010]2023-01-20T18:11:08.317Z <AlertManager:null> Module AlertManager v22283 [latest-23010]2023-01-20T18:11:08.322Z <Rule:null> Module Rule v22345 [latest-23010]2023-01-20T18:11:08.327Z <GlobalReaction:null> Module GlobalReaction v22324 [latest-23010]2023-01-20T18:11:08.329Z <Engine:null> Module Engine v23001 [latest-23010]2023-01-20T18:11:08.335Z <httpapi:null> Module httpapi v22347 [latest-23010]2023-01-20T18:11:08.400Z <wsapi:null> Module wsapi v22320 [latest-23010]2023-01-20T18:11:08.400Z <app:NOTICE> Starting Structure... [latest-23010]2023-01-20T18:11:08.460Z <InfluxFeed:null> Module InfluxFeed v22286 [latest-23010]2023-01-20T18:11:08.462Z <Structure:INFO> Structure#1 starting plugin influx (InfluxFeed) [latest-23010]2023-01-20T18:11:08.463Z <Structure:INFO> Structure#1 loading controller interface vera (VeraController) [latest-23010]2023-01-20T18:11:08.517Z <TaskQueue:null> Module TaskQueue 21351 [latest-23010]2023-01-20T18:11:08.518Z <VeraController:null> Module VeraController v22325 [latest-23010]2023-01-20T18:11:08.548Z <Structure:INFO> Structure#1 loading controller interface ezlo (EzloController) [latest-23010]2023-01-20T18:11:08.635Z <EzloController:null> Module EzloController v22344 [latest-23010]2023-01-20T18:11:08.867Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity device_613c8f94129e291209006add: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:08.868Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] Error: Incompatible serialization data; can't unserialize at Entity.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at EzloController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new EzloController (/opt/reactor/server/lib/EzloController.js:707:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:08.869Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity device_613c9094129e291209006ae4: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:08.869Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] Error: Incompatible serialization data; can't unserialize at Entity.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at EzloController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new EzloController (/opt/reactor/server/lib/EzloController.js:707:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:08.902Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity device_61437a57129e29124dfcd791: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:08.902Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] Error: Incompatible serialization data; can't unserialize at Entity.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at EzloController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new EzloController (/opt/reactor/server/lib/EzloController.js:707:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:08.925Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity device_61437a58129e29124dfcd7a0: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:08.925Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] Error: Incompatible serialization data; can't unserialize at Entity.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at EzloController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new EzloController (/opt/reactor/server/lib/EzloController.js:707:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:08.942Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity device_6198168b129e2918c5ce97bc: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:08.943Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] at Entity.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at EzloController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new EzloController (/opt/reactor/server/lib/EzloController.js:707:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:08.945Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity device_61981760129e2918c5ce97cb: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:08.945Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] Error: Incompatible serialization data; can't unserialize at Entity.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at EzloController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new EzloController (/opt/reactor/server/lib/EzloController.js:707:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:08.945Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity device_61981770129e2918c5ce97d0: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:08.945Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] Error: Incompatible serialization data; can't unserialize at Entity.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at EzloController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new EzloController (/opt/reactor/server/lib/EzloController.js:707:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:08.946Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity device_6198177e129e2918c5ce97d5: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:08.946Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] Error: Incompatible serialization data; can't unserialize at Entity.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at EzloController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new EzloController (/opt/reactor/server/lib/EzloController.js:707:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:08.947Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity device_6198178b129e2918c5ce97da: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:08.947Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] Error: Incompatible serialization data; can't unserialize at Entity.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at EzloController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new EzloController (/opt/reactor/server/lib/EzloController.js:707:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:08.947Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity device_6198179b129e2918c5ce97df: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:08.947Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] Error: Incompatible serialization data; can't unserialize at Entity.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at EzloController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new EzloController (/opt/reactor/server/lib/EzloController.js:707:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:08.948Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity device_619817a6129e2918c5ce97e4: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:08.948Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] Error: Incompatible serialization data; can't unserialize at Entity.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at EzloController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new EzloController (/opt/reactor/server/lib/EzloController.js:707:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:08.948Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity device_619817b2129e2918c5ce97e9: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:08.949Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:09.012Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity device_626d5d16129e291244463492: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:09.012Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] Error: Incompatible serialization data; can't unserialize at Entity.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at EzloController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new EzloController (/opt/reactor/server/lib/EzloController.js:707:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:09.013Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity device_626d5d16129e291244463494: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:09.013Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] Error: Incompatible serialization data; can't unserialize at Entity.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at EzloController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new EzloController (/opt/reactor/server/lib/EzloController.js:707:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:09.013Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity device_626d64d4129e2912444634a8: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:09.014Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] Error: Incompatible serialization data; can't unserialize at Entity.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at EzloController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new EzloController (/opt/reactor/server/lib/EzloController.js:707:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:09.014Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity device_626d64d5129e2912444634af: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:09.014Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] Error: Incompatible serialization data; can't unserialize at Entity.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at EzloController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new EzloController (/opt/reactor/server/lib/EzloController.js:707:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:09.015Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity device_626d64d5129e2912444634b2: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:09.015Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] Error: Incompatible serialization data; can't unserialize at Entity.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at EzloController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new EzloController (/opt/reactor/server/lib/EzloController.js:707:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:09.039Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity device_629e6ec1129e2912b034351f: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:09.040Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] Error: Incompatible serialization data; can't unserialize at Entity.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at EzloController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new EzloController (/opt/reactor/server/lib/EzloController.js:707:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:09.040Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity device_629e6ec2129e2912b0343529: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:09.040Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] Error: Incompatible serialization data; can't unserialize at Entity.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at EzloController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new EzloController (/opt/reactor/server/lib/EzloController.js:707:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:09.041Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity device_629e6ec3129e2912b034352b: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:09.041Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] Error: Incompatible serialization data; can't unserialize at Entity.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at EzloController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new EzloController (/opt/reactor/server/lib/EzloController.js:707:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:09.042Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity device_629e6ec3129e2912b034352d: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:09.042Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] Error: Incompatible serialization data; can't unserialize at Entity.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at EzloController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new EzloController (/opt/reactor/server/lib/EzloController.js:707:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:09.043Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity device_629e6ec3129e2912b034352f: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:09.043Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] Error: Incompatible serialization data; can't unserialize at Entity.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at EzloController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new EzloController (/opt/reactor/server/lib/EzloController.js:707:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:09.043Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity device_62a6d99a129e29123e7b0a8f: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:09.043Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] Error: Incompatible serialization data; can't unserialize at Entity.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at EzloController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new EzloController (/opt/reactor/server/lib/EzloController.js:707:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:09.044Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity device_62a6d99b129e29123e7b0a9d: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:09.044Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:09.060Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity room_629687b6129e2912430f2de2: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:09.060Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] Error: Incompatible serialization data; can't unserialize at Group.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at EzloController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new EzloController (/opt/reactor/server/lib/EzloController.js:707:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:09.061Z <Controller:WARN> EzloController#ezlo failed (1) to restore entity room_62a66189129e29124345f791: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:09.061Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] Error: Incompatible serialization data; can't unserialize at Group.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at EzloController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new EzloController (/opt/reactor/server/lib/EzloController.js:707:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:09.128Z <Structure:INFO> Structure#1 loading controller interface groups (DynamicGroupController) [latest-23010]2023-01-20T18:11:09.146Z <DynamicGroupController:null> Module DynamicGroupController v22313 [latest-23010]2023-01-20T18:11:09.178Z <Controller:WARN> DynamicGroupController#groups failed (1) to restore entity earthquake_entities: [Error] Incompatible serialization data; can't unserialize [-] [latest-23010]2023-01-20T18:11:09.178Z <Controller:CRIT> Error: Incompatible serialization data; can't unserialize [-] Error: Incompatible serialization data; can't unserialize at Group.unserialize (/opt/reactor/server/lib/Entity.js:452:19) at /opt/reactor/server/lib/Controller.js:794:70 at Array.forEach (<anonymous>) at DynamicGroupController._restoreEntities (/opt/reactor/server/lib/Controller.js:782:36) at new Controller (/opt/reactor/server/lib/Controller.js:395:43) at new DynamicGroupController (/opt/reactor/server/lib/DynamicGroupController.js:207:9) at /opt/reactor/server/lib/Controller.js:451:37 [latest-23010]2023-01-20T18:11:09.186Z <Structure:INFO> Structure#1 loading controller interface weather (OWMWeatherController) [latest-23010]2023-01-20T18:11:09.219Z <OWMWeatherController:null> Module OWMWeatherController v22294 [latest-23010]2023-01-20T18:11:09.222Z <Structure:INFO> Structure#1 loading controller interface reactor_system (SystemController) [latest-23010]2023-01-20T18:11:09.227Z <SystemController:null> Module SystemController v22306 [latest-23010]2023-01-20T18:11:09.231Z <Structure:INFO> Structure#1 loading controller interface virtual (VirtualEntityController) [latest-23010]2023-01-20T18:11:09.238Z <VirtualEntityController:null> Module VirtualEntityController v22325 [latest-23010]2023-01-20T18:11:09.348Z <Structure:INFO> Starting controller VeraController#vera [latest-23010]2023-01-20T18:11:09.348Z <VeraController:NOTICE> VeraController#vera starting... [latest-23010]2023-01-20T18:11:09.357Z <Controller:INFO> VeraController#vera loaded vera capabilities ver 22253 rev 1 format 1 [latest-23010]2023-01-20T18:11:09.394Z <Controller:INFO> VeraController#vera loaded implementation data ver 22345 rev 1 format 1 [latest-23010]2023-01-20T18:11:09.394Z <Structure:INFO> Starting controller EzloController#ezlo [latest-23010]2023-01-20T18:11:09.397Z <Controller:INFO> EzloController#ezlo loaded ezlo capabilities ver 22266 rev 1 format 1 [latest-23010]2023-01-20T18:11:09.408Z <Controller:INFO> EzloController#ezlo loaded implementation data ver 22344 rev 1 format 1 [latest-23010]2023-01-20T18:11:09.408Z <Structure:INFO> Starting controller DynamicGroupController#groups [latest-23010]2023-01-20T18:11:09.413Z <Controller:NOTICE> Controller DynamicGroupController#groups is now online. [latest-23010]2023-01-20T18:11:09.413Z <Structure:INFO> Starting controller OWMWeatherController#weather [latest-23010]2023-01-20T18:11:09.503Z <Structure:INFO> Starting controller SystemController#reactor_system [latest-23010]2023-01-20T18:11:09.506Z <Controller:NOTICE> Controller SystemController#reactor_system is now online. [latest-23010]2023-01-20T18:11:09.537Z <Structure:INFO> Starting controller VirtualEntityController#virtual [latest-23010]2023-01-20T18:11:09.549Z <Controller:INFO> VirtualEntityController#virtual loaded virtualentity capabilities ver 22263 rev 2 format 1 [latest-23010]2023-01-20T18:11:09.550Z <Controller:INFO> VirtualEntityController#virtual loaded implementation data ver 22280 rev 1 format 1 [latest-23010]2023-01-20T18:11:09.556Z <VeraController:INFO> VeraController: deviceclass room capability sys_group does not provide attribute members [latest-23010]2023-01-20T18:11:09.556Z <VeraController:INFO> VeraController: deviceclass room capability sys_group does not provide attribute empty [latest-23010]2023-01-20T18:11:09.557Z <EzloController:INFO> EzloController#ezlo device mapping data loaded; checking... [latest-23010]2023-01-20T18:11:09.566Z <EzloController:INFO> EzloController#ezlo: connecting to hub "90000464" [latest-23010]2023-01-20T18:11:09.570Z <VirtualEntityController:INFO> VirtualEntityController#virtual configuring virtual .DefaultMode (vec01) [latest-23010]2023-01-20T18:11:09.571Z <VirtualEntityController:INFO> VirtualEntityController#virtual configuring virtual .GuestMode (vec02) [latest-23010]2023-01-20T18:11:09.571Z <VirtualEntityController:INFO> VirtualEntityController#virtual configuring virtual .PartyMode (vec03)Good afternoon. I want to connect Reactor to HA. HA is installed on Proxmox. Proxmox is installed on a Beelink U59 PRO mini PC. Studied the installation instructions ( https://reactor.toggledbits.com/docs/Installation / ) but I didn't understand how to do it (I'm a weak linux user). Help, give detailed instructions on how to install MSR.
Reactor is a cool plugin, I use it on VeraPlus, but gradually I want to switch to HA.
Thanks.
My migration from Vera to Hubitat is almost ready, only Sonos & Visonic (alarm system) remain on Vera. Hubitat has a Sonos integration, but it lacks neural voices for TTS so I've been looking for an alternative solution.
@a-lurker hinted that there's a mqtt version for Sonos so I went that route and installed Docker containers for both sonos2mqtt and sonos-tts-polly. It turned out that I won't need mqtt for this at all, and I can utilize Hubitat's integration and just use the latter container for Polly.
Did create a separate user on AWS only for TTS usage (there's an access right called "AmazonPollyReadOnlyAccess") and configured key, secret & cache in the container. Then I made the following test rule / reaction in MSR:
Screenshot 2023-01-20 at 15.32.23.png Screenshot 2023-01-20 at 15.32.38.png
So if anyone else has the same (or similar) setup, here's one way to achieve neural TTS with Sonos.
Please can anyone give me advice on a cheap way to run MSR (both initial cost and ongoing electricity cost). I currently run it on my QNAP network drive (which works very well incidentally). However, this draws a constant 35Watts (£90/yr @ 30p/kWh) and given the recent rise in fuel costs I am evaluating the best way forwards. Note, I only really need to turn my QNAP on for an hour a week to back-up my computer data. I understand that MSR can run on a Raspberry PI, but I am not competent with Linux! Thanks.
@archers Very Cool gadget. I soldered to the flash pins, which given the size of the contacts was challenging, but managed to make it work. Now waiting for my BLE sensors to arrive.
Energy Monitoring built into the dual relay!
I was seeing similar network issues and also came to the conclusion that the socket library was most likely at fault. My solution is to use Mosquitto as my main broker, which accepts all MQTT traffic (topic # in 0) with all my MQTT devices pointing to it, and then Mosquitto filters push traffic to openLuup. Below is my config file that displays the filters:
allow_anonymous true
password_file /mosquitto/data/PW.txt
listener 1883
connection openLuup
address 127.0.0.1:1882
topic tele/# out
topic stat/# out
topic BlueIris/# out
topic # in 0
cleansession false
notifications true
username *****
password *******
bridge_protocol_version mqttv311
try_private false
log_timestamp true
log_timestamp_format %Y-%m-%d--T_%H:%M:%S
As you can see, Mosquitto runs on the same server as openLuup. It is started by a docker compose file. The config filters eliminated the network errors on openLuup and my openLuup install now runs for days on end without any errors at all. I also have HA running on the same server via docker compose, though I only use it for its Hacs Alexa integration. I pipe my Alexa calls to HA using an HA token and a crude plugin that I wrote. I have not found a use for HA outside of openLuup yet, though there are some interesting integrations I will eventually try out.
As regards MQTT I don't think you need to worry about network traffic so much as mqtt is an extremely light protocol, at least in so far as compared to cameras and hi-def wireless etc ( I have a bunch of these high bandwidth devices on my network in their own subnets). I have found that the thing that tends to bog down is the lua socket function and as long as you limit its connections, you will probably alleviate most of the network problems.
Nginx is one of the best web servers available, specializing in load balancing millions of connections, and from what I've read, it is written in Lua. Which suggests that the lua socket module itself is causing the network issues as Nginx most likely rolled their own network library.
@akbooer I think I found the culprit causing the random connection disconnects to Mosquitto. The LWT payload for a given device is a simple string, which doesn't seem to decode in the json decode call. So I added the below code to send a json string to the decoder. The errors have disappeared and I now see the LWT variable in the service variables. The variable reads "LWT : Online"
--line 165
local valid = {SENSOR = true, STATE = true, RESULT = true, LWT = true}
--line 172
-- begin code
local info, err = json.decode (message)
if message then
if not info then -- json did not decode because of single string parameter
message = '{' .. '"' .. mtype .. '"' .. ':' .. '"' .. message .. '"' .. '}'
end
end
-- end code
local info, err = json.decode (message)
This is probably not the way you would handle the error, but it does work.
@akbooer Tasmota energy sensor
{
"Time": "2021-03-28T21:51:01",
"ENERGY": {
"TotalStartTime": "2020-06-07T00:10:43",
"Total": 2356.063,
"Yesterday": 7.056,
"Today": 6.459,
"Period": 24,
"Power": 285,
"ApparentPower": 302,
"ReactivePower": 99,
"Factor": 0.95,
"Voltage": 123,
"Current": 2.453
}
}
No, you can still configure UDP. You just need login credentials now.
If I have a few moments, I will try to set up one of my Pi machines this weekend with an instance of Mosquitto. My HA server that runs my docker Mosquitto is headless, and I run Ubuntu server, so command line captures of packets are just a drag. My Pi has an hdmi port so I should be able to load the gui version of wireshark, and then test/capture the traffic between the two instances. I will let you know.
@rafale77 hey Rafale,
I went down the very same road a while back and threw in towel because the polling by the MQTT plugin created CPU drags that stopped openLuup from functioning "reliably". The instability was also in part because I use two other must-have plugins that rely on polling, and I imagine that the combination of the three was creating a scenario that caused intermittent failures. And I too ended up implementing MQTT in Home Assistant and then using RealDB's virtual HTTP plugin to send commands to my WiFi devices--albeit not knowing the status of the devices in openLuup after the send.
I'm looking at RigPapa's socket proxy and WebSocket plugins to see if I can transform my polling plugins to Async. The MQTT plugin is too complex for me to convert though, so if you take a crack at it, and are successful, I would very much appreciate you publishing your results, as MQTT is becoming a must for me.
@akbooer I hate to add more to the pile... but I'm still seeing a receive error for the connection to mosquitto. openLuup 2021.04.29b
Here's the log error:
2021-05-01 14:22:38.815 openLuup.io.server:: MQTT:1882 connection closed tcp{client}: 0x5579919e9c58
2021-05-01 14:22:38.816 openLuup.mqtt:: RECEIVE ERROR: closed tcp{client}: 0x5579919e9c58
2021-05-01 14:22:43.935 luup.io.incoming:: bytes received: 51, status: OK tcp{client}: 0x557990e7f528
2021-05-01 14:22:48.435 luup.io.incoming:: bytes received: 51, status: OK tcp{client}: 0x557990e7f528
2021-05-01 14:22:49.763 luup.variable_set:: 10181.urn:micasaverde-com:serviceId:EnergyMetering1.KWHReading was: 1619904116 now: 1619904168 #hooks:0
2021-05-01 14:22:50.158 openLuup.io.server:: HTTP:3480 connection closed openLuup.server.receive closed tcp{client}: 0x557991971ff8
2021-05-01 14:22:53.834 openLuup.io.server:: MQTT:1882 connection from 127.0.0.1 tcp{client}: 0x5579920dc0b8
2021-05-01 14:22:53.834 openLuup.mqtt:: client is in ERROR empty
2021-05-01 14:22:53.834 openLuup.mqtt:: credentials is in ERROR empty
2021-05-01 14:22:53.834 openLuup.mqtt:: subscriptions is in ERROR empty
using the below error trapping in function "MQTTservlet"
local function MQTTservlet (client)
if client == nil then
_log ("client is in ERROR nil")
else
if table.concat(client) == "" then
_log ("client is in ERROR empty")
else
_log (table.concat {"MQTT ERROR: ", table.concat(client)})
end
end
if credentials == nil then
_log ("credentials is in ERROR nil")
else
if table.concat(credentials) == "" then
_log ("credentials is in ERROR empty")
else
_log (table.concat {"MQTT ERROR: ", table.concat(credentials)})
end
end
if subscriptions == nil then
_log ("subscriptions is in ERROR nil")
else
if table.concat(subscriptions) == "" then
_log ("subscriptions is in ERROR empty")
else
_log (table.concat {"MQTT ERROR: ", table.concat(subscriptions)})
end
end
return function () incoming (client, credentials, subscriptions) end
end
I can't find a deeper layer in the stack where I can trap for the incoming message to see what's in the message that is throwing the error. As near as I can tell, if openLuup tries to connect to a running mosquitto instance, then it fails to see the topics and messages, and passes empty--but not nil--strings when the servlet interface sees incoming bytes.
If I restart mosquitto, openLuup then sees the topics and messages and the error messages stop--and the connection to mosquitto remains stable.
This behavior does not occur when I aim an IOT device directly at openLuup--in that the connection to the device always resumes when openLuup reloads--in other words, I don't need to restart the IOT device to enable the connection.
@akbooer Below is the relevant output of a typical packet between mosquitto and a mosquitto bridged instance. In this case, mosquitto is sending update data to the bridge regarding a tasmota device/switch I use to remotely reboot my Vera. The format is definitely MQTT 3.1 and not 5.0, as 5.0 would not parse correctly in the wireshark viewer. The data payload is at the top of the window as Wireshark will truncate long messages. I can PM you the entire capture as it's not much, but may contain technical info that's best kept private. Let me know.
I'll try to capture some traffic between openLuup and mosquitto later.
{"Version":"9.1.0(tasmota)","BuildDateTime":"2020-11-07T11:57:45","Module or Template":"Gosund-WP5","RestartReason":"Software/System restart","Uptime":"6T05:50:22","Hostname":"power_MainVera-0278","IPAddress":"10.17.2.33","RSSI":"100","Signal (dBm)":"-17","WiFi LinkCount":5,"WiFi Downtime":"0T00:00:10","MqttCount":14,"LoadAvg":19}
Frame 9: 433 bytes on wire (3464 bits), 433 bytes captured (3464 bits) on interface eth0, id 0
Ethernet II, Src: Advansus_0a:8c:3a (00:19:0f:0a:8c:3a), Dst: 96:62:08:fb:22:8a (96:62:08:fb:22:8a)
Internet Protocol Version 4, Src: 10.17.2.41, Dst: 10.17.2.110
Transmission Control Protocol, Src Port: 40664, Dst Port: 1882, Seq: 3, Ack: 3, Len: 367
MQ Telemetry Transport Protocol, Publish Message
Header Flags: 0x30, Message Type: Publish Message, QoS Level: At most once delivery (Fire and Forget)
0011 .... = Message Type: Publish Message (3)
.... 0... = DUP Flag: Not set
.... .00. = QoS Level: At most once delivery (Fire and Forget) (0)
.... ...0 = Retain: Not set
Msg Len: 364
Topic Length: 30
Topic: tele/power_MainVera/HASS_STATE
Message [truncated--see above]: {"Version":"9.1.0(tasmota)","BuildDateTime":"2020-11-07T11:57:45","Module or Template":"Gosund-WP5","RestartReason":"Software/System restart","Uptime":"6T05:50:22","Hostname":"power_MainVera-0278","IPAddress":"10.17.2
@buxton In the above, I'm seeing an extra closing right hand bracket in the JSON string.
I've been waiting for something like this. Very cool. Thx for the post
@toggledbits @akbooer Sorry, I will try to be clearer.
" I don't know what "assigning the luup log function to a table" means"
In many of Patrick's plugins, he uses a global lua table to hold plugin data and functions. He assigns shorthand names that call common luup functions, then stores those truncated names in the table. Then the first class functions are called from the table. I believe it is this abstraction that is contributing to log entries that show nil values, as direct calls of "luup.log" do not show nil values. The technique should work in openluup, and most often it does, but sometimes it doesn't.
Here's an example from the log where it does not work:
2022-01-15 14:13:12.551 luup.variable_set:: 258.urn:micasaverde-com:serviceId:HaDevice1.CommFailure was: 0 now: 0 #hooks:0
2022-01-15 14:13:12.551 luup.variable_set:: 258.urn:micasaverde-com:serviceId:HaDevice1.CommFailureTime was: 0 now: 0 #hooks:0
2022-01-15 14:13:12.551 luup_log:149: Reactor: Starting nil (#nil)
2022-01-15 14:13:12.551 luup.variable_set:: 149.urn:toggledbits-com:serviceId:Reactor.Message was: Starting Unused1 now: Starting Basic Functions #hooks:0
2022-01-15 14:13:12.552 luup.variable_set:: 265.urn:toggledbits-com:serviceId:ReactorSensor.Invert was: nil now: #hooks:0
2022-01-15 14:13:12.552 luup.variable_set:: 265.urn:toggledbits-com:serviceId:ReactorSensor.Invert was: now: nil #hooks:0
In the log entry "luup_log:149: Reactor: Starting nil (#nil)" the text of the log entry is there "Reactor: Starting", but the variable following the text is nil. This is what I meant by "picking up on variables". The log entries are being displayed, but anything that is a variable is showing as nil. The variables themselves are not actually nil because I can see from program execution that they are doing the job that they're supposed to be doing. It is only in the log entries that they show as nil, at least insofar as what is visible to me.
As for using nil to delete a variable, that seems to be understood and is separate from the log problem.
I believe that this is a scope problem, thus the title of the post. But I don't believe this is a reactor scope problem in that the same issue does not occur on the Vera itself. So for whatever reason, in openLuup, the scope of the variable being displayed in the log is different from the scope of the log function--that the value of the variable is somehow hidden from the function.
This is a problem as it relates to the readability of the log, an annoyance more than anything, so I have no expectations to have it fixed. In my original screenshots, you can see multiple log entries that display as nil, so that's why I brought this to your attention as I felt that if there are scope issues at work with the logging function, then it could be happening elsewhere as well.
The only other thing that I would add is that in my startup lua, I call a module in the _G space so that I can access functions in the lua section of Reactor activities. My call is _G.myStartUpLua = require("myStartUpLua") I don't believe that this should have an effect on the log, but perhaps it does.
@therealdb Yes, that's where I'm headed too. Agreed that Hass is very stable. It's just that there are real structural changes being made all the time, and before I sink my time into learning the details of the software, I want to be sure that pretty much everything is final in the engine.
@toggledbits Yes, I think that's a large part of the problem as I'm seeing the same behavior with deleted groups in various sensors. The sensor groups flop between nil and empty in the attempt of trying to delete the variable.
There seems to be a separate issue of the openLuup log not picking up on variables for your various plugins log entries.
I'm guessing this has to do with assigning the luup log function to a table and then calling a truncated name ie L(...) when writing to the log. So there is some scope issue going on that is different on openLuup from that of a Vera, brought about by a level of abstraction.
@therealdb Well that's a shame. One more nail in the coffin. I'll probably move to HA as soon as the various versions of the software are consolidated. It's a great platform, but for my needs, it is still too subject to breaking structural changes.
@toggledbits OK. Does that mean that the log entries as shown above are expected ie. that the flopping (from nil to empty and back again) for reactor expression variables is routine?
@akbooer Yes, I tried browser refresh without any change. If you look at the log, you see the variables flopping from nil to empty and then back again to nil.
@therealdb are you seeing anything like this in your openLuup reactor installation? I'm only seeing this nil behavior with Reactor expression variables.
Hi Patrick/AK Booer
I am able to see Reactor expressions in the AltUI UI per the below and the expressions work as they should in my reactor sensors. When an expression changes, the reactor sensor responds accordingly.
However, I cannot see the expressions in luup state variables or the luup logs:
I tried reinstalling openLuup (latest development) and when that failed to change the noted behavior, I reinstalled lua5.1. There was also no change. Rebooting the machine also produced no change.
I suspect this is an openLuup issue as I also see nil values for some plugins:
And other plugins are fine:
2022-01-12 20:47:12.027 luup.variable_set:: 63.urn:upnp-micasaverde-com:serviceId:Weather1.CurrentDewPoint was: 32 now: 29.7 #hooks:0
2022-01-12 20:47:12.028 luup.variable_set:: 63.urn:upnp-micasaverde-com:serviceId:Weather1.WindSpeed was: 1.76 now: 2.8 #hooks:0
2022-01-12 20:47:12.028 luup.variable_set:: 63.urn:micasaverde-com:serviceId:HumiditySensor1.CurrentLevel was: 30 now: 27 #hooks:0
2022-01-12 20:47:12.028 luup.variable_set:: 65.urn:micasaverde-com:serviceId:HumiditySensor1.CurrentLevel was: 30 now: 27 #hooks:0
2022-01-12 20:47:12.028 luup.variable_set:: 63.urn:upnp-micasaverde-com:serviceId:Weather1.LastUpdate was: 1642047430 now: 1642049231 #hooks:0
Any ideas on how to troubleshoot this.....
@buxton Yeah, running lua within the Reactor plugin/MSR is an incredibly powerful feature that, combined with expressions, pretty much allows you to do whatever you want to do. A wonderful piece of software.
Now I need to figure out how to construct the closure that will surround the watch callback function. Tricky, because there are so many variables that go into deciding when the routine should branch, and when branching should be avoided.
@akbooer OK thanks, that's what I needed to know.
One final question if you could. How does scope affect a watch called from start-up lua? I'm asking because I imagine the scope for a watch is plugin specific, and therefore is confined to the plugin.
The watch will be created in the initialization code of a global module, that is in turn referenced in start-up lua ie. "_G.myStartUpLua = require("myStartUpLua") "
This module contains functions that are called from Reactor activities similar to this:
Will the global watch callback function be visible to the watch if both are created within "myStartUpLua".