Getting IOT devices / Geeni Smart Plugs working with OpenWRT / dd-wrt

After moving my wifi router to the OpenWRT firmware, my Geeni smart powerstrips were authenticating to the wifi router (I could see their MAC addresses) but not communicating properly (the device name was a question mark, and nothing could communicate with them).

The secret was to turn off WMM mode (Wireless Multi Media) and then they all immediately started working again.

The firewall gets in the way of HP printer device discovery, so you may need to assign the printer a specific IP address and then manually add the IP address to your clients.

HP Device Manger -> Setup -> Network/Ethernet/Wireless network. Then click Advanced Options, choose Manual Discovery, and type the IP address.

August 27th 2020: Orange County Florida COVID-19 Report

It’s August 27th, 2020, how is Orange County Florida doing with COVID-19?

The number of new cases per day has seen steady decreases since late July, possibly due to a mandatory mask ordinance.   The rate of decline has grown sluggish for the last two weeks and the number of daily cases is still ten times that recorded in April. Orange County is averaging 191 confirmed new cases per day over the last two weeks, compared to an average of 14 new cases per day in the first two weeks of April.

Deaths are lagging new cases by about 3 weeks and as the number of new cases have declined, the rate of deaths has also declined, averaging only 3 per day in the last two weeks.   Unfortunately, the total number of deaths in Orange County has gone from 179 on July 27th to 369 today (adding 190 deaths), a doubling of total deaths in the last month.

If the new deaths curve is actually lagging the new cases curve by 3 weeks, and also plateaus at the current levels, we will have a sustained period of 5-8 deaths per day for the next month, doubling the total number of deaths to date in the next month. [My unfortunately correct prediction from last month.]

A Positive Sign
A positive sign is that the percent positivity rate on tests has hovered just above the 5% goal (and has actually been below 5% for 4 of the last 14 days), indicating that community spread is almost at a manageable level.

How many people have been infected

The US Census bureau estimated that Orange County Florida has a population of 1,393,452 people (July 1st, 2019).     The Florida Department of health reports today that 35,245 cases of COVID-19 (confirmed by either a positive PCR or Antigen test result) have occurred in Orange County so far.     That means at least 2.5 percent (35245/1393452   =.02529330) of the population has been infected.

The actual number is likely to be higher, as many infections are asymptomatic, or not confirmed with a lab test.   Robert Redfield, the director of the CDC estimates that the number of people actually infected may be up to 10 times higher than confirmed with lab tests, putting an upper bound of 25% of the population of Orange County as already having been infected.

How many people have been hospitalized or died

Of those confirmed infected, 1,089 or 3 percent ( 1089 / 35245 = .0309) have been hospitalized, and 369 have died.   The death toll is currently 1 percent of all detected cases (369 / 35245 = 0.0104695701 ).

In the last month (July 27th to August 28th) the number of dead has doubled (from 179 to 369).

Florida average percentages for hospitalizations and deaths are 6.2% and 1.8% so Orange County has fared better than the rest of the state of Florida for hospitalizations and mortality so far.

Median Age is holding steady

Last month the median age of those infected was 42 , and this has held relatively steady, as 37 was the median age over the last 7 days.   [The median age of Florida residents is 42.2 ]

However, Orange County schools have re-opened on Friday Aug 21st, with at least 30% of the students opting for in-person schooling. I would not be surprised to see a dip in the median age as school age children begin to be infected at school. Fortunately, young children vary rarely face serious consequences from infection, but they may drive an uptick in community spread leading to deaths in older adults.

[Charts/Numbers used can be found in this open document spreadsheet: orange_county_florida ]

July 28th 2020: Orange County Florida COVID-19 Report

It’s July 28th, 2020, how is Orange County Florida doing with COVID-19?

The number of new cases per day has surged up, but appears to have plateaued at an average of 606 new cases a day for the last month. Deaths appear to lag new cases by about 3 weeks and have reached a rate of 7-8 per day.

upward surge of new cases, laged by new deaths 3-4 weeks later

If the new deaths curve is actually lagging the new cases curve by 3 weeks, and also plateaus at the current levels, we will have a sustained period of 5-8 deaths per day for the next month, doubling the total number of deaths to date in the next month.

How many people have been infected

The US Census bureau estimated that Orange County Florida has a population of 1,393,452 people (July 1st, 2019).     The Florida Department of health reports today that 27,820 cases of COVID-19 (confirmed by either a positive PCR or Antigen test result) have occurred in Orange County so far.     That means at least 2 percent (27820/1393452   = 0.019964) of the population has been infected.

