Have you seen this post?
https://smarthome.community/topic/1525/forum-sysops/4?_=1713755285910
Or is this in addition to the above?
I need a handful of victims volunteers to help test previews of the next build of Reactor. A long-standing request was for "a simple login mechanism," but in practice, adding user authentication and competent access control turned out to be a pretty big project with a lot of big changes on both server and client sides. It's a bit more than I'm comfortable testing myself and springing out to everyone at once, so I'd like to work with a small group to put it through "sea trials."
Major changes/features include:
User authentication with hashed password storage; User group configuration with application restriction (admin, dashboard, API); Detailed control over API access, with user- and token-based authentication/authorization; Improvements to the HTTPS service; Improvements to UI coordination with the core for Rules and Reactions.If this sounds like something you'd like to help with, drop me a reply here in this thread or privately.
Good morning,
So Home Assistant decided to change the default weather home format that I've been using for the past year and a half. I had two Global Expressions set up to pull the high and low temp forecast for the day. Now it's pulling null values.
094c9205-cc9e-4fcc-ac4f-1bf54acea299-image.png
In the dev tools, it now uses a new service (Weather. get forecasts), plural, where the old Weather.get forecast is depreciated and now longer functions.
8c7a1fcc-dd3f-4268-a0b7-29d542f86adc-image.png
It shows a templow field, and a temperature field, which I presume is the forecast high.
When I head back over to MSR, I'm having a hard time finding those values in the Entities tab.
c5ea1048-a72e-4647-9c50-9d0c5fd20767-image.png
wx.asoftime=null wx.ceiling=null wx.ceiling_unit=null wx.cloud_cover=null wx.condition_code=null wx.description="partlycloudy" wx.feels_like=null wx.humidity=57 wx.humidity_unit="%" wx.icon=null wx.location=null wx.precipitation_1hr=null wx.precipitation_24hr=null wx.precipitation_other=null wx.precipitation_type=null wx.precipitation_unit="in" wx.pressure=30 wx.pressure_unit="inHg" wx.temperature=55 wx.temperature_unit="°F" wx.visibility=null wx.visibility_unit="mi" wx.wind_compass=210.3 wx.wind_conditions=null wx.wind_direction="SSW" wx.wind_gust=null wx.wind_speed=6.28 wx.wind_speed_unit="mph" x_hass.domain="weather" x_hass.entity_id="weather.forecast_home" x_hass.services=["weather"] x_hass.state="partlycloudy" x_hass_attr.attribution="Weather forecast from met.no, delivered by the Norwegian Meteorological Institute." x_hass_attr.cloud_coverage=85.9 x_hass_attr.dew_point=40 x_hass_attr.friendly_name="New Windsor Weather" x_hass_attr.humidity=57 x_hass_attr.precipitation_unit="in" x_hass_attr.pressure=30 x_hass_attr.pressure_unit="inHg" x_hass_attr.supported_features=3 x_hass_attr.temperature=55 x_hass_attr.temperature_unit="°F" x_hass_attr.visibility_unit="mi" x_hass_attr.wind_bearing=210.3 x_hass_attr.wind_speed=6.28 x_hass_attr.wind_speed_unit="mph"There is a x_hass_attr.temperature, but that appears to be the current temperature, not the high that I found on the dev tools screenshot.
Any ideas?
Running:
Core
2024.4.3
Supervisor
2024.04.0
Operating System
12.2
Frontend
20240404.2
MSR: latest-24057-e9add9f5
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.@DesT I think I mentioned this some time ago, but Chat in this software seems broken. I normally use Brave browser, but it's same for Chrome. Haven't tried others.
Someone is trying to contact me via chat. I can see that here:
4a8a5332-2f25-476b-a9c9-decffb6a9c01-image.png
When I click on that message, or any message in this list, the header and navigation left/right of the side go away, and I get a page that looks like this:
f69b117b-8ac9-446b-8487-6d586b24ea29-image.png
It has no messages in it, not even the message that I can see the preview for in the previous image. Nothing I do from here seems to bring up any conversations. The user who messaged me isn't listed on the left. And if I click on any of the messages in the list on the left, nothing major happens: the tab title changes and the message in the left list I click on is highlighted gray, but no conversation is displayed and the middle of page stays blank except for the input area, it doesn't even display the full text of the message I clicked on. Since there's no navigation on the page, the only way I can leave this page is to use the back button or re-enter the URL in the location bar to start over.
Maybe I'm committing some kind of ID 10T error, but it's not obvious to me what it is. Just seems... not working.
Hey Patrick, I recently have been noticing that MSR has been acting up ie. it's been needing restarts and has been slow. I began trouble shooting by looking at the logs and have noticed the following errors for a lot of entities. I thought maybe a simple reboot of RPi was needed and I kept seeing the same errors in the system logs. I am oddly enough not seeing these same errors in the MSR logs. Where things started getting weird is whenever I rebooted MSR it wouldn't come back online .I would have to restart the RPi then it would come back online. I just restarted MSR again to capture logs and it restarted fine, so I guess its good for now? I think this is more or so a corrupted SD card issue rather a MSR issue but well being troubleshooting from here. The SD card is about 1-2 years old.
Apologies if this post is everywhere, I cannot consistently recreate any oddities that are happening, that's what is leading me to believe my SD is going bad.
PS: If anyone knows how to diagnose a corrupt SD card please chime in.
MSR latest-24057-e9add9f5
Home Assistant 2024.4.3
Raspberry Pi 3b+
Feedback / solutions with openLuup's built-in Shelly bridge.
Been using zigbee2mqtt and openLuup for sometime now and it is working well.
I attempted to add another Hue switch to-day. It's a newer version of the other ones I have been using so far. They are pretty much identical.
The older ones installed no problem (which is weird), but the new one won't. Looking at the code, it looks this function in L_Zigbee2MQTTBridge.lua:
configure_scene_controller(dno)is not being passed the parameter "dno" when the function is called. The device is created but is incomplete.
Just out of interest how do you pretty print to the log from within say L_Zigbee2MQTTBridge.lua? I tried a few incarnations such a:
local pretty = openLuup.loader.shared_environment.prettybut they all failed.
A list of openLuup releases including the latest developments…
master – stable, and infrequently updated, development – latest updates and bug fixes, testing – use only when advised!A long while ago (May, 2015) I wrote my 2000-th post on another forum: openLuup - running unmodified plugins on any machine.
Now rehosted at https://community.ezlo.com/t/openluup-running-unmodified-plugins-on-any-machine/187412
Here’s the gist of it:
...I want to work in a more open and stable [Vera] environment...
...All would be solved if Luup was open source and could be run on the plethora of cheap and reliable hardware available today. But it’s not. But we could get something like that effect if we engineered a sufficient subset of Luup to run on such a platform. Could it be done? What would we need?
1. UI
2. scheduler
3. web server
4. Luup compatible API
5. Device and Implementation xml file reader
6. Zwave bridge to Vera
7. runs most plugins without modification
What we wouldn’t need is UPnP.
What have we (nearly) got already?
We have, courtesy of @amg0, the most excellent AltUI: Alternate UI to UI7, and that, I think, is probably the hardest one to do in the above list. Items 2 - 5, and 7, I’ve prototyped, in pure Lua, and posted elsewhere: DataYours on Raspberry Pi, running selected plugins unmodified, including: DataYours, EventWatcher, Netatmo, RBLuaTest, altUI. See screenshot attached.Is it worth the effort? Probably not. Will I pursue this quest? Yes.
openLuup was the result.
This system has been running flawlessly year after year for the time changes twice a year literally since MSR came out so I was caught off-guard when this happened this morning.
Time in MSR browser is EST, time on RPi is local time (DST).
76ed5313-b9b9-46d4-b0f9-462c40e99750-image.png
195e61c5-58a7-4453-b96a-18cebae75550-image.png
I've rebooted the RPi I've restarted MSR after double-checking the time on the RPi. Used a completely different browser to eliminate any caching concerns. Double-checked MSR reactor.yamla5f23151-d691-4343-8499-8e77a55528e5-image.png
What am I missing here @toggledbits ?
Hello,
I had an iCOMEN boiler switch that worked for many years. And I used iCOMEN app on my phone to manage it. Short time ago app started to have an error message that it cannot connect to the server, and after some time the device also stopped working.
With their awesome new X10 switch!
dbe7408f-dc86-4932-bf71-f0528f5384c1-image.png
I'm hopping in my 1980s time machine to go see whether this is exactly what I think it is. 🙂
(Srsly, tho, I love(d) X10 and did everything humanly possible to keep that old equipment perking along with Vera, and almost succeeded.)
LibraP.S. Just got banned for the 9th time from Hubitat Forum, so had a little extra time to throw shade.
P.P.S. The boilerplate 5-star reviews for this brand-new product come from bots with names like Avery, Phoenix and Owen (two from Mateo!). Sheesh.
Hi,
For the standard capabilities MSR sends both a value record and a units record to InfluxDB. The latter I would like not to send as they are not really any use for me and it will reduce the number of records send to my InfluxDB.
Is there a quick way to do this with a filter_entities line like: *>units?
Or do I have to update all capabilities to read like this:
power_sensor:
attributes:
value: true
Cheers Rene
I'm trying to replicate this
wallbox_set_number.PNG
into a MQTT entity where I could set a number with a min and max value.
I can't find a standard capability that fits or any documentation on local MQTT capabilities and the only post on the forum mentioning local MQTT capabilities is this post, is it even possible in current release?
My trial and error work in local_mqtt_capabilities.yaml isn't much to show as it's just a copy of mqtt_capabilities.yaml with changed names and then I got stuck.
Any guidance, examples, documentation, future feature request or denial would be much appreciated, thanks!
Reactor 24057-e9add9f5 bare metal
MQTTController 24050
Hoping you could tell us a bit about your experiences with ZWaveJS and MQTT.
Hi guys,
I've recently bought a new Govee outdoor permanent lights set, and I love it. WAF is pretty high, and the product is good quality. I hope to never run lights in the front of the house.
This new addition has found me searching for something to control these lights, locally. Govee has officials remote and LAN APIs and Home Assistant has it supported, but some undocumented stuff that's integrated into an Homebridge plugin that seems very promising. Without this plugin, my playlist is orchestrated via the cloud and that makes zero sense.
In the past I got some inspiration from plugins running on other platforms and Homebridge seems one of the most active. I could map its devices via HomeKit-local on HA, but I've decommissioned Homebridge years ago when we settled to Alexa (and I want to stay simple), so I had an idea: why get inspiration and rewrite things, when you could write an Homebridge adapter that could load any Homebridge plugin and run them natively under Reactor (MSR)?
I'm not sure if that's viable or made any sense, so I'm posting here to get feedback, encouragement and your thoughts. Anyone could be potentially interested in such a thing?
Hi- looking for a hint in where to start. My goal is to set a PIN code in a zwave kwikset lock triggered in a rule.
The device isn’t exposing methods to help. The x-hass.call-service looks promising, but what would the service name be?
Plan b would be send the zwave controller a config command- I don’t see any way to explicitly send a command through JS Zwave in my environment.
Running reactor bare metal. JS Zwave is running as an add on inside HASS OS.
Any tips are appreciated.
Originally I was using Futzle's UPnP event proxy plugin on Vera with the Sonos plugin. Worked very well.
On making the move to openLuup, one finds that the proxy can't be used because the proxy daemon start and stop, etc uses a script installed by the plugin that only works on openWRT, as used by Vera.
The Sonos plugin still works without the proxy but it reverts to polling. It becomes a bit on the sluggish side and sometimes doesn't function quite as intended.
I've modified the proxy plugin to install a script that runs as a systemd service. systemd can be found on a lot of contemporary Linux installs, including Raspberry Pis. To make use of; just install the plugin from the AltUI app store and restart the Luup engine a couple of times. The dashboard should indicate "Status: Proxy running".
Note that the service file expects "L_UPnPProxyDaemon.lua" to be located at the typical plugin files location:
/etc/cmh-ludl/After the plugin is installed, the service file should be found in:
/etc/systemd/system/as UPnPProxy.service.
If you use the Sonos plugin, you need to change the variable "UseProxy" to "1" and restart the LuupEngine. In the Sonos parent device, you should see: "Running x zones; proxy detected".
Updated doco here.
Hope it works - YMMV.
Hey crew, I'm trying to use MSR to control the RGB values of a Z-Wave bulb in Home Assistant.
Problem I'm running into - I would like to use 'rgb_color.set' to control this, but it doesn't work, instead it always passes the values '255,255,255' to HA no matter what values I enter within MSR.
More notes and examples below - I'm wondering if this is a formatting issue that I'm missing? Thanks for any help!
NOTES FROM TROUBLESHOOTING:
'rgb_color.set_rgb' works successfully, which seems strange. You'd think they would both be affected I've tried a couple different formats, like adding quotes, adding/removing spaces between the RGB values, nothing has fixed it.EXAMPLES:
When I use 'rgb_color.set_rgb', the values successfully carry over to Home Assistant:
f0f4befc-a642-428e-8923-e5f856ca7e2b-image.png
0af0a4f8-50b9-4100-b1e8-52a0de4cbcbb-image.png
But when I use 'rgb_color.set', the values DO NOT successfully carry over to Home Assistant:
9e2d7004-8085-4b70-bb3e-45614b7260a0-image.png 0d630228-c74b-4db8-89bd-2572a08608a3-image.png
DETAILS:
Bulb is LZW42 by Inovelli MSR version: stable-23242-5ee8e1d4HA DETAILS
Core 2024.2.5 Supervisor 2024.02.1 Operating System 12.0Some of you may know that I took at shot at building an alternate geofencing solution for Vera. The core of it was system agnostic, using the OwnTracks application and AWS lambdas to track devices and keep a central data, then disseminate that to the Vera via a websocket-based plugin. It worked with other apps as well, including Tasker and GPSLogger, but of the dozen people that were testing it, most used OwnTracks.
A lot was learned in the process, not the least of which is that the success of any such solution is highly dependent on the phone and its settings. Phone manufacturers love to set things up for the longest battery life, of course, but that's usually very anti-geofencing behavior. In the case of at least one brand, it was unusable and the settings could not be modified. It was also cost-prohibitive to maintain on Amazon, as AWS grabs a dime here and a dollar there and before you know it, it added $100/month to my AWS bill, which my wife deducted from my Scotch budget. Unacceptable.
But it's quite reasonable to use OwnTracks to a local endpoint, and I could pretty easily replicate the functionality as a local application, or maybe even as an additional endpoint built into MSR's API (still separate port and process, but in the package).
So the question really is... would you do it, or would you be too concerned about the security risks associated (e.g., dynamic DNS and NAT mapping in the firewall necessary for the phone to contact the service when not on LAN)?
Have you seen this post?
https://smarthome.community/topic/1525/forum-sysops/4?_=1713755285910
Or is this in addition to the above?
Had a look at the latest development code. Got this:
2024-04-20 18:51:28.519 openLuup.userdata:: [9111] LuaView (GitHub.master)
2024-04-20 18:51:28.519 openLuup.userdata:: [9281] Virtual HTTP Devices (GitHub.master)
2024-04-20 18:51:28.519 openLuup.userdata:: [4226] Sonos (GitHub.v2.0)
2024-04-20 18:51:28.519 openLuup.userdata:: ...user_data loading completed
2024-04-20 18:51:28.519 openLuup.init:: running _openLuup_STARTUP_
2024-04-20 18:51:28.525 scheduler.context_switch:: ERROR: [dev #0] ./openLuup/luup.lua:1103: attempt to index field '?' (a nil value)
2024-04-20 18:51:28.525 openLuup.init:: ERROR: ./openLuup/luup.lua:1103: attempt to index field '?' (a nil value)
2024-04-20 18:51:28.525 openLuup.init:: init phase completed
Had to get the house back up and running, so we could watch the TVeee.
Commented out some code:
local function log (msg, level)
local dno = scheduler.current_device()
-- local mute = devices[dno].attributes.log_level -- 2024.04.12 add "log_level" device attribute
local mute = "something"
if mute ~= "off" then
logs.send (msg, level, dno)
end
end
Could look further but had to get the house back up and running, so we could watch the TVeee. So best I can do currently!
Yes my rookie mistake. Mixed up the function's variables being returned versus the function itself being returned. Was on the right track as "configure (dno) has fixed the issue. Thanks.
Doco corrected.
Any news on the above post ie?
"not being passed the parameter "dno" when the function is called"
Lots of work done refactoring things - should "Eclipse" the older versions. Code still working here - thank you.
I tried out the new update: "Development Branch: 2024 Release 4.5". Nothing too badly broken so that's good. I notice the H&T devices now have new variable names ie humidity/0/rh and temperature/0/tC, etc. These no longer show up in AltUI or console at Home-->Devices. Likewise with the 3em pro: em/0/a_voltage, etc
No doubt a work in progress but the forward slashes are a bit problematic eg they can't be part of a whisper filename.
Just to complicate things: in addition to the 3em pro - I've got a shelly pro em 50 turning up in the mail.
Using them as RGBW at the moment. But I can see them also being used just as white strips. Whether that would be four strips - don't think so. One strip would be enough at each location for my needs.
It's surprising how much current they can run through the device given its size.
Mmm - I thought that's what I tried?
I've got a few RGBW2s. See you have been working on this one. If I can help in any way, let me know.
Been using zigbee2mqtt and openLuup for sometime now and it is working well.
I attempted to add another Hue switch to-day. It's a newer version of the other ones I have been using so far. They are pretty much identical.
The older ones installed no problem (which is weird), but the new one won't. Looking at the code, it looks this function in L_Zigbee2MQTTBridge.lua:
configure_scene_controller(dno)
is not being passed the parameter "dno" when the function is called. The device is created but is incomplete.
Just out of interest how do you pretty print to the log from within say L_Zigbee2MQTTBridge.lua? I tried a few incarnations such a:
local pretty = openLuup.loader.shared_environment.pretty
but they all failed.
"I hadn't appreciated that the Pro devices don't identify as "shellyplus" and I can fix that." Works OK now. All the DIN rail mounted devices are "shellyproXYZ".
Using the default prefix "shellypro3em" I now get these variables. Previously there were none. See below. For the attributes I get firmware version, model number, MAC address but no IP address.
em/0/a_act_power 0
em/0/a_aprt_power 0
em/0/a_current 0.028
em/0/a_freq 0
em/0/a_pf 0
em/0/a_voltage 0
em/0/b_act_power 0
em/0/b_aprt_power 0
em/0/b_current 0.027
em/0/b_freq 0
em/0/b_pf 0
em/0/b_voltage 0
em/0/c_act_power 0
em/0/c_aprt_power 6.4
em/0/c_current 0.027
em/0/c_freq 50
em/0/c_pf 0
em/0/c_voltage 236.6
em/0/id 0
em/0/total_act_power 0
em/0/total_aprt_power 6.409
em/0/total_current 0.082
em/0/user_calibrated_phase []
emdata/0/a_total_act_energy 0.06
emdata/0/a_total_act_ret_energy 0
emdata/0/b_total_act_energy 0.06
emdata/0/b_total_act_ret_energy 0
emdata/0/c_total_act_energy 0.12
emdata/0/c_total_act_ret_energy 0.38
emdata/0/id 0
emdata/0/total_act 0.24
emdata/0/total_act_ret 0.38
temperature/0/id 0
temperature/0/tC 46.7
temperature/0/tF 116
Note the device does not have the current clamps connected around anything. ie it's just powered up.
"not to change the default device MQTT prefix". I always leave things at default if possible. This was just for test purposes. Below is the resulting log of the device being created with a few edits. Note that "shellypro3em" was temporarily replaced with "shellypluspro3em" in order to get some action:
2024-03-28 13:09:35.516 openLuup.io.server:: MQTT:1883 connection closed tcp{client}: 0x558f264ee8
2024-03-28 13:09:35.546 openLuup.mqtt:: shellypluspro3em-MAC_address_redacted UNSUBSCRIBE from ALL tcp{client}: 0x558f264ee8
2024-03-28 13:09:38.357 openLuup.io.server:: MQTT:1883 connection from Shelly_IP_redacted tcp{client}: 0x5590804a28
2024-03-28 13:09:38.392 openLuup.mqtt:: shellypro3em-MAC_address_redacted SUBSCRIBE to shellypluspro3em-MAC_address_redacted/rpc tcp{client}: 0x5590804a28
2024-03-28 13:09:38.410 openLuup.mqtt:: shellypro3em-MAC_address_redacted SUBSCRIBE to shellypluspro3em-MAC_address_redacted/command/sys tcp{client}: 0x5590804a28
2024-03-28 13:09:38.413 openLuup.mqtt:: shellypro3em-MAC_address_redacted SUBSCRIBE to shellypluspro3em-MAC_address_redacted/command tcp{client}: 0x5590804a28
2024-03-28 13:09:38.425 openLuup.mqtt:: shellypro3em-MAC_address_redacted SUBSCRIBE to shellies/command tcp{client}: 0x5590804a28
2024-03-28 13:09:38.427 luup.shelly:207: ShellyPlus: shellypluspro3em-MAC_address_redacted/online true
2024-03-28 13:09:38.427 luup.register_handler:: global_function_name=Shelly_Plus_Handler, request=mqtt:shellypluspro3em-MAC_address_redacted/#
2024-03-28 13:09:38.429 luup.shelly:207: ShellyPlus: shellypluspro3em-MAC_address_redacted/rpc {
"id":"0x55902bb480",
"method":"Shelly.GetConfig",
"src":"shelly-gen2-cmd"
}
2024-03-28 13:09:38.432 luup.shelly:207: ShellyPlus: shellypluspro3em-MAC_address_redacted/status/ble {}
2024-03-28 13:09:38.460 luup.shelly:207: ShellyPlus: shellypluspro3em-MAC_address_redacted/status/cloud {"connected":false}
2024-03-28 13:09:38.463 luup.shelly:207: ShellyPlus: shellypluspro3em-MAC_address_redacted/status/em:0 {
"id": 0,
"a_current": 0.115,
"a_voltage": 0,
"a_act_power": 0,
"a_aprt_power": 0,
"a_pf": 0,
"a_freq": 0,
"b_current": 0.109,
"b_voltage": 0,
"b_act_power": 0,
"b_aprt_power": 0,
"b_pf": 0,
"b_freq": 0,
"c_current": 0.104,
"c_voltage": 239.7,
"c_act_power": 0,
"c_aprt_power": 25.2,
"c_pf": 0,
"c_freq": 50,
"n_current": null,
"total_current": 0.328,
"total_act_power": 0,
"total_aprt_power": 25.234,
"user_calibrated_phase": []
}
2024-03-28 13:09:38.466 luup.shelly:207: ShellyPlus: shellypluspro3em-MAC_address_redacted/status/emdata:0 {
"id": 0,
"a_total_act_energy": 0.04,
"a_total_act_ret_energy": 0,
"b_total_act_energy": 0.05,
"b_total_act_ret_energy": 0,
"c_total_act_energy": 0.07,
"c_total_act_ret_energy": 0.2,
"total_act": 0.16,
"total_act_ret": 0.2
}
2024-03-28 13:09:38.468 luup.shelly:207: ShellyPlus: shellypluspro3em-MAC_address_redacted/status/eth {"ip":null}
2024-03-28 13:09:38.470 luup.shelly:207: ShellyPlus: shellypluspro3em-MAC_address_redacted/status/modbus {}
2024-03-28 13:09:38.475 luup.shelly:207: ShellyPlus: shellypluspro3em-MAC_address_redacted/status/mqtt {"connected":true}
2024-03-28 13:09:38.477 luup.shelly:207: ShellyPlus: shellypluspro3em-MAC_address_redacted/status/sys {
"mac": "MAC_address_redacted",
"restart_required": false,
"time": "13:09",
"unixtime": 1711591778,
"uptime": 1,
"ram_size": 240520,
"ram_free": 121936,
"fs_size": 524288,
"fs_free": 192512,
"cfg_rev": 11,
"kvs_rev": 0,
"schedule_rev": 0,
"webhook_rev": 0,
"available_updates": {},
"reset_reason": 3
}
2024-03-28 13:09:38.479 luup.shelly:207: ShellyPlus: shellypluspro3em-MAC_address_redacted/status/temperature:0 {
"id": 0,
"tC": 47.7,
"tF": 117.8
}
2024-03-28 13:09:38.482 luup.shelly:207: ShellyPlus: shellypluspro3em-MAC_address_redacted/status/wifi {"sta_ip":"Shelly_IP_redacted","status":"got ip","ssid":"SID_redacted","rssi":-62}
2024-03-28 13:09:38.484 luup.shelly:207: ShellyPlus: shellypluspro3em-MAC_address_redacted/status/ws {"connected":false}
2024-03-28 13:09:38.487 luup.shelly:207: ShellyPlus: shellypluspro3em-MAC_address_redacted/status/mqtt {"connected":true}
2024-03-28 13:09:38.490 luup.shelly:207: ShellyPlus: shellypluspro3em-MAC_address_redacted/events/rpc {
"src": "shellypro3em-MAC_address_redacted",
"dst": "shellypluspro3em-MAC_address_redacted/events",
"method": "NotifyFullStatus",
"params": {
"ts": 1711591778.07,
"ble": {},
"cloud": {
"connected": false
},
"em:0": {
"id": 0,
"a_current": 0.115,
"a_voltage": 0,
"a_act_power": 0,
"a_aprt_power": 0,
"a_pf": 0,
"a_freq": 0,
"b_current": 0.109,
"b_voltage": 0,
"b_act_power": 0,
"b_aprt_power": 0,
"b_pf": 0,
"b_freq": 0,
"c_current": 0.104,
"c_voltage": 239.7,
"c_act_power": 0,
"c_aprt_power": 25.2,
"c_pf": 0,
"c_freq": 50,
"n_current": null,
"total_current": 0.328,
"total_act_power": 0,
"total_aprt_power": 25.234,
"user_calibrated_phase": []
},
"emdata:0": {
"id": 0,
"a_total_act_energy": 0.04,
"a_total_act_ret_energy": 0,
"b_total_act_energy": 0.05,
"b_total_act_ret_energy": 0,
"c_total_act_energy": 0.07,
"c_total_act_ret_energy": 0.2,
"total_act": 0.16,
"total_act_ret": 0.2
},
"eth": {
"ip": null
},
"modbus": {},
"mqtt": {
"connected": true
},
"sys": {
"mac": "MAC_address_redacted",
"restart_required": false,
"time": "13:09",
"unixtime": 1711591778,
"uptime": 1,
"ram_size": 240596,
"ram_free": 123484,
"fs_size": 524288,
"fs_free": 192512,
"cfg_rev": 11,
"kvs_rev": 0,
"schedule_rev": 0,
"webhook_rev": 0,
"available_updates": {},
"reset_reason": 3
},
"temperature:0": {
"id": 0,
"tC": 47.7,
"tF": 117.8
},
"wifi": {
"sta_ip": "Shelly_IP_redacted",
"status": "got ip",
"ssid": "SID_redacted",
"rssi": -62
},
"ws": {
"connected": false
}
}
}
2024-03-28 13:09:38.493 luup.shelly:207: ShellyPlus: shellypluspro3em-MAC_address_redacted/events/rpc
{
"src": "shellypro3em-MAC_address_redacted",
"dst": "shellypluspro3em-MAC_address_redacted/events",
"method": "NotifyStatus",
"params": {
"ts": 1711591778.07,
"mqtt": {
"connected": true
}
}
}
2024-03-28 13:09:38.539 luup.shelly:207: ShellyGen2: shelly-gen2-cmd/rpc {
"id": "0x55902bb480",
"src": "shellypro3em-MAC_address_redacted",
"dst": "shelly-gen2-cmd",
"result": {
"ble": {
"enable": false,
"rpc": {
"enable": false
},
"observer": {
"enable": false
}
},
"cloud": {
"enable": false,
"server": "iot.shelly.cloud:6012/jrpc"
},
"em:0": {
"id": 0,
"name": null,
"blink_mode_selector": "active_energy",
"phase_selector": "all",
"monitor_phase_sequence": false,
"reverse": {}
},
"emdata:0": {},
"eth": {
"enable": true,
"ipv4mode": "dhcp",
"ip": null,
"netmask": null,
"gw": null,
"nameserver": null
},
"modbus": {
"enable": false
},
"mqtt": {
"enable": true,
"server": "server_IP_address_redacted:1883",
"client_id": "shellypro3em-MAC_address_redacted",
"user": null,
"ssl_ca": null,
"topic_prefix": "shellypluspro3em-MAC_address_redacted",
"rpc_ntf": true,
"status_ntf": true,
"use_client_cert": false,
"enable_rpc": true,
"enable_control": true
},
"sys": {
"device": {
"name": null,
"mac": "MAC_address_redacted",
"fw_id": "20240223-141900/1.2.2-g7c39781",
"discoverable": true,
"eco_mode": false,
"profile": "triphase",
"addon_type": null
},
"location": {
"tz": "redacted",
"lat": redacted,
"lon": redacted
},
"debug": {
"level": 2,
"file_level": null,
"mqtt": {
"enable": false
},
"websocket": {
"enable": false
},
"udp": {
"addr": null
}
},
"ui_data": {},
"rpc_udp": {
"dst_addr": null,
"listen_port": null
},
"sntp": {
"server": "time.google.com"
},
"cfg_rev": 11
},
"temperature:0": {
"id": 0,
"name": null,
"report_thr_C": 5,
"offset_C": 0
},
"wifi": {
"ap": {
"ssid": "ShellyPro3EM-MAC_address_redacted",
"is_open": true,
"enable": false,
"range_extender": {
"enable": false
}
},
"sta": {
"ssid": "SID_redacted",
"is_open": false,
"enable": true,
"ipv4mode": "dhcp",
"ip": null,
"netmask": null,
"gw": null,
"nameserver": null
},
"sta1": {
"ssid": null,
"is_open": true,
"enable": false,
"ipv4mode": "dhcp",
"ip": null,
"netmask": null,
"gw": null,
"nameserver": null
},
"roam": {
"rssi_thr": -80,
"interval": 60
}
},
"ws": {
"enable": false,
"server": null,
"ssl_ca": "ca.pem"
}
}
}
2024-03-28 13:09:38.540 luup.shelly:207: New Shelly announced: shellypro3em-MAC_address_redacted
2024-03-28 13:09:38.542 luup.create_device:: [30004] D_GenericShellyDevice.xml / / D_GenericShellyDevice.json (GenericShellyDevice)
2024-03-28 13:09:38.542 luup.attr_set:: 30004.ip =
2024-03-28 13:09:38.542 luup.attr_set:: 30004.mac = Shelly_IP_redacted <-- loaded with correct value
2024-03-28 13:09:38.542 luup.attr_set:: 30004.model = shellypro3em
2024-03-28 13:09:38.542 luup.attr_set:: 30004.firmware = 20240223-141900/1.2.2-g7c39781
2024-03-28 13:09:38.956 openLuup.server:: request completed (6784 bytes, 1 chunks, 11054 ms) tcp{client}: 0x558fe2b248
A few notes.
Here is the "method": "NotifyFullStatus" for the H&T device:
{
"src": "shellyplusht-MAC_address_redacted",
"dst": "shellyplusht-MAC_address_redacted/events",
"method": "NotifyFullStatus",
"params": {
"ts": 1.47,
"ble": {},
"cloud": {
"connected": false
},
"devicepower:0": {
"id": 0,
"battery": {
"V": 0.43,
"percent": 0
},
"external": {
"present": true
}
},
"ht_ui": {},
"humidity:0": {
"id": 0,
"rh": 50.9
},
"mqtt": {
"connected": true
},
"sys": {
"mac": "MAC_address_redacted",
"restart_required": false,
"time": null,
"unixtime": null,
"uptime": 1,
"ram_size": 246472,
"ram_free": 167120,
"fs_size": 458752,
"fs_free": 192512,
"cfg_rev": 15,
"kvs_rev": 0,
"webhook_rev": 0,
"available_updates": {},
"wakeup_reason": {
"boot": "deepsleep_wake",
"cause": "status_update"
},
"wakeup_period": 600,
"reset_reason": 8
},
"temperature:0": {
"id": 0,
"tC": 24,
"tF": 75.2
},
"wifi": {
"sta_ip": "Shelly_IP_redacted",
"status": "got ip",
"ssid": "SID_redacted",
"rssi": -68
},
"ws": {
"connected": false
}
}
}
Immediately above is the "method": "NotifyFullStatus" for the H&T device.
Had a quick look at the Shelly pro 3em. Looks like it gets ignored at line 643:
if not shelly: match "^shellyplus" then return end ...
The H&T device publishes: "shellyplusht-MAC_address". However the Shelly pro 3em publishes: "shellypro3em-MAC_address". So no "plus" found. And the user can change this label in the device's web page under "MQTT prefix". I changed the prefix so it included "plus" but that didn't seem to help. EDIT: it did help - I had just plugged the "plus" in the wrong spot. See post further below.
On the shelly-gen2-cmd/rpc topic I only see the H&T device - not the shellypro3em.
I don't have a Gen 1 device, so I can't see what would identify one from the other. Could have a numeric value associated with each known device indicating its generation. Also the RPC communication seems to be purely Gen 2?
@toggledbits Thanks for that. Zensys had it as their proprietary stuff ie under their control for ages and it's still a constellation of confusion. For example - how hard should it be to copy a set up from one USB stick to another? They really shot themselves in the foot a long time ago. Meanwhile Zigbee seems to have flourished?
Will do.
Good point. Single phase. Or is it just a case of making three meters?