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

prophead

@prophead
Any thoughts on which is better
CatmanV2C
Obviously a quiet forum, but perhaps it's time I'm looking at rolling Zigbee into my system, in large part for the Aqara FP300 presence sensors which seem to finally provide a solution to if the wasp is actually in the box. My current set up is as follows: One Debian VM on Synology NAS running: Z-wave Server Open Luup Multi system reactor HA bridge Mosquito MQQT broker This machine has a UZB Z-wave stick connected via the USB port on the NAS Another HAOS VM on the same NAS running HAOS I've got some older Z-wave stuff that I keep around until it fails. I have some Tuya stuff integrated in HA My thought was to get either a SMLIGHT SLZB-06M or an Aqara Hub M2 Integrate them via Zigbee2MQQT (running on the Debian machine) and then expose them in HA so I can continue to automate in MSR. Thoughts on which of those devices wold be preferable long term. Both are POE capable which is good. It also appears I could add a USB dongle to the NAS and expose it to the HAOS machine. Any thoughts from the assembled experts here? TIA C
Zigbee
Reactor Loading Screen Safari
S
Topic thumbnail image
Multi-System Reactor
Constraints states visually do not match actual
S
Topic thumbnail image
Multi-System Reactor
Oh the joy of pairing
CatmanV2C
When I remember the old days Just added a new Tuya plug (OK so it's cloud) Start to finish, visible in HA and MSR < 30 seconds... C
Vera
HDMI oddness
CatmanV2C
Not really Smart Home stuff, but going to ask as we have smart people... Bear with me on this one. Asking here because of the font of knowledge! For many eek years I have had a Virgin V6 box and a Raspberry Pi running Kodi connected to my TV through a cheap *** HDMI switch. It all worked beautifully but the absolutely critical thing was that the TV remote passed the signals back to the Pi to allow remote control of Kodi. Couple of changes of late: Installed a soundbar on the TV using the ARC (audio return channel). That then turns the soundbar on and off when the TV turns on and off and the TV volume control controls the soundbar volume direct. Everything continues to work Upgraded the software of the Tivo box to Virgin 360. This is literally software only. You get sent a snacky new Bluetooth remote hit 'upgrade' on the screen and off it goes. Now, things are not playing well. Typically when I turn on to watch Kodi the soundbar comes on (as it should) but the TV either puts out sound through its own speakers and the soundbar, or just the soundbar. It's not possible to control the volume of the soundbar through the TV. Also it's not longer possible to control Kodi using the TV remote. If I turn the TV360 box off, i.e. power it down, before turning on to watch Kodi, everything is fine. This makes little to no sense to me. My assumption is that the cheap *** HDMI switch is getting something from the TV360 connection that it didn't used to get when the software was Tivo and that's screwing up the HDMI communications. I'm upgrading the switch to something a little less chap, but wondered if anyone could validate my theory at all? TIA C
General Discussion
Home Assistant Connect ZWA-2 & ZBT-2
therealdbT
Topic thumbnail image
Hardware
[MSR] Feature request: For Each action on arrays/groups
therealdbT
Topic thumbnail image
Multi-System Reactor
[Solved] Error: Command timeout
G
at _ClientAPI._commandTimeout (http://192.168.1.100:8111/client/ClientAPI.js:807:179 Seeing this randomly when returning to open browser tab after being away awhile. Once, maybe twice a day. "What did you do to trigger it?" Literally nothing, just walked away and returned and there it was. Actions taken in reasonably close proximity to this particular instance of it popping up: I'd restarted the MSR container in Portainer. I'll try to grab some logs here shortly.
Multi-System Reactor
Issue with MSR UI becoming unresponsive
S
I'm having an issue with MSR's UI being very unresponsive. It started happening a couple days ago and I didn't make any changes that would have caused this except adding some meross lan devices in HA. When I go into an entity action and use the search functionality, it usually will start filtering and then get to a place after a few letters are entered where it will take 30 seconds or more (sometimes minutes) for the UI to show what I am typing. During this time MSR ui is completely unresponsive. I've tried multiple browsers and multiple computers. HA and MSR are both deployed in docker. I have run HTOP on the host and when the problem happens there are no CPU/Memory spikes at all. From a functionality standpoint MSR is working perfectly. This seems to be an UI issue only. Do i need to ditch Docker and run MSR on a Proxmox VM? I have both stand alone Docker and Proxmox environments. I dont mind doing that I just want to be able to use the UI again... Installation method Home Assistant Container Core 2025.7.3 Frontend 20250702.3 nothing crazy in the logs except some openweather map stuff that doesn't make any sense as it is working fine in MSR Any help would be greatly appreciated Reactor latest-25328-b2ed1365 app 25328 configuration from /var/reactor/config NODE_PATH /opt/reactor:/opt/reactor/node_modules [latest-25328]2025-11-30T20:01:53.843Z <app:null> Reactor build latest-25328-b2ed1365 starting on v24.11.1 /usr/local/bin/node [latest-25328]2025-11-30T20:01:53.844Z <app:null> Process ID 1 user/group 0/0; docker; platform linux/x64 #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC 2025; locale (undefined) [latest-25328]2025-11-30T20:01:53.844Z <app:null> Basedir /opt/reactor; data in /var/reactor/storage [latest-25328]2025-11-30T20:01:53.844Z <app:null> NODE_PATH=/opt/reactor:/opt/reactor/node_modules [latest-25328]2025-11-30T20:01:53.865Z <app:null> Resolved timezone=America/New_York, environment TZ=America/New_York; offset minutes from UTC=-300 [latest-25328]2025-11-30T20:01:53.867Z <default:null> Module i18n v25141 [latest-25328]2025-11-30T20:01:53.867Z <app:null> Configured locale (undefined); selected locale(s) en-US.UTF-8 [latest-25328]2025-11-30T20:01:53.879Z <app:null> Loaded locale en-US for en-US [latest-25328]2025-11-30T20:01:53.879Z <app:null> Local date/time using configured timezone and locale formatting is "11/30/2025, 3:01:53 PM" [latest-25328]2025-11-30T20:01:53.889Z <Structure:null> Module Structure v25326 [latest-25328]2025-11-30T20:01:53.890Z <Capabilities:null> Module Capabilities v24312 [latest-25328]2025-11-30T20:01:53.904Z <Plugin:null> Module Plugin v25141 [latest-25328]2025-11-30T20:01:53.923Z <Timer:null> Module Timer v25279 [latest-25328]2025-11-30T20:01:53.924Z <TimerBroker:null> Module TimerBroker v25314 [latest-25328]2025-11-30T20:01:53.927Z <Entity:null> Module Entity v25251 [latest-25328]2025-11-30T20:01:53.929Z <Controller:null> Module Controller v25253 [latest-25328]2025-11-30T20:01:53.930Z <AlertManager:null> Module AlertManager v25318 [latest-25328]2025-11-30T20:01:53.937Z <default:null> Module Ruleset v25283 [latest-25328]2025-11-30T20:01:53.937Z <default:null> Module Rulesets v25141 [latest-25328]2025-11-30T20:01:53.942Z <GlobalExpression:null> Module GlobalExpression v25258 [latest-25328]2025-11-30T20:01:53.953Z <Predicate:null> Module Predicate v25328 [latest-25328]2025-11-30T20:01:53.956Z <Rule:null> Module Rule v25323 [latest-25328]2025-11-30T20:01:53.958Z <GlobalReaction:null> Module GlobalReaction v25292 [latest-25328]2025-11-30T20:01:53.959Z <Engine:null> Module Engine v25325 [latest-25328]2025-11-30T20:01:53.964Z <httpapi:null> Module httpapi v25328 [latest-25328]2025-11-30T20:01:53.972Z <wsapi:null> Module wsapi v25328 [latest-25328]2025-11-30T20:01:53.994Z <TaskQueue:null> Module TaskQueue 24138 [latest-25328]2025-11-30T20:01:53.994Z <VeraController:null> Module VeraController v25141 [latest-25328]2025-11-30T20:01:54.179Z <HassController:null> Module HassController v25325 [latest-25328]2025-11-30T20:02:13.797Z <OWMWeatherController:null> Module OWMWeatherController v25268 [latest-25328]2025-11-30T20:02:13.800Z <SystemController:null> Module SystemController v25323 [latest-25328]2025-11-30T20:02:13.807Z <MQTTController:null> Module MQTTController v22092 [latest-25328]2025-11-30T20:02:20.630Z <OWMWeatherController:CRIT> FetchError: request to https://api.openweathermap.org/data/2.5/weather?lat=xxxxxxxxxx&lon=-xxxxxxxxx&appid=xxxxxxxxxxxxxxxxxxxxxxxxxx&units=standard&_r=1xxxxxxxxxxxxxxfailed, reason: [-] FetchError: request to https://api.openweathermap.org/data/2.5/weather?lat=xxxxxxxxxxx&lon=-xxxxxxxxxxxxxxxxxx&appid=xxxxxxxxxxxxxxxxxxx&units=standard&_r=xxxxxxxxxxxxxxxfailed, reason: at ClientRequest.<anonymous> (/opt/reactor/node_modules/node-fetch/lib/index.js:1501:11) at ClientRequest.emit (node:events:508:28) at ClientRequest.emit (node:domain:489:12) at emitErrorEvent (node:_http_client:108:11) at TLSSocket.socketErrorListener (node:_http_client:575:5) at TLSSocket.emit (node:events:508:28) at TLSSocket.emit (node:domain:489:12) at emitErrorNT (node:internal/streams/destroy:170:8) at emitErrorCloseNT (node:internal/streams/destroy:129:3) at processTicksAndRejections (node:internal/process/task_queues:89:21
Multi-System Reactor
Date/time condition
tunnusT
Topic thumbnail image
Multi-System Reactor
Is there a way to turn this section (image in post) off?
toggledbitsT
Topic thumbnail image
Comments & Feedback
Device log?
G
@toggledbits is there a log that will show me what rule is turning on a specific device? I've got a switch that has been kicking on at 2200 ET for several nights now and the reactor.log doesn't have a thing in it that I can see on a device level (it being more rules-based).
Multi-System Reactor
Midnight crossing not working in date/time condition (build 25325)
tunnusT
Topic thumbnail image
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
[Solved] Local expression in Rule does not evaluate as they used to do
CrilleC
Topic thumbnail image
Multi-System Reactor
Home Assistant 2025.11.2 and latest-25315
CrilleC
Topic thumbnail image
Multi-System Reactor
Notice to Docker + ARM Users (RPi 3/4/5 and others)
toggledbitsT
This post does not apply to users of Intel/AMD-based systems. If you are using a Reactor image tagged latest-amd64 or stable-amd64, then this post does not apply to you. It also does not apply to bare-metal installs; it's for users of docker images on ARM-based systems only (principally Raspberry Pi hosts, but could be others). After January 15, 2026, I will no longer produce the aarch64-tagged docker image for Reactor. The ARM images will be arm64 for 64-bit operating systems, and armv7l for 32-bit operating systems. For those of you running a container from the aarch64 image today, this will be a relatively simple change: you just need to switch the image used for your docker container to a differently-tagged image. If you are using docker-compose, then this is a relatively simple matter of changing the image line in your docker-compose.yaml file and then stopping (docker-compose down) and restarting (docker-compose up -d) your Reactor daemon. But there's a catch... not all of you can safely just switch from the aarch64 image to the arm64 image. And, you can't just trust the output of uname -m, for example, because this exposes the CPU architecture, but not the word size of the OS running on that CPU. For Raspberry Pi systems, the transition to 64-bit operating systems was long (starting in 2016) and not always obvious — although there was a first "official" 64-bit OS for RPis in 2020, it did not become a default recommendation in the Raspberry Pi Imager until 2021, and then that was only the default for Pi 3/4 systems with >4GB RAM; it was 2022 before it was universally recommended for all 64-bit CPUs regardless of RAM size. Depending on when you first imaged your RPi system and what default you may have been offered/chosen, you could today easily have a 64-bit CPU Raspberry Pi running a 32-bit version of the operating system. Upgrades along the way would not change this; changing it to fully 64-bit requires a full reimage of the system. To establish if your OS is 64- or 32-bit, log in to your Pi and run: sudo dpkg-architecture -q DEB_HOST_ARCH. If the response is arm64 or aarch64, then you are running a 64-bit OS and you should use the arm64-tagged image. If it's anything else, you are running a 32-bit OS, and you should use the armv7l-tagged image. pi@rpi4-1:~ $ sudo dpkg-architecture -q DEB_HOST_ARCH armhf pi@rpi4-1:~ $ uname -m aarch64 pi@rpi4-1:~ $ In the example above, the uname command reports that the CPU is 64-bit architecture (aarch64), which is true for the host on which I ran these commands, but the DEB_HOST_ARCH value is armhf, indicating a 32-bit operating system. This system has to use the armv7l-tagged image. Other systems will have their own ways of determining the word size of the running OS. Since the majority of Reactor users running ARM systems are on Raspberry Pis, I am able to supply the above instructions, but if you happen to have a different ARM system, you'll need to do some web searching to figure out how to expose that information. Or, you can just try the arm64 image, and if it doesn't start up, try the armv7l image. Remember to always back up your system before making any changes. For everyone, please make this change as soon as possible, and if you have any trouble finding a working image, please (1) go back to the current aarch64 image; and (2) let me know in this thread along with as much detail about your host system as you can offer (including the output of the dpkg-architecture command mentioned above).
Multi-System Reactor
Requesting a proper ARM64/aarch64 Docker image (Pi 5 support)
M
Hi, I'm in the process of migrating from a Raspberry Pi 4 (ARMv7) to a Raspberry Pi 5 (ARMv8/aarch64), but I’ve run into an issue: there is no proper ARMv8/aarch64 image available. None of the existing images run on the Pi 5 - they all exit immediately with code 139 (segmentation fault), which typically indicates that the binaries inside the image are not compatible with the ARM64/aarch64 architecture used by the Pi 5. Would it be possible to publish a correct ARMv8/aarch64 (linux/arm64) image? Building one should be relatively straightforward using docker buildx with multi-arch support. For example, my own Node.js images are built this way: docker buildx build --push \ -t <localrepo>/<project>:<tag> \ --platform=linux/arm64,linux/amd64 \ --file ./apps/<project>/Dockerfile . This produces both the AMD64 and ARM64/v8 variants automatically. Also, as a side note, it may be best to avoid using Alpine as the base image for the ARM64 build, since musl-based builds often cause compatibility issues and unnecessary headaches. A glibc-based base image (e.g., Debian or Ubuntu) tends to work far more reliably on ARM64, especially for Node.js applications. @toggledbits - tagging you in case you missed this. Thanks, mgvra
Multi-System Reactor
Script action and custom timers
therealdbT
Sorry to write here without trying, but I’m flying today. Am I correct if i say that script action with alarm() makes it possible to execute a reaction in a given interval, lets say 15 seconds or 3.5 minutes? That sounds amazing, since I’ve used weird tricks, including a custom controller, just to do this.
Multi-System Reactor
Help resolve change in behaviour post update
CatmanV2C
Topic thumbnail image
Multi-System Reactor
About
Posts
124
Topics
15
Shares
0
Groups
0
Followers
0
Following
0

Posts

Recent Best Controversial

  • SNMP - Is anyone leveraging info via the Simple Network Management Protocol ?
    propheadP prophead

    @parkerc sounds like a permissions issue. Debug on command line before trying to script. I would also avoid use of the public access to snmp as it’s a potential security issue. I always setup private domain the proceedure differs by manufacturers. You can use snmpwalk for debugging then move to snmpget once you’re ready to drill down. Good luck.

    General Discussion

  • SNMP - Is anyone leveraging info via the Simple Network Management Protocol ?
    propheadP prophead

    @parkerc as you can see it's virtually same because SNMP is pretty standardized. Yes, this is the ubiquity edgerouter, a great $60 piece of kit. I use it for ISP failover and firewall.

    General Discussion

  • SNMP - Is anyone leveraging info via the Simple Network Management Protocol ?
    propheadP prophead

    @parkerc

    -- SNMP BWmon
    -- read stored in/out values
    local files = ""
    local f = io.open("/tmp/INO.txt")
    if not f then os.execute("touch /tmp/INO.txt") end
       for line in f:lines() do
          files = line
       end
    f:close()
    
    local OINO = files
    
    local f = io.open("/tmp/OUTO.txt")
    if not f then os.execute("touch /tmp/OUTO.txt") end
       for line in f:lines() do
          files = line
       end
    f:close()
    if not files then files = "Counter32: (0)" end
    local OOUTO = files
    
    -- parse values
    local ROINO = string.match(OINO, ".*Counter32: (%d+)")
    local ROOUTO = string.match(OOUTO, ".*Counter32: (%d+)")
    
    -- read snmp
    os.execute("/usr/bin/snmpget -r 1 -v1 -c PASSWORD 172.16.0.1 iso.3.6.1.2.1.2.2.1.10.4 >/tmp/INO.txt")
    local f = io.open("/tmp/INO.txt")
       if not f then return end  
       for line in f:lines() do
          files = line
       end
    f:close()
    local INO = files
    
    --print (INO)
    
    files = ""  
     os.execute("/usr/bin/snmpget -r 1 -v1 -c PASSWORD 172.16.0.1 iso.3.6.1.2.1.2.2.1.16.4 >/tmp/OUTO.txt")
     local f = io.open("/tmp/OUTO.txt")
        if not f then return end
        for line in f:lines() do
            files = line
        end
    f:close()
    local OUTO = files
    
    --print (OUTO)
    
    --parse
    local RINO = 0 
    RINO = string.match(INO, ".*Counter32: (%d+)")
    local ROUTO = 0
    ROUTO = string.match(OUTO, ".*Counter32: (%d+)")
    
    --print (RINO)
    --print (ROUTO)
    
    --maths
    local RINB = 0
    RINB = RINO --* 8
    local ROINB = 0
    ROINB = ROINO --* 8
    local ROUTB = 0
    ROUTB = ROUTO --* 8
    local ROOUTB = 0
    ROOUTB = ROOUTO --* 8
    
    --deltas
    local INt = 0
    INt = RINB - ROINB
    local OUTt = 0
    OUTt = ROUTB - ROOUTB
    
    local max32 = 4294966864
    
    --debug
    --luup.log ('RINB ='..RINB..', ROINB ='..ROINB)
    --luup.log ('ROUTB ='..ROUTB..', ROOUTB ='..ROOUTB)
    
    -- handle rotation
    if RINB < ROINB then INt = max32 - ROINB + RINB end
    if ROUTB < ROOUTB then OUTt = max32 - ROOUTB + ROUTB end
    if INt > max32 or INt<0 then INt = max(RINB,ROINB) end
    if OUTt > max32 or OUTt<0 then OUTt = max(ROUTB,ROOUTB) end
    
    --luup.log ('INt ='..INt..', OUTt ='..OUTt)
    
    -- 60 is 1 min interval and 1024 makes kBps
    local kbpsINt = ((INt/60)/1024)
    local kbpsOUTt = ((OUTt/60)/1024)
    local total = kbpsINt + kbpsOUTt
    
    luup.variable_set("urn:upnp-org:serviceId:altui1", "ComcastKBps", total, 11)
    luup.variable_set("urn:upnp-org:serviceId:altui1", "ComcastInKBps", kbpsINt, 11)
    luup.variable_set("urn:upnp-org:serviceId:altui1", "ComcastOutKBps", kbpsOUTt, 11)
    
    General Discussion

  • SNMP - Is anyone leveraging info via the Simple Network Management Protocol ?
    propheadP prophead

    @parkerc
    FC4656C3-8DD1-4493-9E74-5DC71923C335.jpeg F2329C8D-3B50-4C93-914B-8BA3FF49656C.jpeg

    General Discussion

  • SNMP - Is anyone leveraging info via the Simple Network Management Protocol ?
    propheadP prophead

    @parkerc I’m going to point you here:

    GitHub - jertel/vuegraf: Populate metrics from your Emporia Vue energy monitoring devices into an InfluxDB

    GitHub - jertel/vuegraf: Populate metrics from your Emporia Vue energy monitoring devices into an InfluxDB

    Populate metrics from your Emporia Vue energy monitoring devices into an InfluxDB - jertel/vuegraf

    For more energy centric metrics then snmp. I love the vue devices and the grafana integration with this link is stellar for really understanding your energy use.

    General Discussion

  • SNMP - Is anyone leveraging info via the Simple Network Management Protocol ?
    propheadP prophead

    @parkerc then I use grafana to graph
    F6CFFAB5-D8A7-42D2-A1B2-2C5299DC5CB6.jpeg

    General Discussion

  • SNMP - Is anyone leveraging info via the Simple Network Management Protocol ?
    propheadP prophead

    Altui on a pi

    General Discussion

  • SNMP - Is anyone leveraging info via the Simple Network Management Protocol ?
    propheadP prophead

    @parkerc this is the Dlink 8 port SNMP switch lua:

    -- SNMP 8 port BWmon
    -- read stored in/out values
    local lines = ""
    local Din = {}
    local Dout = {}
    local Oin = {}
    local Oout = {}
    local Nin = {}
    local Nout = {}
    local T = {}
    local i,j
    
    --check for switch
    local ping = os.execute("ping -c 1 192.168.1.11")
    if ping ~= 0 then
      luup.log("Dlink 8: Switch down. Aborted.")
      do return end
    end
    
    for i = 1,8 do
    -- read stored values
       local f = io.open("/tmp/8"..i.."I.txt")
       if f then
       for line in f:lines() do
         lines = line
       end -- for each line
      f:close()
      else os.execute("touch /tmp/8"..i.."I.txt")
      end
    
      if not lines then lines = "0" end
      Oin[i] = lines
      --print (Oin[i])
      
       local f = io.open("/tmp/8"..i.."O.txt")
       if f then
         for line in f:lines() do
           lines = line
         end -- for each line
       f:close()
       else os.execute("touch /tmp/8"..i.."O.txt")
       end
    
      if not lines then lines = "0" end
      Oout[i] = lines
      --print (Oout[i])
    
    end -- for each port read
    
    -- parse values
    for j = 1,8 do
    
    Oin[j] = string.match(Oin[j], ".*Counter32: (%d+)")
    if Oin[j] == "" or Oin[j] == nil then Oin[j] = 0 end
    Oout[j] = string.match(Oout[j], ".*Counter32: (%d+)")
    if Oout[j] == "" or Oout[j] == nil then Oout[j] = 0 end
    
    -- read snmp
    lines = ""
    os.execute("/usr/bin/snmpget -r 1 -v1 -c PASSWORD 192.168.1.11 iso.3.6.1.2.1.2.2.1.10."..j.." >/tmp/8"..j.."I.txt")
    local f = io.open("/tmp/8"..j.."I.txt")
       if not f then return end  
       for line in f:lines() do
          lines = line
       end
    f:close()
    Nin[j] = lines
    --print (Nin[j])
    
    lines = ""
    os.execute("/usr/bin/snmpget -r 1 -v1 -c PASSWORD 192.168.1.11 iso.3.6.1.2.1.2.2.1.16."..j.." >/tmp/8"..j.."O.txt")
    local f = io.open("/tmp/8"..j.."O.txt")
       if not f then return end  
       for line in f:lines() do
          lines = line
       end
    f:close()
    Nout[j] = lines
    --print (Nout[j])
    
    --parse
    Nin[j] = string.match(Nin[j], ".*Counter32: (%d+)")
    if Nin[j] == "" or Nin[j] == nil then Nin[j] = 0 end
    Nout[j] = string.match(Nout[j], ".*Counter32: (%d+)")
    if Nout[j] == "" or Nout[j] == nil then Nout[j] = 0 end
    
    --print (Nin[j])
    --print (Nout[j])
    
    --deltas
    Din[j] = Nin[j] - Oin[j]
    Dout[j] = Nout[j] - Oout[j]
    
    local max32 = 4294967295
    --local max32 = 4294966864
    
    -- handle rotation
    if Nin[j] < Oin[j] then Din[j] = max32 - Oin[j] + Nin[j] end
    if Nout[j] < Oout[j] then Dout[j] = max32 - Oout[j] + Nout[j] end
    if Din[j] > max32 or Din[j]<0 then Din[j] = 0 end --math.max(Oin[j],Nin[j]) end
    if Dout[j] > max32 or Dout[j]<0 then Dout[j] = 0 end --math.max(Oout[j],Nout[j]) end
    
    end -- end for each port write
    
    -- add real time interval tracking
    -- read old time
    lines = ""
    local ot = ""
    local f = io.open("/tmp/lastDlink8run.txt")
        if not f then os.execute("touch /tmp/lastDlink8run.txt") return end
        for line in f:lines() do
            ot = line
        end
    f:close()
    if not ot then ot = "300" end -- default to five minutes
    
    -- write new time
    local nt = tonumber(os.time())
    local t = assert(io.open("/tmp/lastDlink8run.txt", "w"), "Failed to open lastDlink8run.txt")
    t:write(nt)
    io.close(t)
    
    -- delta seconds
    local nds = nt - ot
    
    -- bounds
    if nds < 24 then nds = 24 end
    if nds > 900 then nds = 900 end
    
    -- debugging
    local t = assert(io.open("/tmp/Dlink8nds.txt", "w"), "Failed to open Dlink8nds.txt")
    t:write(nds)
    io.close(t)
    
    -- maths
    for k = 1,8 do
    Din[k] = ((Din[k]/nds)/1024)
    if Din[k] > 1500000 then Din[k] = 0 end
    Dout[k] = ((Dout[k]/nds)/1024)
    if Dout[k] > 1500000 then Dout[k] = 0 end
    T[k] = Din[k]+Dout[k]
    end -- end for each K conversion
    
    -- set luup device variables for device 12, LAN
    luup.variable_set("urn:upnp-org:serviceId:altui1", "DoorBirdINKBps", Din[1] , 12)
    luup.variable_set("urn:upnp-org:serviceId:altui1", "DoorBirdOUTKBps", Dout[1] , 12)
    luup.variable_set("urn:upnp-org:serviceId:altui1", "DoorBirdKBps", T[1] , 12)
    luup.variable_set("urn:upnp-org:serviceId:altui1", "RoomHubINKBps", Din[2] , 12)
    luup.variable_set("urn:upnp-org:serviceId:altui1", "RoomHubOUTKBps", Dout[2] , 12)
    luup.variable_set("urn:upnp-org:serviceId:altui1", "RoomHubKBps", T[2] , 12)
    luup.variable_set("urn:upnp-org:serviceId:altui1", "BedroomINKBps", Din[3] , 12)
    luup.variable_set("urn:upnp-org:serviceId:altui1", "BedroomOUTKBps", Dout[3] , 12)
    luup.variable_set("urn:upnp-org:serviceId:altui1", "BedroomKBps", T[3] , 12)
    luup.variable_set("urn:upnp-org:serviceId:altui1", "DownstairsINKBps", Din[4] , 12)
    luup.variable_set("urn:upnp-org:serviceId:altui1", "DownstairsOUTKBps", Dout[4] , 12)
    luup.variable_set("urn:upnp-org:serviceId:altui1", "DownstairsKBps", T[4] , 12)
    luup.variable_set("urn:upnp-org:serviceId:altui1", "LivingRoomINKBps", Din[5] , 12)
    luup.variable_set("urn:upnp-org:serviceId:altui1", "LivingRoomOUTKBps", Dout[5] , 12)
    luup.variable_set("urn:upnp-org:serviceId:altui1", "LivingRoomKBps", T[5] , 12)
    luup.variable_set("urn:upnp-org:serviceId:altui1", "KitchenINKBps", Din[6] , 12)
    luup.variable_set("urn:upnp-org:serviceId:altui1", "KitchenOUTKBps", Dout[6] , 12)
    luup.variable_set("urn:upnp-org:serviceId:altui1", "KitchenKBps", T[6] , 12)
    luup.variable_set("urn:upnp-org:serviceId:altui1", "UpstairsINKBps", Din[7] , 12)
    luup.variable_set("urn:upnp-org:serviceId:altui1", "UpstairsOUTKBps", Dout[7] , 12)
    luup.variable_set("urn:upnp-org:serviceId:altui1", "UpstairsKBps", T[7] , 12)
    
    General Discussion

  • SNMP - Is anyone leveraging info via the Simple Network Management Protocol ?
    propheadP prophead

    @parkerc Yes, I have 3 lua scenes, one for each switch for LAN monitoring and one for my Edgerouter for WAN monitoring. Each uses the same basic snmp framework with device specific tweaks and then saves results to an empty device and then I graph those device variables. I'm happy to share my code below:

    General Discussion

  • Semantics
    propheadP prophead

    When I stopped calling it a smart home and started calling it a home automation system my waf went up significantly. Go figure.

    General Discussion

  • SNMP - Is anyone leveraging info via the Simple Network Management Protocol ?
    propheadP prophead

    I use a lua scene to read snmp network usage from my switches. Working great for a couple of years now.

    General Discussion

  • Facial recognition triggering automation
    propheadP prophead

    Thats very impressive. Well done mate.

    IPCam

  • Vera-openLuup Ecobee Plugin
    propheadP prophead

    Donno but my dehang script recorded the ecobee plugin as the last log line before hang every single time. Either getting updates or revisions found

    Plugins

  • Vera-openLuup Ecobee Plugin
    propheadP prophead

    This strategy has proved fruitful. 48 hours with no hangs.

    Plugins

  • Vera-openLuup Ecobee Plugin
    propheadP prophead

    Got sick of ecobee plugin hanging my openluup box so I built a new pi just for the ecobee plugin and a scene which pushes values onto my main openluup box.

    Plugins

  • Water level sensor
    propheadP prophead

    How do you intend to mount your sensor?

    Hardware

  • Water level sensor
    propheadP prophead

    Keep us posted. I’m very interested in this.

    Hardware

  • Water level sensor
    propheadP prophead

    Float valves fail. Regularly. Pressure switch has no moving parts and has been significantly more reliable for me.

    Hardware

  • Water level sensor
    propheadP prophead

    Two (high and low)of these(bare wire):

    270 CAD

    The Parrot ATO System

    The Parrot ATO System

    The Parrot ATO system Intelligent, observant, long lived, colorful and always repetitive, the Parrot will be the companion you won't know how you lived without. Along with the fun new name comes the pedigree of a proven winner. How do you make improvements to the ATO with an unrivaled reputation...

    And two of these:
    Ecolink Intelligent Technology Z-Wave Easy Install, Battery Operated, Door/Window Sensor, White & Brown (DWZWAVE2-ECO) https://www.amazon.com/dp/B00HPIYJWU/ref=cm_sw_r_cp_api_i_3Je6Eb7ECMY2V

    And bob’s your uncle
    |-<:)

    Hardware
  • Login

  • Don't have an account? Register

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