The actual number is likely to be higher, as many infections are asymptomatic, or not confirmed with a lab test.   Robert Redfield, the director of the CDC estimates that the number of people actually infected may be up to 10 times higher than confirmed with lab tests, putting an upper bound of 20% of the population of Orange County as already having been infected.

How many people have been hospitalized or died

Of those confirmed infected, 756 or 2.7 percent ( 756 / 27820 = 0.02717469 ) have been hospitalized, and 179 have died.   The death toll is currently 0.64 percent of all detected cases (179 / 27820= 0.00643421).

Graph of deaths in OC Florida to date 179 total

In the last month (June 27th to July 27th) the number of dead has tripled (from 56 to 179).

Median Age is Increasing

Florida average percentages for hospitalizations and deaths are 5.6% and 1.38% so Orange County has fared better than the rest of the state of Florida for hospitalizations and mortality so far.   This may be due to the fact that South Florida was hit hard first, giving Central Florida a stark warning and time to prepare.

Unfortunately, the median age of the infected is rising. The first big surge of cases detected in mid-June (after bars reopened) were primarily very young individuals, with a median age of 22 for new cases. The current median age is 42, a generation older. As more older individuals are infected the percentages for hospitalizations and deaths may increase in Orange County to match the averages seen in the rest of Florida.

 

[Charts/Numbers used can be found in this open document spreadsheet: orange_county_florida.ods ]

 

Excess Deaths in the beginning of 2020

The CDC has a page hidden relatively deeply on their website that plots “excess” deaths (deaths over the expected average) for each week. All those red plus marks are weeks with detected “excess” deaths.

Most of the excess deaths are attributed to Covid-19, but there have also been some excess deaths attributed to other issues besides Covid-19. For example, more people than average are dying attributed to Alzheimer’s and Dementia:

Heart diseases:

And Diabetes:

This may be because people are avoiding hospitals and dying at home from problems that could have been survivable if they had gone to a hospital, or it could be due to issues with undetected infections.

Similar trends are occurring worldwide. If you are interested in knowing the “excess deaths” for your particular US state, the Washington Post has a nice interactive graph here.
Florida numbers look like this:

High Accuracy GPS with RTK in Orlando

Global Navigation Satellite Systems (GNSS)   receivers have made incredible improvements over the last twenty years. I remember having to stand outside for 10 minutes waiting for a US only Global Positioning System (GPS) receiver to lock onto 4 satellites so that I could get a fix with less than 100m accuracy (due to selective availability).   Now, you can buy a $220 GNSS receiver that can track 60 satellite channels simultaneously, start from cold in 25 seconds, lock into signals from satellites launched by four different countries (the USA, Russia, European Union, and China) and gets 2.5 to 5 meter accuracy all on it’s own without correction signals.

Here is a plot of the calculated location for a stationary antenna over time without correction signals (3D fix mode):

GPS location wondering around a 1m accuracy circle
As you can see, all of the readings are within a 1 meter circle of accuracy, which is quite good for finding your location on earth, but not (quite) accurate enough to drive a robotic lawnmower around and miss the petunias. [And from day to day you may be off by a few more meters…]
Continue reading

Build an 8×8 play structure with dimensional lumber

How to build an 8×8 play structure out of dimensional lumber.

8 foot by 8 foot play structure around a tree

360 view of the play structure. – Spherical Image – RICOH THETA

List of materials and tools for the basic structure (part 1)

Lumber:

  • 4x Pressure Treated (Ground Contact) 4×4 posts, 12′ long (8′ or 10′ possible for shorter platforms)
  • 2x Pressure Treated 2×8 beams, 8′ long
  • 9x Pressure Treated 2×6 Joists, 8′ long (possibly 10 or 11 needed if building box around a tree)
  • 6-8x Pressure Treated 2x4s (6 required for fancy corner braces and assembly bracing, but 8 suggested to make things easier. A few small pieces of scrap 2×4 are very useful for temporarily shelves to hold up boards if you are working alone.)

Hardware:

  • 12x 5/8″ galvanized lag bolts, 4″ long – mounting beams to 4×4 posts
  • 8x 5/16″ galvanized lag bolts, 4″ long – mounting end joists to 4×4 posts
  • 16x galvanized joist hangers (may need more if boxing the tree)
  • 100x 1.5″ galvanized structural screws – joist hangers to beams (can be replaced with 9 gauge galvanized nails if disassembly is not anticipated)
  • 100x 2.5″ galvanized structural screws – joists to beams (can be replaced with galvanized nails)
  • 1lb box of 3″ deck screws (used for attaching bracing together and temporarily mounting beams/joists, not actually part of the finished play structure)
  • Water sealing wood stain (to color/preserve the wood)

