Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Unsolved
Collapse
Discussion Forum to share and further the development of home control and automation, independent of platforms.
B

Buxton

@Buxton
Set Reaction > Script Action
wmarcolinW
Topic thumbnail image
Multi-System Reactor
Wiring Samotech SM308-S into light fitting
F
Hi Smart Home Community. I have used a Sonos inline WiFi switch to make one of my light fittings smart, but it requires a hard reset for WiFi changes, plus it isn't zigbee compatible, which means I can't use the Hue app to control it with the rest of the lights. To that end I bought a Samotech SM308-S as it is recommended as the better than the Sonos equivalent. I am however not exactly sure how to wire it in. The manual is available here Can anyone help me by clarifying which ports I need to use, and whether I should be using the live or switched live line for live etc. I will be keeping using standard switches for a while, although hope to upgrade to tap dials once I have all the fittings upgraded. Thanks
Hardware
Errors after updating to MQTTController build 25139
tunnusT
I'm running MSR build 25139 on Docker, using MQTT controller 24293, and everything working as expected. But if I try to upgrade to MQTTController build 25139, I'm getting the following errors on MSR UI: An Entity Attribute condition in "Lay-Z-Spa auto heating off" (Terrace) failed because the referenced entity "Lay-Z-Spa States" (mqtt>layzspa_states) does not have attribute value_sensor.god Last 11:20:37 An Entity Attribute condition in "Lay-Z-Spa auto heating off" (Terrace) failed because the referenced entity "Lay-Z-Spa States" (mqtt>layzspa_states) does not have attribute temperature_sensor.green Last 11:20:37 An Entity Attribute condition in "Lay-Z-Spa filter pump auto off" (Terrace) failed because the referenced entity "Lay-Z-Spa States" (mqtt>layzspa_states) does not have attribute temperature_sensor.red Last 11:20:37 An Entity Attribute condition in "Lay-Z-Spa filter pump auto run" (Terrace) failed because the referenced entity "Lay-Z-Spa States" (mqtt>layzspa_states) does not have attribute value_sensor.pump Last 11:20:37 An Entity Attribute condition in "Lay-Z-Spa watchdog" (Terrace) failed because the referenced entity "Lay-Z-Spa States" (mqtt>layzspa_states) does not have attribute value_sensor.status Last 11:20:37 My MQTT configuration (local_mqtt_devices.yaml) for the related entity is: layzspa_message: type: ValueSensor capabilities: ["temperature_sensor", "value_sensor", "power_sensor"] primary_attribute: power_sensor.value events: "layzspa/message": "power_sensor.value": json_payload: true if_expr: '! isnull( payload?.PWR )' expr: "float(payload.PWR)" "value_sensor.air": json_payload: true if_expr: '! isnull( payload?.AIR )' expr: "float(payload.AIR)" "value_sensor.pump": json_payload: true if_expr: '! isnull( payload?.FLT )' expr: "float(payload.FLT)" "value_sensor.god": json_payload: true if_expr: '! isnull( payload?.GOD )' expr: "float(payload.GOD)" "value_sensor.lock": json_payload: true if_expr: '! isnull( payload?.LCK )' expr: "float(payload.LCK)" "value_sensor.unit": json_payload: true if_expr: '! isnull( payload?.UNT )' expr: "float(payload.UNT)" "value_sensor.error": json_payload: true if_expr: '! isnull( payload?.ERR )' expr: "float(payload.ERR)" "temperature_sensor.green": json_payload: true if_expr: '! isnull( payload?.GRN )' expr: "float(payload.GRN)" "temperature_sensor.red": json_payload: true if_expr: '! isnull( payload?.RED )' expr: "float(payload.RED)" "temperature_sensor.target": json_payload: true if_expr: '! isnull( payload?.TGT )' expr: "float(payload.TGT)" "temperature_sensor.value": json_payload: true if_expr: '! isnull( payload?.TMP )' expr: "float(payload.TMP)" "temperature_sensor.virtual": json_payload: true if_expr: '! isnull( payload?.VTM )' expr: "round(float(payload.VTM), 1)" "temperature_sensor.ambient": json_payload: true if_expr: '! isnull( payload?.AMB )' expr: "float(payload.AMB)" "layzspa/Status": "value_sensor.status": if_expr: '! isnull( payload )' expr: "payload" "layzspa/button": "value_sensor.button": if_expr: '! isnull( payload )' expr: "payload" and in reactor.yaml I have: "layzspa_states": name: "Lay-Z-Spa States" friendly_name: 'Lay-Z-Spa States' include: layzspa_message I realize my MQTT configuration might be a bit unorthodox, but could there still be something unintentional in the latest MQTTController build? If needed, I can provide detailed logs.
Multi-System Reactor
🎉 My very first MSR controller: OpenSprinkler
therealdbT
Since today is my birthday - and I still pretend to be unconventional - I'm giving away a present to this wonderful community and I'm releasing my first OpenSprinkler controller for MSR. It was real fun to code it - and while it's still WIP, it seems to work OK for me. It's polling-based at the moment, but I'll add support for updates via MQTT very soon (it's already partially coded). Get it at (install is similar to MQTTController and such): https://github.com/dbochicchio/reactor-opensprinkler Feel free to try it. It's beta software, but it's stable. I'll update it weekly until all the tasks from my todo list are empty. Since I've learnt a lot from this controller, I'll explore new controllers soon.
Multi-System Reactor
Advice reqeusted to migrate MSR from Bare Metal to Container
T
Good day all, I'm in the process of trying to shut down my 10 year old Linux home server that served many purposes, but primarily it's what I used for my NAS/Plex Media server. I migrated the NAS aspect of the server in November of last year to a true NAS solution (Ubiquti UNAS Pro), which is rack mount and much more efficient than my old tower, which it's only side benefit was heating my home office during the winter. Unfortunately it also means heating my home office during the summer, which were about to be in full swing. I have two things running on this 10 year old server at this point. MSR and pi-hole. I'm running Plex Media Server on Fedora Workstation in Podman on mini PC, which is much more energy efficient than my old tower. My next step is to migrate MSR. I know there are images of MSR out there, and creating it is well documented. I'm going to be using Podman instead of Docker for various reasons, but they work very similar. What I don't know, is what I need to do to migrate my existing Bare Metal installation over to a container. Has anyone done this? Any advice?
Multi-System Reactor
Reactor (Multi-System/Multi-Hub) Announcements
toggledbitsT
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.
Multi-System Reactor
Z-Wave Future....
DesTD
https://forum.z-wave.me/viewtopic.php?f=3417&t=36140 That's not a good thing I think Time to switch again?
Z-Wave.me
Can´t restart or upgrade/deploy MSR
F
Topic thumbnail image
Multi-System Reactor
[Solved] Limit HA Entity in MSR
wmarcolinW
Topic thumbnail image
Multi-System Reactor
Disaster recovery and virtualisation
CatmanV2C
Following on from my last thread, some progress has been made over the weekend. With 18G of spanky RAM in my Synology DS224+. I've jumped into the murky world of virtualisation and already eliminated the need for two Raspberry Pi's from my system. Home Assistant: In theory they provide an OVA file which is supported by the Synology. I couldn't get it to work, however, so grabbed a copy of the .img file they supply, renamed it .iso and imported it as a VM. Restored from my full back up and that all seems fantastic. Minidnla Music server: Trivial. Grabbed a Debian .iso for Bookworm and copied that onto the NAS. Created a new machine which mirrored the specs of the Raspberry Pi, booted from the ISO then did an expert install. Once that was all stable with a basic core of stuff and networking, I've made a copy of that as a good base system. Then fired up minidnla on it, mounted my media and that's also woking. Not bad for a short weekend's work. Still not sure about the main NUC though. I'm thinking of buying a new USB stick so I can mess around getting it working on the Synology before I do anything drastic. Once that hurdle is sorted I'm torn between: Using a brand new install of Bookworm, re-installing Z-way server, OpenLuup, AltUI, MSR and HA bridge, then restoring across or Making an ISO of the current system, importing that and upgrading in place (which will be pretty risk free since I can snapshot everything before I make any changes.) Decisions, decisions. C
General Discussion
Remote access of Zwave stick from Z-wave server
CatmanV2C
Topic thumbnail image
Software
Organizing/ structuring rule sets and rules
R
Hi guys, Just wondering how you guys organize your rule sets and rules. I wish I had an extra layer to have some more granularity, but my feature request was not popular. Maybe there are better ways to organize my rule sets. I use the rule sets now primarily for rooms. So a rule set per room. But maybe grouping by functionality works better. Any examples/ suggestions would be appreciated.
Multi-System Reactor
Moving MSR from a QNAP container to RP 5 - some issues
Tom_DT
Topic thumbnail image
Multi-System Reactor
Widget deletion does not work and landing page (status) is empy
M
Topic thumbnail image
Multi-System Reactor
Need help reducing false positive notifications
T
Topic thumbnail image
Multi-System Reactor
Deleting widgets
tunnusT
Hopefully a trivial question, but how do you delete widgets in a status page? Using build 22266
Multi-System Reactor
MQTT configuration question
tunnusT
I have the following yaml configuration in local_mqtt_devices file x_mqtt_device: set_speed: arguments: speed: type: str topic: "command/%friendly_name%" payload: type: json expr: '{ "fan": parameters.speed }' While this works fine, I'm wondering how this could be changed to "fixed" parameters, as in this case "fan" only accepts "A", "Q" or a numeric value of 1-5?
Multi-System Reactor
System Configuration Check - time is offset
F
Hi! I get this message when I'm on the status tab: System Configuration Check The time on this system and on the Reactor host are significantly different. This may be due to incorrect system configuration on either or both. Please check the configuration of both systems. The host reports 2025-04-01T15:29:29.252Z; browser reports 2025-04-01T15:29:40.528Z; difference 11.276 seconds. I have MSR installed as a docker on my Home Assistant Blue / Hardkernel ODROID-N2/N2+. MSR version is latest-25082-3c348de6. HA versions are: Core 2025.3.4 Supervisor 2025.03.4 Operating System 15.1 I have restarted HA as well as MSR multiple times. This message didn´t show two weeks ago. Don´t know if it have anything to do with the latest MSR version. Do anyone know what I can try? Thanks in advance! Let's Be Careful Out There (Hill Street reference...) /Fanan
Multi-System Reactor
Programmatically capture HTTP Request action status code or error
therealdbT
I have a very strange situation, where if InfluxDB restarts, other containers may fail when restarting at the same time (under not easy to understand circumstances), and InfluxDB remains unreachable (and these containers crashes). I need to reboot these containers in an exact order, after rebooting InfluxDB. While I understand what's going on, I need a way to reliable determine that InfluxDB is not reachable and these containers are not reachable, in order to identify this situation and manually check what's going on - and, maybe, in the future, automatically restart them if needed. So, I was looking at HTTP Request action, but I need to capture the HTTP response code, instead of the response (becase if ping is OK, InfluxDB will reply with a 204), and, potentially, a way to programmatically detect that it's failing to get the response. While I could write a custom HTTP controller for this or a custom HTTP virtual device, I was wondering if this is somewhat on you roadmap @toggledbits Thanks!
Multi-System Reactor
ZwaveJSUI - RGBWW BULB - Warm/Cold White interfered with RGB settings - Bulb doesn't change color if in WarmWhite state.
N
Hi , I'm on -Reactor (Multi-hub) latest-25067-62e21a2d -Docker on Synology NAS -ZWaveJSUI 9.31.0.6c80945 Problem with ZwaveJSUI: When I try to change color to a bulb RGBWW, it doesn't change to the RGB color and the bulb remains warm or cold white. I tryed with Zipato RGBW Bulb V2 RGBWE2, Hank Bulb HKZW-RGB01, Aentec 6 A-ZWA002, so seems that it happens with all RGBWW bulb with reactor/zwavejsui. I'm using from reator the entity action: "rgb_color.set" and "rgb_color.set_rgb". After I send the reactor command, It changes in zwavejsui the rgb settings but doesn't put the white channel to "0", so the prevalent channel remains warm/cold White and the bulb doesn't change into the rgb color. This is the status of the bulb in zwavejsui after "rgb_color.set" (235,33,33,) and the bulb is still warmWhite. x_zwave_values.Color_Switch_currentColor={"warmWhite":204,"coldWhite":0,"red":235,"green":33,"blue":33} The "cold white" and "warm white" settings interfer with the rgb color settings. Reactor can change bulb colors with rgb_color set — (value, ui8, 0x000000 to 0xffffff) or rgb_color set_rgb — (red, green, blue, all ui1, 0 to 255) but if warm or cold white are not to "0", zwavejsui doesn't change them and I can't find a way to change into rgb or from rgb back to warm white. So if I use from reactor: rgb_color set_rgb — (235,33,33) in zwavejsui I have x_zwave_values.Color_Switch_targetColor={"red":235,"green":33,"blue":33} 14/03/2025, 16:43:57 - value updated Arg 0: └─commandClassName: Color Switch └─commandClass: 51 └─property: targetColor └─endpoint: 0 └─newValue └──red: 235 └──green: 33 └──blue: 33 └─prevValue └──red: 235 └──green: 33 └──blue: 33 └─propertyName: targetColor 14/03/2025, 16:43:57 - value updated Arg 0: └─commandClassName: Color Switch └─commandClass: 51 └─property: currentColor └─endpoint: 0 └─newValue └──warmWhite: 204 └──coldWhite: 0 └──red: 235 └──green: 33 └──blue: 33 └─prevValue └──warmWhite: 204 └──coldWhite: 0 └──red: 235 └──green: 33 └──blue: 33 └─propertyName: currentColor In zwavejsui, the bulb changes rgb set but warm White remains to "204" and the bulb remais on warm White channel bacause is prevalent on rgb set. x_zwave_values.Color_Switch_currentColor_0=204 x_zwave_values.Color_Switch_currentColor_1=0 x_zwave_values.Color_Switch_currentColor_2=235 x_zwave_values.Color_Switch_currentColor_3=33 x_zwave_values.Color_Switch_currentColor_4=33 Is it possible to targetColor also for "warmWhite" and "coldWhite" and have something similar to this? x_zwave_values.Color_Switch_targetColor={"warmWhite":0,"coldWhite":0,"red":235,"green":33,"blue":33} Thanks in advance.
Multi-System Reactor
About
Posts
136
Topics
10
Shares
0
Groups
0
Followers
0
Following
0

Posts

Recent Best Controversial

  • Tinkering with Tasmota sensors
    B Buxton

    @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.
    SonoffDualR3-2.png

    SonoffDualR3.png

    Energy Monitoring built into the dual relay!

    Hardware

  • openLuup: MQTT server
    B Buxton

    @archers

    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.

    openLuup

  • openLuup: Tasmota MQTT Bridge
    B Buxton

    @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.

    Plugins

  • MQTT – setup and use
    B Buxton

    @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
      }
    }
    
    General Discussion

  • openLuup: MQTT server
    B Buxton

    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.

    openLuup

  • MQTT Plugin
    B Buxton

    @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.

    GitHub - toggledbits/sockproxyd: A socket proxy for Vera/openLuup systems

    GitHub - toggledbits/sockproxyd: A socket proxy for Vera/openLuup systems

    A socket proxy for Vera/openLuup systems. Contribute to toggledbits/sockproxyd development by creating an account on GitHub.

    GitHub - toggledbits/LuWS: A WebSocket client implementation for Luup (Vera and openLuup) systems, with optional async receive (responsive)

    GitHub - toggledbits/LuWS: A WebSocket client implementation for Luup (Vera and openLuup) systems, with optional async receive (responsive)

    A WebSocket client implementation for Luup (Vera and openLuup) systems, with optional async receive (responsive) - toggledbits/LuWS

    Plugins

  • MQTT – setup and use
    B Buxton

    @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.

    General Discussion

  • openLuup: MQTT server
    B Buxton

    @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
    
    openLuup

  • openLuup: Tasmota MQTT Bridge
    B Buxton

    @buxton In the above, I'm seeing an extra closing right hand bracket in the JSON string.

    Plugins

  • Tinkering with Tasmota sensors
    B Buxton

    I've been waiting for something like this. Very cool. Thx for the post

    Hardware

  • openLuup: MQTT server
    B Buxton

    @akbooer
    And a ping response from bridge to main instance:

    Frame 33: 68 bytes on wire (544 bits), 68 bytes captured (544 bits) on interface eth0, id 0
    Ethernet II, Src: 96:62:08:fb:22:8a (96:62:08:fb:22:8a), Dst: Advansus_0a:8c:3a (00:19:0f:0a:8c:3a)
    Internet Protocol Version 4, Src: 10.17.2.110, Dst: 10.17.2.41
    Transmission Control Protocol, Src Port: 1882, Dst Port: 40664, Seq: 5, Ack: 2851, Len: 2
    MQ Telemetry Transport Protocol, Ping Response
        Header Flags: 0xd0, Message Type: Ping Response
            1101 .... = Message Type: Ping Response (13)
            .... 0000 = Reserved: 0
        Msg Len: 0
    
    openLuup

  • Release 1.0.0
    B Buxton

    @toggledbits I was able to install the container through compose, however, I had to make some changes to get it working. See below for my compose file:

     MSR:
      container_name: reactor
      image: toggledbits/reactor:latest-generic-amd64
      restart: "on-failure"
      environment:
       REACTOR_DATA_PREFIX: /var/reactor
       TZ: America/Los_Angeles
      expose:
       - 8111
      ports:
       - 8111:8111
      volumes:
       - /home/username/reactor:/var/reactor
       - /etc/localtime:/etc/localtime:ro
      tmpfs: /tmp
    #  logging:
    #   driver: "json-file"
    #   options:
    #    max-file: 5
    #    max-size: 2m
    

    The changes I made are:
    1.) substitute "MSR" for "web" for the service name. This was just a precaution against a generic service name interfering with container management programs I use, and was not a needed/critical change to get things working.
    2.) simplify the volume syntax for binding a data volume. The syntax you have on your website caused a yaml compile error with version: '3.7' compose.
    3.) comment out the logging options. These options compiled, but threw a runtime JSON error that stopped the container from coming up:

    ERROR: for MSR  Cannot create container for service MSR: json: cannot unmarshal number into Go struct field LogConfig.HostConfig.LogConfig.Config of type string
    ERROR: Encountered errors while bringing up the project.
    

    I hope to cut out some time next week to start forming some logic. The web UI looks great.

    Multi-System Reactor

  • openLuup: Tasmota MQTT Bridge
    B Buxton

    @akbooer No errors in 2021.04.18. Thanks for this as the changes also stabilized my Mosquitto bridge connection, which tended to flop with every error message.

    2021-04-18 15:29:04.173   luup.tasmota:262: Topic ignored : tele/power_ServerWork/LWT : Online
    2021-04-18 15:29:04.175   luup.tasmota:262: Topic ignored : tele/power_MainVera/LWT : Online
    2021-04-18 15:29:04.176   luup.tasmota:262: Topic ignored : tele/power_HAServer/LWT : Online
    2021-04-18 15:29:04.177   luup.tasmota:262: Topic ignored : tele/power_SideLandscape/LWT : Online
    2021-04-18 15:29:04.178   luup.tasmota:262: Topic ignored : tele/power_GarageVera/LWT : Online
    
    Plugins

  • openLuup: MQTT server
    B Buxton

    @akbooer

    The Connect packet:

    MQ Telemetry Transport Protocol, Connect Command
        Header Flags: 0x10, Message Type: Connect Command
        Msg Len: 94
        Protocol Name Length: 4
        Protocol Name: MQTT
        Version: Unknown (132)
        Connect Flags: 0xec, User Name Flag, Password Flag, Will Retain, QoS Level: At least once delivery (Acknowledged deliver), Will Flag
            1... .... = User Name Flag: Set
            .1.. .... = Password Flag: Set
            ..1. .... = Will Retain: Set
            ...0 1... = QoS Level: At least once delivery (Acknowledged deliver) (1)
            .... .1.. = Will Flag: Set
            .... ..0. = Clean Session Flag: Not set
            .... ...0 = (Reserved): Not set
        Keep Alive: 60
        Client ID Length: 14
        Client ID: Thing.MosquittoBridge
        Will Topic Length: 43
        Will Topic: $SYS/broker/connection/Thing.MosquittoBridge/state
        Will Message Length: 1
        Will Message: 0
        User Name Length: 6
        User Name: YYYYYY
        Password Length: 10
        Password: XXXXXXXXXX
    
    openLuup

  • openLuup: Tasmota MQTT Bridge
    B Buxton

    @akbooer No historian errors and all "checked" variables are publishing to my InfluxDB server.

    Plugins

  • openLuup: MQTT server
    B Buxton

    @akbooer
    The subscribe packet:

    Frame 156: 81 bytes on wire (648 bits), 81 bytes captured (648 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: 36446, Dst Port: 1882, Seq: 147, Ack: 9, Len: 15
    MQ Telemetry Transport Protocol, Unsubscribe Request
        Header Flags: 0xa2, Message Type: Unsubscribe Request
            1010 .... = Message Type: Unsubscribe Request (10)
            .... 0010 = Reserved: 2
        Msg Len: 5
        Message Identifier: 2
        Topic Length: 1
        Topic: #
    MQ Telemetry Transport Protocol, Subscribe Request
        Header Flags: 0x82, Message Type: Subscribe Request
            1000 .... = Message Type: Subscribe Request (8)
            .... 0010 = Reserved: 2
        Msg Len: 6
        Message Identifier: 3
        Topic Length: 1
        Topic: #
        Requested QoS: At most once delivery (Fire and Forget) (0)
    
    openLuup

  • openLuup: MQTT server
    B Buxton

    @akbooer

    The connect ACK:

    MQ Telemetry Transport Protocol, Connect Ack
        Header Flags: 0x20, Message Type: Connect Ack
            0010 .... = Message Type: Connect Ack (2)
            .... 0000 = Reserved: 0
        Msg Len: 2
        Acknowledge Flags: 0x00
            0000 000. = Reserved: Not set
            .... ...0 = Session Present: Not set
        Reason Code: Success (0)
    
    
    openLuup

  • openLuup: MQTT server
    B Buxton

    @akbooer Yes but as you can see on the connect, the version is "Version: Unknown (132)"

    This is what is causing the problem. After much searching and trying different configs, I stumbled on the following which solved the problem. From mosquitto.org

    try_private [ true | false ]
    If try_private is set to true, the bridge will attempt to indicate to the remote broker that it is a bridge not an ordinary client. If successful, this means that loop detection will be more effective and that retained messages will be propagated correctly. Not all brokers support this feature so it may be necessary to set try_private to false if your bridge does not connect properly.
    
    Defaults to true.
    

    So I set the attribute to false in my bridge config and immediately connected openLuup to the mosquitto broker. The connect packet shows the right version, and with a luup reload, all of my mosquitto broker topics populated in mqtt explorer that was pointed at openLuup. However, I don't see the topics in the mqtt console on openLuup?? Which is odd because I not only see the openLuup topics in explorer, but I see the topics actively changing.

    I'm not a good one to suggest code changes, but since this mosquitto setting defaults to true, can you try to incorporate the try_private flag in openLuup's MQTT server.... It took a long time to track this down and I imagine anyone else that tries to connect the two servers will be in for a similar bug fix adventure.

    openLuup

  • openLuup: MQTT server
    B Buxton

    2b910604-bd05-486e-8f8a-603da5af8422-image.png image url)

    openLuup Explorer

    openLuup

  • openLuup: MQTT server
    B Buxton

    @akbooer Yes, I was thinking along those lines as the bridge config allows filters. The latest openLuup version now works fine with try_private flag set to default (true). Thanks for nailing this down and your work is definitely appreciated. Below is the connection to openLuup.

    419b97dc-b06a-4e78-a4a8-6c2b33f45fed-image.png

    Here's my Mosquitto config for anyone who wants to bridge the two brokers:

    allow_anonymous true
    password_file /mosquitto/data/PW.txt
    listener 1883
    connection openLuup
    address 127.0.0.1:1882
    topic # out 0
    topic # in 0
    cleansession false
    notifications true
    username XXXXX
    password YYYYYYYYYY
    bridge_protocol_version mqttv311
    

    Most of these settings can/should be modified to suit one's particular needs, but the settings should be employed. The password file for mosquitto needs to be encrypted with mosquitto's built-in encryption tool. The directions are straightforward and are described in on-line documents.

    openLuup
  • Login

  • Don't have an account? Register

  • Login or register to search.
  • First post
    Last post
0
  • Categories
  • Recent
  • Tags
  • Popular
  • Unsolved