Tools Required:

  • Digging tools: Shovel & Post Hole Digger (+ clippers to cut small roots)
  • Wheelbarrow or other way to transport dirt and mix concrete
  • Hoe or concrete mixer, razor knife to open concrete bags
  • Cordless Drill, drill bits, screw drivers
  • Framing Level (4′ or longer suggested), large framing square
  • Tape Measure & pencil,
  • Metal rod (probe for roots), spraypaint or pegs to mark digging locations
  • Adjustable Wrench and/or ratchet driver and sockets for lag bolts
  • Hammer for setting the joist hangers and “persuading” joists into position.
  • Step ladder if you are building a tall platform, or are short.
  • Brush or sprayer for applying wood stain.

List of materials and tools for the flooring and corner braces (part 2)

  • 2x 4×8 exterior grade plywood (for floor)
    or
  • 17x 5.5″ composite deck boards (for floor)
  • 2 lbs of 2″ deck screws
  • Circular saw to clean up the edges of the deck boards (if used)
  • 4x-6x Pressure Treated 2x4s (8′ long) for the corner braces
  • Miter Saw (chop saw), circular saw, or hand saw (for simple corner braces)
  • Compound miter saw (if doing fancy corners)
  • 8x 5/16″ galvanized lag bolts (3″ long) for corner brace to beam/joist connections
  • 8x 5/16″ galvanized lag bolts (4″ long) for corner brace to 4×4 post connections
  • Premium waterproof wood glue for corner brace assembly
  • 2.5″ galvanized nails (or extra 2.5″ structural screws) for corner brace assembly

 

2×4 Basics Bench Brackets

I used 10 2×4 basics bench brackets to add bench/walls to 2 sides of the play structure. They come with all of the hardware you need, but I also purchased/used the following lumber for the bench seats & backs:

6x   2x6x10 Pressure Treated boards for seats & top-rail.
6x 2x4x10 Pressure Treated boards for back rests.

[an additional 4x 2x4x10 pressure treated boards are needed if you want to include the bottom safety rails.]

If you have a VR headset, or just want to wave your phone around in the air, you can watch this 360 video of my son running through the play structure:

 

I used OpenScad to mock-up the basic design to determine what lumber to buy for the basic platform and visualize what it would look like. You can download it here: plan_boxtree.scad

What is the COVID-19 Case Fatality Rate (Death Rate)?

Nobody knows for sure what the Case Fatality Rate for Covid-19 is in the general population. (It changes based upon the demographics of the population and the quality of healthcare in the region, and can not be accurately calculated until a large number of people have fully recovered.) Currently the US estimate is hovering around 6% of those infected die, but this is likely inflated by the fact that many cases are asymptomatic and/or are never confirmed by a test.

Estimates from various countries have ranged from 0.07% in Singapore to 6% in the United States. Because many cases may be un-diagnosed this 6% estimate is likely to be high. (In Italy it was 14%.)

But due to the involuntary experiment currently spreading through the prisons of Ohio, along with good reporting by the state, we can generate an estimate of the CFR within the Ohio prison system.

On May 22nd 2020 when I downloaded DRCCOVID-19Information from the https://coronavirus.ohio.gov/ website, the corrections system had 4090 prisoners recovered from COVID-19, with 61 deaths (and 277 inmates still infected).   If we discount the inmates who are still infected (not yet recovered) and only look at those who have recovered (or died) we get a case fatality rate of 61 / (61 + 4090) = 61 / 4151 = .01469525 or 1.469 percent (you can round that up to 1.5%)

Of course, if 200 of those 277 “not yet recovered” are currently on ventilators, this CFR number will go up in the future….but this are the numbers we have to work with today.

So 1.5% of Ohio prisoners who were infected with Covid-19 have died.   (Ohio has 35,464 prisoners in isolation, so approximately 11.7% of them have been infected).

This CFR is 15 times higher than that of the seasonal flu (0.1%).   Of course, because prisoners are not generally representative of the US population (the demographics of prisoners skew young, while oldest adults are more frequently killed by covid-19) this CFR will not be the same as for the general population. But it does give us a ballpark number to think about for a lower limit.

If we take 1.5% CFA times 11.7% infected times the 330 million population of the US, we would get 579,150 deaths. If we let it spread to 60% of the population, that would be 2.97 million deaths.

Of course, other research has estimated the CFR in the US to be hovering around 6%.
But that is likely due to missing many un-diagnosed cases because of lack of testing.
So I would use the 1.5% as a lower bound on the CFR in the general population.

Luckily, most Americans are not housed in prisons and can social distance to more effectively prevent the spread of covid-19, so we have not gotten anywhere near 11.7% of the population infected. Yet.

It is also uncertain if prisoners get better healthcare in prison than the general population, but my guess would be no (at least for the 89% of people who could afford health insurance before the pandemic hit).

Related evidence:

  • “Among the 3,711 passengers on the Carnival Corp-owned Diamond Princess cruise ship that was quarantined in Yokahama, Japan in February, 712 tested positive for the coronavirus, according to the CDC. Of the passengers who tested positive, 47% were asymptomatic at the time of testing; nine ultimately died. ”
    9 deaths / 712 confirmed positive = 1.26% case fatality rate. [Source]
  • A related scientific paper with similar numbers (1.3%)   can be found here.
  • According to the Marshal Project, on May 24th 2020, at least 415 inmates have died in the US, with at least 29,000 infected (which is a CFR of 1.43%).

 

Schwarzenegger voice: It’s not a flu!

Covid-19 is a novel coronavirus, and is not a flu (influenza). It is more contagious than the flu, and more deadly than the 2009-2010 N1H1 swine flu.

For example, the first case of the H1N1 flu in America was detected on April 15th 2009.   86 days later, on June 10th 2009, there were 211 recorded deaths (37,246 cases).

The first case of Covid-19 in America was detected on January 20th 2020. 86 days later (April 15th, 2020) there were 32,900 deaths (654,425 cases).

In fact, the CDC’s best estimates place the total death toll of the H1N1 flu for the entire year (April 12, 2009 to April 10, 2010) in the range of 12,469 deaths (8,868-18,306).

In summary, the (86 day) fatalities of covid-19 is already three times higher than the full year (365 day) fatalities from H1N1, even with the physical distancing and safer at home policies attempting to stop transmission.   This is not #JustAnotherFlu.

Why only 100,000 deaths would be amazing

National officials have stated that we may see 100,000-200,000 deaths from Covid-19. I hope the death toll will be lower, but worry it may be much higher.

From April 12, 2009 to April 10, 2010, CDC estimated there were 60.8 million cases (range: 43.3-89.3 million), 274,304 hospitalizations (range: 195,086-402,719), and 12,469 deaths (range: 8868-18,306) in the United States due to the (H1N1)pdm09 virus. – https://www.cdc.gov/flu/pandemic-resources/2009-h1n1-pandemic.html

These numbers indicate that the H1N1 (Swine flu) had a case fatality ratio (CFR) in the US of between .04 and .009 percent. Note that 1 in 3 adults over 60 had antibodies to H1N1, perhaps from an exposure in their childhood.

The World Health Organization reported that 1 in 5 people (20-27%) were infected by H1N1 in the fist year, and “Based on an estimate of around 200,000 deaths, they said the case fatality ratio was probably less than 0.02 percent.” – https://www.reuters.com/article/us-flu-h1n1-pandemic-idUSBRE90O0T720130125

In England the CFR was calculated to be 0.026 percent.

The contagiousness of H1N1 (R0) is estimated to be between 1.4 and 1.6, which means that every infected person infects 1.4 to 1.6 other people. (As long as this number is above 1.0, the growth rate is exponential.)

The Bad News

Reports from China suggest that with good medical support (i.e. hospitals not overloaded) the case fatality rate for COVID-19 is as low as 0.7 percent. [The CFR in Italy where hospitals are overloaded is currently in the 3.7 – 11 percent range.]

The contagiousness of COVID-19 is estimated to be as high as 2.7 (every infected person infects 2.7 others) with no stay-at-home orders. Seattle is one of the first cities in the US to implement physical distancing procedures and the growth rate there has slowed. One model predicts that the R0 has been reduced to 1.4 by the physical distancing implemented in Washington State, which is much better than 2.7, but still about as infectious as the H1N1 flu.

If COVID-19 infects 60.8 million people in the US, and has a CFR of 0.7 percent, that is 425,600 deaths.   [Of course, if it infects 60 million people the case fatality rate may jump as all of our hospitals will be overwhelmed, because about 10-15% of infections normally result in hospitalization.] So an R0 of 1.4 is not good enough.

As a point of comparison, the CDC estimates that smoking results in more than 480,000 deaths in the USA every year. (1 in 5 deaths annually.)

The only way to prevent this is to reduce the contagiousness with extreme physical distancing. In China they were able to bring the R0 number below 1, allowing the growth rate to fizzle out with severe quarantine methods. South Korea was able to achieve a similar result with ample testing and contact tracing / containment.

 

Related news stories & Updates

The Privacy Preserving Anti-Coronavirus app Google can and should build

Many people already trust Google with their location data (unless you proactively turned off location history on your android phone and Google maps, Google knows where you have been and how long you spent there.)   Obviously, all of these people are trusting Google to follow it’s privacy policy and not release this information. [Google is not alone here, the major mobile phone carriers also have all this data, and you can’t turn that location tracking off….]

What happens when you start to cough, get a fever, and (can hopefully) get tested for the Coronavirus? If you have a positive result, the local health department should be asking you who you interacted with in the last 5-10 days, and then contact THOSE people to tell them they should self-isolate and get tested if they come down with symptoms.   Presumably you’ll tell them about everybody you remember interacting with, but you might forget that 3 days ago you paid for gas at the counter of the local 7-11, or not know the name of that guy that traded you his Aldi cart for your virus covered quarter so he wouldn’t have to return it to the cart stand to get his own quarter deposit back.

Here is where Google can help everybody. Once you have received a positive diagnosis, your   local health department sends Google your gmail address (google account name).   Google emails you asking for your permission to share your location history for the last 5-10 days with the Health Department.   If you give permission, Google will share that data with the health department, who now knows that you spent 8:10-8:20am last Friday at the 7-11 and 4:30-5pm at Aldi grocery shopping on Tuesday. Having this location history can potentially help the health department, but what they really need is to be able to contact the people you interacted with.

Google can help with this by cross-checking your location history with the location history of everyone else who uses an Android phone (50-70% of the population). People who may have crossed your path could be sent a proactive email letting them know that “From 8:10-8:20am on Friday a person who has subsequently tested positive for coronavirus visited the same 7-11 that you visited from 8:15-8:25am”.   No need to share your name, just the fact that exposure was possible. Those people could be given the option to share their contact information with the local health department by clicking a link. This would allow the local health department to sort by risk, and they might choose to make a followup phone call to those people who spent a considerable amount of time in the same locations as you. (They probably wouldn’t have the manpower to call everyone that was at the same gas station, but if you forgot about the monthly bookclub meeting where 10 people’s phones spent 2 hours near your phone, this could be incredibly useful information for them to have….)

The key privacy preserving idea is that sharing your location data would be optional.
If you chose to share your location history, Google would anonymously notify those people who may have intersected with your travel history, and then THEY would have the choice to share their contact information (or not) with the health department (not you). Most people (who have not turned off location history) already “trust” google with their location history, so proactively cross-checking to find intersections with anonymous notifications should not be seen as a major a privacy violation.

Obviously, it would be scary to receive an email from Google telling you that you might have used the same gas-pump as somebody infected with the coronavirus, and there would certainly be a LOT of false positives (If the cross-checking algorithm was too aggressive, it might pair up everybody who stopped at the same stoplight at the same time in their commute, for example….).   I trust that the UX (User Experience) people (and lawyers) at Google could write the emails in a suitably non-threatening way “Out of an abundance of caution, we wanted to let you know that there is a small possibility that you shared the same location as a person who later tested positive for the coronavirus.”

I argue that a little bit of scaring would be a net social benefit. If you were receiving a daily email with a list of the times and places you were near an infected person, social distancing would go up immediately. If Google is more worried about scaring away their users than the global good, they could make a website that people would have to deliberately visit to find out if any coronavirus positive intersections were found for their location history, but this would remove significant portions of the benefit.

I’m sure that many smart people inside Google have already come up with this idea and there are internal debates about privacy and public relations going on internally between them and the lawyers. We should tell Google that this is a perfect time to “Not be Evil”.

 

Links:

Singapore has created an application like this, but it requires that everybody install the same application to trade encrypted contact information. So either the government makes it a requirement that you run the application to leave your house, or it is not as effective.

MIT has released an app that can log your location history completely privately, but it does not collect contact information from others, and has no way to cross-correlate with other’s tracking history.

Apple & Google are working together on ways for iPhones and Android devices to work natively with contact tracing applications.
https://www.apple.com/newsroom/2020/04/apple-and-google-partner-on-covid-19-contact-tracing-technology/