tag:blogger.com,1999:blog-42063080264278766812024-03-05T08:13:42.239-08:00Adventures in Home AutomationAvatar42http://www.blogger.com/profile/02989695403513365236noreply@blogger.comBlogger83125tag:blogger.com,1999:blog-4206308026427876681.post-41718647305157194722022-11-21T15:10:00.002-08:002022-11-21T15:10:18.310-08:00Mastodon gateway on Linux<h2 style="text-align: left;">Install toot</h2><p>As root (or add sudo to commands) install Python 3.X if you have not already with</p><p><i><b>yum install python3</b></i></p><p>then run</p><p><b><i>pip3 install toot</i></b></p><p><b><i>toot login</i></b></p><p>Answer instance with your instance hostname, then get code from browser. Note I had an issue (see pic) when I tried this again for a second server which appears to be and server customization issue. Fortunately I was able to copy the config file from the first server to the second. This would indicate the info is not client host of user linked.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDxRxdtvzVQbWdIMyNymKHLfnVIb9-Hqma9M2AbaeonwAtT575LDDQTNlRHhGZ3MwU3aONw_SfX62HrkBBLoDa_PoJniFhbiLsxqNlfZBv-MGPfzH_VQ8YKH27LWJCgybPR94KD1r53OoQdw_uanhLMmR6xGX7UGXp7j2b4r3mTZ9UXyQHis3IKdTn/s938/Screenshot%202022-11-21%20122137.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="484" data-original-width="938" height="330" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDxRxdtvzVQbWdIMyNymKHLfnVIb9-Hqma9M2AbaeonwAtT575LDDQTNlRHhGZ3MwU3aONw_SfX62HrkBBLoDa_PoJniFhbiLsxqNlfZBv-MGPfzH_VQ8YKH27LWJCgybPR94KD1r53OoQdw_uanhLMmR6xGX7UGXp7j2b4r3mTZ9UXyQHis3IKdTn/w640-h330/Screenshot%202022-11-21%20122137.png" width="640" /></a></div><p>Once the config file is set up for the user you can test with something simple like</p><p>toot post "toot test"</p><p>Note the double quotes. See the <a href="https://toot.readthedocs.io/en/latest/usage.html#post-a-status" target="_blank">usage docs</a> for more complicated posts.</p><h2 style="text-align: left;">Toot when server starts</h2><p>We need to create some files with:</p><p><b><i>vi /root/tootUp.sh</i></b></p><p><span style="background-color: #cccccc;">#!/bin/sh</span></p><p></p><p><span style="background-color: #cccccc;">toot post "$HOSTNAME is back up" </span></p><p><i><b>chmod 744 /root/tootUp.sh</b></i></p><p>The <b style="font-style: italic;">2>&1 | tee -a /var/log/toots.log </b>bit is only if you want to log the toots.</p><p><b><i>vi /etc/systemd/system/toot.service</i></b></p><p><span style="background-color: #cccccc;">[Unit]</span></p><p><span style="background-color: #cccccc;">Description=Toots that the system is back up</span></p><p><span style="background-color: #cccccc;">After=network.target</span></p><p><span style="background-color: #cccccc;"><br /></span></p><p><span style="background-color: #cccccc;">[Service]</span></p><p><span style="background-color: #cccccc;">Type=simple</span></p><p><span style="background-color: #cccccc;">ExecStart=/root/tootUp.sh</span></p><p><span style="background-color: #cccccc;">TimeoutStartSec=0</span></p><p><span style="background-color: #cccccc;"><br /></span></p><p><span style="background-color: #cccccc;">[Install]</span></p><p><span style="background-color: #cccccc;">WantedBy=default.target</span></p><p>Now enable it, try it and check it with:</p><p><b><i>systemctl enable toot.service</i></b></p><p><b><i>systemctl start toot.service</i></b></p><p><b><i>status -l toot.service</i></b></p><p>If everything is working then you should see something like this:</p><p># systemctl status -l toot.service</p><p>● toot.service - Toots that the system is back up</p><p> Loaded: loaded (/etc/systemd/system/toot.service; enabled; vendor preset: disabled)</p><p> Active: inactive (dead) since Mon 2022-11-21 14:24:52 EST; 19s ago</p><p> Process: 2622 ExecStart=/root/tootUp.sh (code=exited, status=0/SUCCESS)</p><p> Main PID: 2622 (code=exited, status=0/SUCCESS)</p><p><br /></p><p>Nov 21 14:24:51 server.dea42.org systemd[1]: Started Toots that the system is back up.</p><p>Nov 21 14:24:52 server.dea42.org tootUp.sh[2622]: Toot posted: https://techhub.social/@avatar42/109383430460374213</p><h2 style="text-align: left;">ssh gateway</h2><p>To be safer you should really create a toot user. As root run</p><p><b><i>adduser toot</i></b></p><p><b><i>passwd toot</i></b></p><p><b><i>mkdir -p ~toot/.config/toot</i></b></p><p><b><i>chown -R toot.toot ~toot/.config</i></b></p><p><b><i>chmod -R 700 ~toot/.config</i></b></p><p><b><i>cp /root/.config/toot/config.json ~toot/.config/toot</i></b></p><p><b><i>chown -R toot.toot ~toot/.config/toot/config.json</i></b></p><p><b><i>chmod 600 ~toot/.config/toot/config.json</i></b></p><p><b><i>su - toot</i></b></p><p>Note you are now acting as user toot. </p><p>Create a simple post script. This example is as basic as it gets you can be way more fancy.</p><p><b><i>vi tootPost.sh</i></b></p><p><span style="background-color: #cccccc;">#!/bin/sh</span></p><p><span style="background-color: #cccccc;">toot post "$*" 2>&1 | tee -a /var/log/toots.log</span></p><p><b><i>chmod 755 tootPost.sh</i></b></p><p>You might want a quick test like</p><p><b><i>~toot/tootPost.sh ssh gateway test</i></b></p><p>Note no double quotes. The script deals with that which we will need for the next bit.</p><h2 style="text-align: left;">Using the ssh gateway.</h2><p>For the examples below I'm using the gateway IP address of 10.10.2.200. Replace it with yours.</p><p>Login to the PC you want to "toot" from.</p><p>Open a command / terminal window and change to the folder you want the toot files in.</p><p>Generate a key with</p><p><b><i>ssh-keygen -q -f toot_rsa</i></b></p><p>Take defaults / just press ENTER at each prompt.</p><p>Note this is creating a private key file we can use separately from default so it does not need a password on it.</p><p>Now we want to give the server the public copy so in future they will know it is us. It creates the .ssh folder if need be.</p><p><b><i>cat toot_rsa.pub | ssh toot@10.10.2.200 -o StrictHostKeyChecking=no "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys" || exit 1</i></b></p><p>It will ask you for the password to connect but you will not need to again. You can test this with</p><p><b><i>ssh -o StrictHostKeyChecking=no -i ./toot_rsa toot@10.10.2.200</i></b></p><p>or if you just want to go for it</p><p><b><i>ssh -o StrictHostKeyChecking=no -i ./toot_rsa toot@10.10.2.200 ./tootPost.sh ssh gateway test from client</i></b></p><h2 style="text-align: left;">toot and RSS feed</h2><p>Lastly we can use this setup to toot an RSS feed.</p><p><a href="https://pypi.org/project/feed2exec/" target="_blank">Install feedexec</a> back on the gateway server as user toot. </p><p><b><i>pip3 install feed2exec</i></b></p><p>Note you may need to install some dependencies as well. I needed to install these too.</p><p><b><i>pip3 install sqlite3 sqlite pysqlite</i></b></p><p>Test with </p><p><b><i>feed2exec parse https://www.nasa.gov/rss/dyn/breaking_news.rss --output echo --args '{item.title}'</i></b></p><p>If that works, create the file ~/.config/feed2exec.ini</p><p><b><i>vi ~/.config/feed2exec.ini</i></b></p><p><span style="background-color: #cccccc;">[SpaceStation]</span></p><p><span style="background-color: #cccccc;">url = https://www.nasa.gov/rss/dyn/shuttle_station.rss</span></p><p><span style="background-color: #cccccc;">output = feed2exec.plugins.exec</span></p><p><span style="background-color: #cccccc;">args = /home/tootPost.sh {item.title}. For details see {item.link}</span></p><div>Just change the RSS URL and message as needed. To then post any new items call</div><div><b><i>feed2exec fetch</i></b></div><div>or better yet set up cron with</div><div><b><i>crontab -e</i></b></div><div>adding the line</div><div><span style="background-color: #cccccc;">00 * * * * /home/toot/.local/bin/feed2exec fetch</span></div><div>to run it every hour.</div><div><br /></div>Avatar42http://www.blogger.com/profile/02989695403513365236noreply@blogger.com0tag:blogger.com,1999:blog-4206308026427876681.post-68450857250127531062022-03-31T09:44:00.009-07:002022-04-07T18:03:41.534-07:00iRedMail on CentOS 8 as aggregating mail server<p>CPU fan went on my home mail server (that pulls in email from all my accounts) and since it is so old (a Core 2 Duo) I decided to just use one of the old security camera servers left over from an upgrade instead.</p><h1 style="text-align: left;">Things assumed you know</h1><p>Note I use vi to edit files since it is including in almost every Linux and Unix install. If you are not familiar with any available editors look at this <a href="http://www.atmos.albany.edu/daes/atmclasses/atm350/vi_cheat_sheet.pdf" target="_blank">vi Cheat Sheet</a> for help.</p><p>To see active lines in move config files you can use the command</p><p><i><b>grep -v "#" /etc/postfix/main.cf | grep -v "^[[:space:]]*$"</b></i></p><p>where <b>/etc/postfix/main.cf </b> is the config file you want to see the active lines of. </p><p>For the examples below I'm using these values. Where you see them replace with your own.</p><p></p><ul style="text-align: left;"><li>host=<b>mail</b></li><li>domain=<b>dea42.us</b></li><li>full qualified name=<b>mail.dea42.us</b></li><li>server IP=<b>10.10.2.200</b></li><li>end email address = <b>deabigt@dea42.us</b></li><li>placeholder for passwords = <b>P@$$w0rd</b></li></ul><p></p><p>Unless otherwise mentioned all <b><i>commands</i></b> should be run as root (or add <b><i>sudo </i></b>in front of them)</p><p>A typo can cause emails to be lost so you will want to have a server to test fetching emails from that you can limit what is in the "inbox". Either an account that has separate imapped folders (not gmail) or test account you can send test emails to like a gmail account you do not use for anything important. Once you think you have things working you can try a few emails a time with you test account and even your main account if it has separate folders.</p><h1 style="text-align: left;">And things you should</h1><p>I tried to go down the road of installing CentOS 7 but iRedMail makes that virtually impossible. You would have to hack it so much you might as well just install it manually.</p><p>The only web server option is <a href="https://www.nginx.com/" target="_blank">Nginx</a>. If you do not select it you will not get web mail.</p><h1 style="text-align: left;">Steps:</h1><h2 style="text-align: left;"><a href="https://www.centos.org/download/" target="_blank">Get CentOS 8 Stream</a></h2><div>Note the "DVD" ISOs will not fit on a DVD. You will need a Blu-Ray or USB stick 16 GB or higher. </div><div>If you need help with that see <a href="https://www.lifewire.com/how-to-burn-an-iso-file-to-a-usb-drive-2619270" target="_blank">How to Burn an ISO File to a USB Drive.</a> Be sure to create a user other than root and put them in the wheel group.</div><div><br /></div><div>Note after install you will want to turn on your network interface as it is off by default. Also the name local.localhost for the computer name is misleading. If you enter name.domain as in mail.dea42.us it changes the name to mail-dea42-us.</div><div><br /></div><div>the simple fix is to run the command</div><div><b><i>hostname -b mail.dea42.us</i></b></div><div><br /></div><h2 style="text-align: left;"><a href="https://computingforgeeks.com/how-to-install-iredmail-mail-server-on-centos-7/" target="_blank">Install iRedMail</a></h2><div>iRedMail gets you a web mail server without a lot of config file editing but note the "<b>And things you should</b>" above.</div><div><br /></div><div>The above link is for iRedMail 1.4 but has some commands missing in the <a href="https://docs.iredmail.org/install.iredmail.on.rhel.html#preparations" target="_blank">official doc</a>.</div><div>Ignore the implied CentOS 8 option. As of this writing CentOS 8 is EOL and your only non stream option is 7.9.</div><div><br /></div><div>Note some stuff is in CentOS 8 stream so ignore any already installed "errors".</div><div><br /></div><div>SOGO is not selected by default. I added it though I doubt I'll need it. Note running <b><i>yum update</i></b> will get errors trying to update this due to a library conflict. </div><div><br /></div><div>Note I have a thing about putting large amounts of expanding data in the / partition so for mail storage I used <b>/home/var/vmail</b> instead of <b>/var/vmail</b>.</div><div><br /></div><div>Once done, go add your user to the mail system with the iRedMail panel by pointing your browser to https://10.10.2.200/iredadmin (note I'm using the IP here since it is on my local network).</div><div><br /></div><div>To start you can only log into the admin panel and web mail as postmaster@dea42.us. As the last bit of the install says you really want to read iRedMail.tips and move it to a secure location since it contains login info in plain text.</div><div><br /></div><h2 style="text-align: left;">Bringing over old data.</h2><div>Once you have you web mail users created you can tar up your old emails in the user's Maildir folder. May be under user's home or some convoluted vmail path. For instance for <b>deabigt@dea42.us</b> on the old server was <b>/home/var/vmail/vmail1/dea42.us/d/e/a/deabigt-2018.03.23.20.35.01/Maildir</b> and on the new server <b>/home/var/vmail/vmail1/dea42.us/d/e/a/deabigt-2022.03.22.17.01.28/Maildir</b>. I moved the Maildir folder to Maildir.bak just to be safe but no really needed.</div><div><br /></div><div>You can also export and import your filters but that is it without access to the DB. To get indenties for example you will need to export tables, possibly modify the SQL and then import in to the new DB.</div><div><br /></div><h2 style="text-align: left;"><a href="https://www.techsupportpk.com/2020/01/how-to-set-up-phpmyadmin-with-nginx-centos-8-rhel-8.html" target="_blank">Install phpMyAdmin</a></h2><div>Note iRedMail sets up the html folder to be the more standard <b>/var/www/html</b> instead of Nginx's normal <b> /usr/share/nginx/html/</b></div><div><br /></div><div>Note use this <a href="https://phpsolved.com/phpmyadmin-blowfish-secret-generator/" target="_blank">Generate blowfish secret link</a> to generate a random encrypt key of the 32 characters needed. </div><div><br /></div><div>Also the old php.info() is disabled by default. I usually change it to a honeypot anyway so try making <b>/var/www/html/info.php</b> this instead to test php and log any malware looking for it.</div><div><div><span style="background-color: #cccccc;"><html></span></div><div><span style="background-color: #cccccc;"><head><title>honeypot Access logger</title></head></span></div><div><span style="background-color: #cccccc;"><body><h1>Honeypot logger</h1></span></div><div><span style="background-color: #cccccc;"><?php</span></div><div><span style="background-color: #cccccc;">$log="/var/log/nginx/honeypot.log";</span></div><div><span style="background-color: #cccccc;">$el = date("Y-m-d h:i:s",time())." ".$_SERVER['REQUEST_URI'] . " accessed from " . $_SERVER['REMOTE_ADDR'] . " via " . $_SERVER['SERVER_PROTOCOL'] . "- " . $_SERVER['REQUEST_METHOD'] . " with query " . $_SERVER['QUERY_STRING'];</span></div><div><span style="background-color: #cccccc;">$hl = error_log($el.PHP_EOL, 0);</span></div><div><span style="background-color: #cccccc;">echo "<br>Logged $el - $hl <br><br>";</span></div><div><span style="background-color: #cccccc;">foreach (getallheaders() as $name => $value) {</span></div><div><span style="background-color: #cccccc;"> echo "$name: $value<br>";</span></div><div><span style="background-color: #cccccc;"> $el = $el . " :" . $name .": " . $value;</span></div><div><span style="background-color: #cccccc;">}</span></div><div><span style="background-color: #cccccc;">foreach ($_REQUEST as $name => $value) {</span></div><div><span style="background-color: #cccccc;"> echo "$name: $value<br>";</span></div><div><span style="background-color: #cccccc;"> $el = $el . " :" . $name .": " . $value;</span></div><div><span style="background-color: #cccccc;">}</span></div><div><span style="background-color: #cccccc;">$hl = error_log($el, 3, $log);</span></div><div><span style="background-color: #cccccc;">?></span></div><div><span style="background-color: #cccccc;"></body></span></div><div><span style="background-color: #cccccc;"></html></span></div></div><div><br /></div><div>You can then add a cron script to notify you if something hits this and you will get more info than you probably want about what accessed it. For example run</div><div><b><i>crontab -e</i></b></div><div>and add this to the bottom</div><div><div><br /></div><div><span style="background-color: #cccccc;"># Honeypot checker</span></div><div><span style="background-color: #cccccc;">15 * * * * /bin/grep -v 10.10.2.183 /var/log/nginx/honeypot.log</span></div></div><div><br /></div><div>Every hour at a quarter past if there is anything in there not from 10.10.2.183 the user (root assumed) will get and email with the info till you empty the log. I'm assuming a small network here where this is unlikely to get many hits. Something exposed to the internet should of course be a lot more complex.</div><div><br /></div><div>Now you should be able to export and import data from your old system DB into the new one. Though you might need to edit user IDs if not added in same order. </div><div><br /></div><h2 style="text-align: left;">Fetchmail</h2><div><a href="https://www.fetchmail.info/fetchmail-man.html" target="_blank">Man page</a> <a href="https://gitlab.com/fetchmail/fetchmail" target="_blank">GitLab repo</a></div><div>This is the aggregating bit. It will go get mail from other servers and deliver it here. <a href="https://www.webmin.com/" target="_blank">Webmin</a> has a simple web interface for this but iRedMail does not. Installing both could cause conflicts but the free iRedMail admin panel seems to do so little it is probably worth the risk.</div><div><br /></div><h2 style="text-align: left;"><a href="https://www.webmin.com/rpm.html" target="_blank">Install Webmin</a> </h2><div><br /></div><h1 style="text-align: left;">Getting to actually work</h1><div>After all that it appears it did not get setup correctly since fetchmail retrieved email but postfix then tried to forward them but could not connect to localhost according to logs.</div><div><br /></div><div>Issues (found) and fixed while debugging:</div><div><ul style="text-align: left;"><li>Run <b><i>cp /etc/hosts /var/spool/postfix/etc/hosts</i></b> (logs said they were out of sync)</li><li>Run <b><i>cp /etc/localtime /var/spool/postfix/etc/localtime</i></b> (logs said they were out of sync)</li><li>On Roundcube check folders are all subscribed. (I found many of mine were not so were hidden.)</li><li>Add <b>no sslcertck</b> to my user's <b>~/.fetchmailrc</b> since Webmin does not seem to have a way to add it. (Testing server had a self signed cert.)</li><li>Add <b>Delivered-To ignore</b> to header checks. (Fixes issues with postfix forwarding to the original to.) <a href="https://unix.stackexchange.com/questions/642677/postfix-delivery-problem-status-bounced-mail-forwarding-loop-for-jeffexample" target="_blank">Details on how to do that here</a>. </li><li>Add <b>--sslproto~TLS1.2+</b> to fetchmail command in <a href="https://10.10.2.200:10000/config.cgi?module=fetchmail&section=line1&search=&nnext=Next&xnavigation=1" target="_blank">Webmin</a>. (Test server did not do TLS1.3)</li></ul></div><div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9u77Pz4PCrBRerhdHAZNFCLsRnPuf5tlTqcJiBvo2KA010bLlxU5bcFTTjIBZTRtwrOUMwhmp2lsUEH_Naqk8oSEpREdjKYi-3oihM9ChgVlWld1khRhBvKdiq1CjcfepBO-PH2OvZ9wqQP6hW_JK47KBeWBdUajR9j9qZQrJDz8pCLzmFztYTfye/s577/2022-03-25_11-12-05.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="287" data-original-width="577" height="318" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9u77Pz4PCrBRerhdHAZNFCLsRnPuf5tlTqcJiBvo2KA010bLlxU5bcFTTjIBZTRtwrOUMwhmp2lsUEH_Naqk8oSEpREdjKYi-3oihM9ChgVlWld1khRhBvKdiq1CjcfepBO-PH2OvZ9wqQP6hW_JK47KBeWBdUajR9j9qZQrJDz8pCLzmFztYTfye/w640-h318/2022-03-25_11-12-05.jpg" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">https://10.10.2.200:10000/config.cgi?module=fetchmail&section=line1&search=&nnext=Next&xnavigation=1</td></tr></tbody></table><br /></div><div>I sorted the above by going back to basics, testing each link in the chain. To start testing open an extra window and as root run</div><div><b><i>tail -f /var/log/maillog</i></b></div><div>to see any errors while running mail tests.</div><div><br /></div><div><br /></div><div><h3><a href="https://blog.tinned-software.net/setup-dovecot-with-pam-authentication-and-ssl-on-centos/" target="_blank">Test Postfix</a></h3><div>For this to work you may need create the tmp, new and cur email folder for the test user. I'm using deabigt for my username which Roundcube had already created them for. Type the stuff in <b style="background-color: #fcff01;">bold,</b> stuff in <span style="background-color: #cccccc;">grey</span> are the responses you should see (or something close to).</div><div><br /></div><div><b style="background-color: #fcff01;"><i>telnet localhost smtp</i></b> (you will be asked if you want to install if you have not already) </div><div><div><b><br /></b></div><div><span style="background-color: #cccccc;">Trying ::1...</span></div><div><span style="background-color: #cccccc;">Connected to localhost.</span></div><div><span style="background-color: #cccccc;">Escape character is '^]'.</span></div><div><span style="background-color: #cccccc;">220 localhost.localdomain ESMTP Postfix</span></div><div><b style="background-color: #fcff01;">ehlo localhost</b></div><div><span style="background-color: #cccccc;">250-localhost.localdomain</span></div><div><span style="background-color: #cccccc;">250-PIPELINING</span></div><div><span style="background-color: #cccccc;">250-SIZE 10240000</span></div><div><span style="background-color: #cccccc;">250-VRFY</span></div><div><span style="background-color: #cccccc;">250-ETRN</span></div><div><span style="background-color: #cccccc;">250-ENHANCEDSTATUSCODES</span></div><div><span style="background-color: #cccccc;">250-8BITMIME</span></div><div><span style="background-color: #cccccc;">250 DSN</span></div><div><b style="background-color: #fcff01;">mail from:<deabigt@dea42.us></b></div><div><span style="background-color: #cccccc;">250 2.1.0 Ok</span></div><div><b style="background-color: #fcff01;">rcpt to:<deabigt@dea42.us></b></div><div><span style="background-color: #cccccc;">250 2.1.5 Ok</span></div><div><b style="background-color: #fcff01;">data</b></div><div><span style="background-color: #cccccc;">354 End data with <CR><LF>.<CR><LF></span></div><div><b style="background-color: #fcff01;">This is a test email from telnet</b></div><div><b style="background-color: #fcff01;">.</b></div><div><span style="background-color: #cccccc;">250 2.0.0 Ok: queued as 62AD46011817</span></div><div><b style="background-color: #fcff01;">quit</b></div><div><span style="background-color: #cccccc;">221 2.0.0 Bye</span></div><div><span style="background-color: #cccccc;">Connection closed by foreign host.</span></div></div><div><b><br /></b></div><div>If you get the queued line you know it tool it OK.</div></div><div><br /></div><div><h3><a href="https://wiki.dovecot.org/TestInstallation" target="_blank">Testing Dovecot</a></h3><div><div><div>Next we want to check we can read our emails from via Dovecot.</div><div><br /></div><div>Run</div><div><b><i>netstat -tunap | grep dovecot</i></b></div><div>to see what port(s) dovecot is listening on</div></div><div><br /></div><div>Short version. Run</div><div><div><b><i>openssl s_client -connect </i></b><b><i>10.10.2.200:</i></b><b><i>993</i></b></div><div>or</div><div><b><i>openssl s_client -connect 10.10.2.200:143 -starttls imap</i></b></div><div><br /></div><div>You should see bunch of SSL handshake stuff then </div></div><div><span style="background-color: #cccccc;">. OK Pre-login capabilities listed, post-login capabilities have more.</span></div><div>as the last line.</div><div><br /></div><div>Send (with username a password for user you have set up).</div><div><b><i>a login "deabigt@dea42.us" "P@$$w0rd"</i></b></div><div>and you should see</div><div><div><span style="background-color: #cccccc;">* CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS BINARY MOVE SNIPPET=FUZZY SPECIAL-USE</span></div><div><span style="background-color: #cccccc;">a OK Logged in</span></div><div><br /></div><div>Just to be sure send</div><div><b><i>c list "" *</i></b></div><div>and you see something like this (depending of what folders you created)</div><div><span style="background-color: #cccccc;">* LIST (\HasNoChildren \Sent) "." Sent</span></div><div><span style="background-color: #cccccc;">* LIST (\HasNoChildren \Drafts) "." Drafts</span></div><div><span style="background-color: #cccccc;">* LIST (\HasNoChildren \Trash) "." Trash</span></div><div><span style="background-color: #cccccc;">* LIST (\HasNoChildren) "." INBOX</span></div><div><span style="background-color: #cccccc;">c OK List completed (0.001 + 0.000 + 0.001 secs).</span></div><div><br /></div><div>Then logout with</div><div><b><i>e logout</i></b></div><div>and see</div><div><span style="background-color: #cccccc;">* BYE Logging out</span></div><div><span style="background-color: #cccccc;">e OK Logout completed (0.001 + 0.000 secs).</span></div><div><span style="background-color: #cccccc;">closed</span></div></div><div><br /></div></div><h3>If you get and error like:</h3><div><b>system library:connect:Connection refused:crypto/bio/b_sock2.c</b></div><div>Dovecot is not running or you IP address or port is wrong.</div><div><br /></div><div><br /></div><h2 style="text-align: left;">Check sieve</h2><div>In my case messages where not getting delivered so the next step is to check the sieve log. For my test user it is at </div><div><b>/home/var/vmail/vmail1/dea42.us/d/e/a/deabigt-2022.03.22.17.01.28/sieve/dovecot.sieve.log</b></div><div>In there I found </div><div><span style="background-color: #cccccc;">error: from=postmaster@dea42.us, envelope_sender=MAILER-DAEMON, subject=Rejected: , msgid=<dovecot-1648226282-16727-0@mail-dea42-us>, size=3642, delivery_time=42ms, failed to store into mailbox 'INBOX': Quota exceeded (mailbox for user is full).</span></div><div>Since the email was too and from me it went nowhere. From Webmin it appeared my quota should be unlimited but digging I found in <b>/etc/dovecot/dovecot.conf </b>that no default quota set as these lines were commented out.</div><div><div><span style="background-color: #cccccc;"> quota_rule = *:storage=1G</span></div><div><span style="background-color: #cccccc;"> quota_rule2 = *:messages=0</span></div><div><span style="background-color: #cccccc;"> quota_rule3 = Trash:storage=1G</span></div><div><span style="background-color: #cccccc;"> quota_rule4 = Junk:ignore</span></div></div><div>so I uncommented them and restarted Dovecot. (I bumped the top rule to 100G since I had the space).</div><div>That sorted that. It appears my sieve rule to send emails without a subject to Junk even worked.</div><div><br /></div><div>To be sure though you should run sieve-filter with some test emails.</div><div><b><i>sieve-filter -D -v -W -C -u "deabigt@dea42.us" "/home/var/vmail/vmail1/dea42.us/d/e/a/deabigt-2022.03.22.17.01.28/sieve/dovecot.sieve" "AAA_filterTest" keep</i></b></div><div>Note <b>AAA_filterTest</b> is an email folder I created to stick test emails in.</div><div>That should have showed me how the emails in that folder would be filtered / sorted but instead I got</div><div><div><span style="background-color: #cccccc;">sieve-filter(deabigt@dea42.us): Error: user deabigt@dea42.us: Auth USER lookup failed</span></div><div><span style="background-color: #cccccc;">sieve-filter(root): Fatal: Internal error occurred. Refer to server log for more information.</span></div></div><div>Where is a whole mix of perms to get around for this to work. How I got it to finally work was to</div><div><b><i>chmod 7755 /usr/bin/sieve-filter</i></b></div><div><b><i>chmod 711 /home/deabigt</i></b></div><div>then as user deabigt create a script chkRules.sh with this line</div><div><b><i>sieve-filter -D -v -W "/home/var/vmail/vmail1/dea42.us/d/e/a/deabigt-2022.03.22.17.01.28/sieve/dovecot.sieve" "AAA_filterTest" keep</i></b></div><div>and another script runRules.sh with this line</div><div><b><i>sieve-filter -e -D -v -W "/home/var/vmail/vmail1/dea42.us/d/e/a/deabigt-2022.03.22.17.01.28/sieve/dovecot.sieve" "AAA_filterTest" keep</i></b></div><div>Make both executable with</div><div><b><i>chmod 744 *Rules.sh</i></b></div><div><br /></div><div><a href="https://fossies.org/linux/dovecot/doc/wiki/Pigeonhole.Sieve.Examples.txt" target="_blank">Pigeonhole Sieve rule examples</a></div><div><br /></div></div><h2 style="text-align: left;">Enable fetchmail schedule</h2><div>Once you have everything tested (including options below) the last thing you should do it setup and enable fetchmail's schedule in the Webmin interface. This will setup cron job(s) to pulls from the servers. </div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQdrEH3cfjTWzxq8wCZ1wf47y1S51hdj2e_5a6C_7RcjXAtQQSMD3s17GQnWWoYpPsqWwcE9m7MNA9QcSjdAPcsN7WxROeb2Pa8mE6Jsl8xjtohfEPSZm39RB4CEC31roG4j8hr16sogsCtUDL4sOUFyrQNA8f7B7ZxHB7qYwwWOpRN_VCAHZ5QV8v/s1920/2022-03-30_09-33-08.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="937" data-original-width="1920" height="312" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQdrEH3cfjTWzxq8wCZ1wf47y1S51hdj2e_5a6C_7RcjXAtQQSMD3s17GQnWWoYpPsqWwcE9m7MNA9QcSjdAPcsN7WxROeb2Pa8mE6Jsl8xjtohfEPSZm39RB4CEC31roG4j8hr16sogsCtUDL4sOUFyrQNA8f7B7ZxHB7qYwwWOpRN_VCAHZ5QV8v/w640-h312/2022-03-30_09-33-08.jpg" width="640" /></a></div><br /><div><br /></div><h1 style="text-align: left;">Optional</h1><div>A few other things I wanted for my setup </div><h2 style="text-align: left;"><a href="https://automation.rmrr42.com/2018/05/ups-monitoring.html" target="_blank">UPS monitor</a></h2><div>Install apcupsd to shutdown server when UPS is ready to quit.</div><div><br /></div><h2 style="text-align: left;"><a href="https://linuxhint.com/vnc_server_centos8/" target="_blank">VNC</a></h2><div>I want root DB access only from the console but the server will be in another building so VNC should let me run a browser there remotely.</div><div><br /></div><div><b style="background-color: #fff2cc;"><span style="color: #444444;">Note VNC is built in for CentOS 8 Stream. If you install and enable something like TigerVNC server you may not be able to login on the console much less remotely with a VNC viewer.</span></b></div><div><b style="background-color: #fff2cc;"><span style="color: #444444;">Also RealVNC appears to still not support TLS so make sure to follow instructions to the bottom.</span></b></div><div><br /></div><div>It also seems that the user must be logged in on the console to connect as well. Given that and I could not seem to get past the <a href="https://www.google.com/search?q=centos+8+stream+vnc+black+screen&oq=centos+8+stream+vnc+black&aqs=chrome.1.69i57j33i22i29i30.13191j0j7&sourceid=chrome&ie=UTF-8" target="_blank">black screen issue</a> either so I moved on for now. And <a href="https://wiki.centos.org/HowTos/Xming" target="_blank">setup XMing</a> instead. Though I used <a href="https://forums.vandyke.com/showthread.php?p=51274" target="_blank">SecureCRT</a> instead of Putty.</div><div><br /></div><h2 style="text-align: left;"><a href="https://www.cyberciti.biz/tips/linux-unix-bsd-nginx-webserver-security.html" target="_blank">Top 25 Nginx Web Server Best Security Practices</a></h2><h2 style="text-align: left;">Getting more Roundcube options to work</h2><div>The basic / free version of iRedmail does not install the mark junk and spell check options / plugins I want installed so I needed to run installer manually. </div><div><br /></div><div><span style="background-color: #fff2cc;"><span style="color: #444444;">To be safe, make backups of <b>/opt/www/roundcubemail/composer.json</b> and <b>/opt/www/roundcubemail/config/config.inc.php</b> before proceeding.</span></span></div><div><br /></div><div>To enable it you first need to enable the installer again. They locked it down multiple ways. To reverse this you need to:</div><div><ul style="text-align: left;"><li><b><i>chmod 777 /opt/www/roundcubemail/installer</i></b></li><li><b><i>chmod 555 /opt/www/roundcubemail/config/config.inc.php</i></b></li><li><b><i>ln -s /opt/www/roundcubemail/installer/ /opt/www/roundcubemail/public_html/installer</i></b></li><li>edit <b>/etc/nginx/templates/roundcube.tmpl </b>and comment out (add # at beginning of line) to the <b>location ~ ^/mail/(bin|config|installer|logs|SQL|temp|vendor)($|/.*) { deny all; }</b> line.</li><li>systemctl restart nginx</li><li>Add <b>$config['enable_installer'] = true;</b> to the end of <b>/opt/www/roundcubemail/config/config.inc.php</b></li></ul></div><div><br /></div><div>You can point your browser at https://10.10.2.200/mail/installer.</div><h3 style="text-align: left;">Step 1 </h3><div>Shows you what support structure is installed. In this case just <a href="https://www.php.net/manual/en/intro.imagick.php" target="_blank">imagick</a> and some unneeded DBs should be missing. If you want <a href="https://www.php.net/manual/en/intro.imagick.php" target="_blank">imagick</a> installed see <a href="https://greggborodaty.com/amazon-linux-2-installing-imagemagick-for-php-7-4/" target="_blank">Amazon Linux 2: Installing ImageMagick for PHP 7.4</a> even though you probably have php version 7.2 installed these instructions will still work if you sub nginx for httpd in the restart services step.</div><div><br /></div><div>Refreshing the browser window where you have the installer should now look like this.</div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgL-uHMPXyKnWJ4fyuqnlFT0SYS2YwqwhaOj4KzN7HDpcyFEiRuoDXYG4jDPMnLX8CkXp8_B1ps5eoYY1LBobgbjabINzWv6YIRYTMYbQqG5kf5p-5HJilKRFiysJZNQEJAsZwGIh5Oq2gqicagIBW5l140I5gSp9ln4ikOsCGADdMnuCiwxxBsMx3D/s1358/2022-03-28_11-08-13.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1358" data-original-width="1079" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgL-uHMPXyKnWJ4fyuqnlFT0SYS2YwqwhaOj4KzN7HDpcyFEiRuoDXYG4jDPMnLX8CkXp8_B1ps5eoYY1LBobgbjabINzWv6YIRYTMYbQqG5kf5p-5HJilKRFiysJZNQEJAsZwGIh5Oq2gqicagIBW5l140I5gSp9ln4ikOsCGADdMnuCiwxxBsMx3D/w508-h640/2022-03-28_11-08-13.jpg" width="508" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Roundcube installer step 1</td></tr></tbody></table><br /><div>Since you already have a config.inc.php installed the Next button will take you straight to step 3. Instead click on <b>Create config</b> (step 2).</div><div><br /></div><h3 style="text-align: left;">Step 2</h3><div>This is where all the options are. The one not enabled by iRedMail that I enabled were (from top to bottom of page).</div><div><ul style="text-align: left;"><li>Enabled <b>enable_spellcheck</b></li><li>I changed <b>smtp_server</b> to my hosted email system since most email systems these days block email coming from "residential IPs". </li><li>Changed <b>htmleditor</b> from <b>never</b> to <b>on reply to HTML message only</b></li><li>Enabled <b>additional_message_headers</b>, <b>archive, emoticons, identity_select, jqueryui, markasjunk, newmail_notifier, show_additional_headers, subscriptions_option, userinfo </b>and <b>vcard_attachments.</b></li></ul></div><div>Check <b>UPDATE_CONFIG</b> button at bottom of page and it saves your changes and reloads the page. Click <b>CONTINUE </b>button at top of page to go to step 3.</div><div><br /></div><h3 style="text-align: left;">Step 3</h3><div>Mainly shows you that installer did not seriously mess up the config file. It also give you a quick chance to check connections to the smtp and Dovecot servers. So you are done with the installer and can disable it again. Again personally I'd just remove the link, <b><i>/opt/www/roundcubemail/public_html/installer</i></b> and replace it with another honeypot script like <b>/var/www/html/info.php</b> but that does not actually work with the way Ngnix works. What you can do is in /etc/nginx/templates/roundcube.tmpl replace the lines</div><div><div><span style="background-color: #cccccc;"># Block access to default directories and files under these directories</span></div><div><span style="background-color: #cccccc;">location ~ ^/mail/(bin|config|installer|logs|SQL|temp|vendor)($|/.*) { deny all; }</span></div></div><div>with</div><div><div><span style="background-color: #cccccc;">location ~ ^/mail/installer(.*) {</span></div><div><span style="background-color: #cccccc;"> include /etc/nginx/templates/hsts.tmpl;</span></div><div><span style="background-color: #cccccc;"> include /etc/nginx/templates/fastcgi_php.tmpl;</span></div><div><span style="background-color: #cccccc;"> fastcgi_param SCRIPT_FILENAME /var/www/html/info.php;</span></div><div><span style="background-color: #cccccc;">}</span></div><div><span style="background-color: #cccccc;"><br /></span></div><div><span style="background-color: #cccccc;"># Block access to default directories and files under these directories</span></div><div><span style="background-color: #cccccc;">location ~ ^/mail/(bin|config|logs|SQL|temp|vendor)($|/.*) { deny all; }</span></div></div><div>and restart Ngnix</div><div><b><i>systemctl restart nginx</i></b></div><div><br /></div><div><br /></div><div><b style="background-color: #fff2cc;"><span style="color: #444444;">Note after disabling the installer you may need to clear your cache or restart your browser to see the change.</span></b></div><div><br /></div><h3 style="text-align: left;">Step 4</h3><div>Not part of the installer but a check to see what actually changed. My back up of <b>/opt/www/roundcubemail/config/config.inc.php</b> was <b>/opt/www/roundcubemail/config/config.inc.php.iredmail</b> so I did a diff removing comments and blank lines with </div><div><b><i>grep "=" config.inc.php.iredmail | sort -b > config.inc.php.iredmail.srt</i></b></div><div><b><i>grep "=" config.inc.php| sort -b > config.inc.php.srt</i></b></div><div><b><i>diff -B -b -w config.inc.php.srt config.inc.php.iredmail.srt | grep -v ". // "</i></b></div><div><b><i><br /></i></b></div><div>Which yielded</div><div><div><span style="background-color: #cccccc;">6c6</span></div><div><span style="background-color: #cccccc;">< $config['db_dsnw'] = 'mysql://roundcube:P@$$w0rd@127.0.0.1/roundcubemail';</span></div><div><span style="background-color: #cccccc;">---</span></div><div><span style="background-color: #cccccc;">> $config['db_dsnw'] = 'mysql</span><span style="background-color: #fff2cc;">i</span><span style="background-color: #cccccc;">://roundcube:P@$$w0rd@127.0.0.1</span><span style="background-color: #fff2cc;">:3306</span><span style="background-color: #cccccc;">/roundcubemail';</span></div><div><span style="background-color: #cccccc;">10a11</span></div><div><span style="background-color: #cccccc;">> </span><span style="background-color: #04ff00;">$config['default_port'] = 143</span><span style="background-color: #cccccc;">;</span></div><div><span style="background-color: #cccccc;">13d13</span></div><div><span style="background-color: #cccccc;">< </span><span style="background-color: #04ff00;">$config['enable_spellcheck'] = true</span><span style="background-color: #cccccc;">;</span></div><div><span style="background-color: #cccccc;">15d14</span></div><div><span style="background-color: #cccccc;">< </span><span style="background-color: #04ff00;">$config['htmleditor'] = 2;</span></div><div><span style="background-color: #cccccc;">20c19</span></div><div><span style="background-color: #cccccc;">< </span><span style="background-color: #04ff00;">$config['language'] = 'en_US'</span><span style="background-color: #cccccc;">;</span></div><div><span style="background-color: #cccccc;">---</span></div><div><span style="background-color: #cccccc;">28c27</span></div><div><span style="background-color: #cccccc;">< $config['plugins'] = [</span><span style="background-color: #04ff00;">'additional_message_headers', 'archive', 'emoticons', 'identity_select', 'jqueryui',</span><span style="background-color: #cccccc;"> 'managesieve', </span><span style="background-color: #04ff00;">'markasjunk', 'newmail_notifier',</span><span style="background-color: #cccccc;"> 'password', </span><span style="background-color: #04ff00;">'show_additional_headers',</span><span style="background-color: #cccccc;"> </span><span style="background-color: #04ff00;">'subscriptions_option', 'userinfo', 'vcard_attachments', </span><span style="background-color: #cccccc;">'zipdownload'];</span></div><div><span style="background-color: #cccccc;">---</span></div><div><span style="background-color: #cccccc;">> $config['plugins'] = array('managesieve', 'password', 'zipdownload');</span></div><div><span style="background-color: #cccccc;">33,35c32,36</span></div><div><span style="background-color: #cccccc;">< $config['smtp_server'] = '</span><span style="background-color: #ffa400;">tls://mail.dea42.org</span><span style="background-color: #cccccc;">';</span></div><div><span style="background-color: #cccccc;">< $config['spellcheck_engine'] = '</span><span style="background-color: #ffa400;">enchant</span><span style="background-color: #cccccc;">';</span></div><div><span style="background-color: #cccccc;">< </span><span style="background-color: #04ff00;">$config['support_url'] = ''</span><span style="background-color: #cccccc;">;</span></div><div><span style="background-color: #cccccc;">---</span></div><div><span style="background-color: #cccccc;">> </span><span style="background-color: #fff2cc;">$config['smtp_pass'] = '%p'</span><span style="background-color: #cccccc;">;</span></div><div><span style="background-color: #cccccc;">> </span><span style="background-color: #fff2cc;">$config['smtp_port'] = 587</span><span style="background-color: #cccccc;">;</span></div><div><span style="background-color: #cccccc;">> $config['smtp_server'] = </span><span style="background-color: #ffa400;">'tls://127.0.0.1';</span></div><div><span style="background-color: #cccccc;">> </span><span style="background-color: #fff2cc;">$config['smtp_user'] = '%u'</span><span style="background-color: #cccccc;">;</span></div><div><span style="background-color: #cccccc;">> $config['spellcheck_engine'] = '</span><span style="background-color: #ffa400;">pspell</span><span style="background-color: #cccccc;">';</span></div><div><span style="background-color: #cccccc;">37c38</span></div><div><span style="background-color: #cccccc;">< $config['useragent'] = 'Roundcube Webmail';</span></div><div><span style="background-color: #cccccc;">---</span></div><div><span style="background-color: #cccccc;">> $config['useragent'] = 'Roundcube Webmail'; // Hide version number</span></div><div><span style="background-color: #cccccc;">39,42c40,41</span></div><div><span style="background-color: #cccccc;">< 'ssl' => </span></div><div><span style="background-color: #cccccc;">< 'ssl' => </span></div><div><span style="background-color: #cccccc;">---</span></div><div><span style="background-color: #cccccc;">> 'ssl' => array(</span></div><div><span style="background-color: #cccccc;">> 'ssl' => array(</span></div></div><div><br /></div><div>I color coded to make seeing the diff stand out. Colors are added stuff, changed stuff and removed stuff. The removed stuff is the worrying bit though the DB line does not seem to matter. The smtp stuff though will unless you are using a smtp server that does not need login info to send emails. Since this an aggregating server using a remote smtp server I would need to override smtp_user and smtp_pass at minimum anyway. Per <a href="https://github.com/roundcube/roundcubemail/wiki/Configuration">https://github.com/roundcube/roundcubemail/wiki/Configuration</a></div><div>Create an outgoing email account on your hosted site<br />Get client connection info as in<br /><div class="panel-heading" style="background-color: #428bca; border-bottom: 1px solid rgb(66, 139, 202); border-left-color: rgb(66, 139, 202); border-right-color: rgb(66, 139, 202); border-top-color: rgb(66, 139, 202); border-top-left-radius: 3px; border-top-right-radius: 3px; box-sizing: border-box; color: white; font-family: "Open Sans", sans-serif; font-size: 14px; padding: 10px 15px;">Secure <abbr style="border-bottom: 1px dotted rgb(153, 153, 153); box-sizing: border-box; cursor: help;" title="Secure Sockets Layer">SSL</abbr>/<abbr style="border-bottom: 1px dotted rgb(153, 153, 153); box-sizing: border-box; cursor: help;" title="Transport Layer Security">TLS</abbr> Settings (Recommended)</div><table class="table manual_settings_table" style="border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-collapse: collapse; border-spacing: 0px; color: #333333; font-family: "Open Sans", sans-serif; font-size: 14px; margin-bottom: 0px; max-width: 100%; table-layout: fixed; width: 693px;"><tbody style="box-sizing: border-box;"><tr style="box-sizing: border-box;"><td id="lblSSLSettingsAreaUsername" style="border-top: 0px; box-sizing: border-box; line-height: 1.42857; padding: 8px; vertical-align: middle; width: 120px;">Username:</td><td class="data wrap-text" id="valSSLSettingsAreaUsername" style="border-top: 0px; box-sizing: border-box; line-height: 1.42857; overflow-wrap: break-word; padding: 8px; vertical-align: middle;">smtp@example.com</td></tr><tr style="box-sizing: border-box;"><td id="lblSettingsAreaPassword" style="border-top: 1px solid rgb(221, 221, 221); box-sizing: border-box; line-height: 1.42857; padding: 8px; vertical-align: middle; width: 120px;">Password:</td><td class="escape-note" id="valSettingsAreaPassword" style="border-top: 1px solid rgb(221, 221, 221); box-sizing: border-box; font-style: italic; line-height: 1.42857; padding: 8px; vertical-align: middle;">Use the email account’s password.</td></tr><tr style="box-sizing: border-box;"><td id="lblSettingsAreaIncomingServer" style="border-top: 1px solid rgb(221, 221, 221); box-sizing: border-box; line-height: 1.42857; padding: 8px; vertical-align: middle; width: 120px;">Incoming Server:</td><td class="data" id="valSettingsAreaIncomingServer" style="border-top: 1px solid rgb(221, 221, 221); box-sizing: border-box; line-height: 1.42857; padding: 8px; vertical-align: middle;">mail.example.com<br /><ul class="port_list list-inline" style="box-sizing: border-box; list-style: none; margin-bottom: 10px; margin-left: -5px; margin-top: 0px; padding-left: 0px;"><li style="box-sizing: border-box; display: inline-block; padding-left: 5px; padding-right: 5px;"><abbr class="initialism" style="border-bottom: 1px dotted rgb(153, 153, 153); box-sizing: border-box; cursor: help; font-size: 12.6px; text-transform: uppercase;" title="Internet Message Access Protocol">IMAP</abbr> Port: 993</li> <li style="box-sizing: border-box; display: inline-block; padding-left: 5px; padding-right: 5px;"><abbr class="initialism" style="border-bottom: 1px dotted rgb(153, 153, 153); box-sizing: border-box; cursor: help; font-size: 12.6px; text-transform: uppercase;" title="Post Office Protocol 3">POP3</abbr> Port: 995</li></ul></td></tr><tr style="box-sizing: border-box;"><td id="lblSettingsAreaOutgoingServer" style="border-top: 1px solid rgb(221, 221, 221); box-sizing: border-box; line-height: 1.42857; padding: 8px; vertical-align: middle; width: 120px;">Outgoing Server:</td><td class="data" id="valSettingsAreaOutGoingServer" style="border-top: 1px solid rgb(221, 221, 221); box-sizing: border-box; line-height: 1.42857; padding: 8px; vertical-align: middle;">mail.example.com<br /><ul class="port_list list-inline" style="box-sizing: border-box; list-style: none; margin-bottom: 10px; margin-left: -5px; margin-top: 0px; padding-left: 0px;"><li style="box-sizing: border-box; display: inline-block; padding-left: 5px; padding-right: 5px;"><abbr style="border-bottom: 1px dotted rgb(153, 153, 153); box-sizing: border-box; cursor: help;" title="Simple Mail Transfer Protocol">SMTP</abbr> Port: 465</li></ul></td></tr><tr style="box-sizing: border-box;"><td class="notes" colspan="2" style="border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top: 1px solid rgb(221, 221, 221); box-sizing: border-box; line-height: 1.42857; padding: 8px; vertical-align: middle; width: 120px;"><div class="small_note" id="lblSettingsAreaSmallNote1" style="box-sizing: border-box;">IMAP, POP3, and SMTP require authentication.</div></td></tr></tbody></table><br />Edit /var/www/roundcubemail/config/config.inc.php to match these<br />edit the smtp section from<br /><b style="background-color: #cccccc;">// SMTP</b><br /><b style="background-color: #cccccc;">$config['smtp_server'] = 'tls://127.0.0.1';</b><br /><b style="background-color: #cccccc;">$config['smtp_port'] = 587;</b><br /><b style="background-color: #cccccc;">$config['smtp_user'] = '%u';</b><br /><b style="background-color: #cccccc;">$config['smtp_pass'] = '%p';</b><br /><b style="background-color: #cccccc;">$config['smtp_auth_type'] = 'LOGIN';</b><br /><b style="background-color: #cccccc;">// Required if you're running PHP 5.6 or later</b><br /><b style="background-color: #cccccc;">$config['smtp_conn_options'] = array(</b><br /><b style="background-color: #cccccc;"> 'ssl' => array(</b><br /><b style="background-color: #cccccc;"> 'verify_peer' => false,</b><br /><b style="background-color: #cccccc;"> 'verify_peer_name' => false,</b><br /><b style="background-color: #cccccc;"> ),</b><br /><b style="background-color: #cccccc;">);</b><br /><br />To<br /><b style="background-color: #cccccc;">// SMTP</b><br /><b style="background-color: #cccccc;">$config['smtp_server'] = 'ssl://mail.example.com';</b><br /><b style="background-color: #cccccc;">$config['smtp_port'] = 465;</b><br /><b style="background-color: #cccccc;">$config['smtp_user'] = 'smtp@example.com';</b><br /><b style="background-color: #cccccc;">$config['smtp_pass'] = 'P@$$w0rd';</b><br /><b style="background-color: #cccccc;">$config['smtp_auth_type'] = 'LOGIN';</b><br /><b style="background-color: #cccccc;">// Required if you're running PHP 5.6 or later</b><br /><b style="background-color: #cccccc;">$config['smtp_conn_options'] = array(</b><br /><b style="background-color: #cccccc;"> 'ssl' => array(</b><br /><b style="background-color: #cccccc;"> 'verify_peer' => false,</b><br /><b style="background-color: #cccccc;"> 'verify_peer_name' => false,</b><br /><b style="background-color: #cccccc;"> ),</b><br /><br /></div><h2 style="text-align: left;"><a href="https://doc.dovecot.org/configuration_manual/howto/procmail/" target="_blank">Don't add Procmail for spam filtering</a></h2><div>Has been unmaintained for years and is not longer considered good practice even though still in Webmin and most Dovecot plus SpamAssassin searches will show using Promail.</div><h2 style="text-align: left;">Add SpamAssassin to learn from emails marked as spam and not spam. </h2><h3 style="text-align: left;"><a href="https://www.linuxbabe.com/redhat/spamassassin-centos-rhel-block-email-spam" target="_blank">Add SpamAssassin</a></h3><div>Follow the steps in the link till you get to the <b>Move Spam into the Junk Folder</b> bit. Though tweak the rules and scores as you see fit. I left most at the defaults for now. Also you can safely ignore the OpenDKIM and OpenDMARC bits if like me you are only fetching emails and not receiving them directly at this server.</div><div><br /></div><h4 style="text-align: left;">Move Spam into the Junk Folder</h4><div>The iRedMail install stuck all the Dovecot config into the main file <b>/etc/dovecot/dovecot.conf</b> so the files in the <b>conf.d</b> folder are ignored. Plus all the stuff it tells you to add should have already been done. Note the <b>sieve_before</b> script is at <b>/home/var/vmail/sieve/dovecot.sieve</b></div><div><br /></div><div>Also from article comments, it appears in<b> /etc/sysconfig/spamassassin</b> </div><div><b>razor-home-dir='/var/lib/razor/</b></div><div>ought to be</div><div><b>razor-home-dir='/var/spool/amavisd/.razor/</b></div><div><b><br /></b></div><div><b>Set Message Maximum Size</b></div><div>I left the default here as well till I see it is an issue to reduce load. Especially since I get a lot of security cam alerts with picture attached.</div><div><br /></div><h4 style="text-align: left;">How to Configure Individual User Preferences</h4><div><strike>Probably could skip this unless you have more than one account and you want them to detect differently. The instructions are not very clear though so you are probably better looking at the <a href="https://spamassassin.apache.org/full/3.4.x/doc/Mail_SpamAssassin_Conf.html#USER-PREFERENCES" target="_blank">official docs.</a> Note if you do want to add user_prefs it should be in a .spamassassin folder placed in the same folder as you Maildir. In my example case /home/var/vmail/vmail1/dea42.us/d/e/a/deabigt-2022.03.22.17.01.28/.spamassassin/user_prefs</strike></div><div>After testing it appears this may not work in the virtual users context. You will want to add your customizations to <b>/etc/mail/spamassassin/local.cf <span style="background-color: #fff2cc;"><span style="color: #444444;">Note this is not the normal location and the more common /usr/share/spamassassin/ files exist but are ignored.</span></span></b></div><h3 style="text-align: left;">Learn spam</h3><div>The <a href="https://github.com/roundcube/roundcubemail/tree/master/plugins/markasjunk" target="_blank">Roundcube Webmail MarkAsJunk Plugin</a> docs imply that it can be configured to learn / unlearn when to mark an email as junk / not junk but the bits just to change the Subject do not seem to get triggered by the button. All the button appears to do is move emails to the Junk or Inbox folders.</div><div><br /></div><div>I prefer a command I can run manually and or from a cron job anyway. Again the virtual mail setup complicates this. I started with <a href="https://www.knownhost.com/kb/training-spamassassins-accuracy-with-sa-learn/" target="_blank">this info</a>, <a href="https://schlitt.info/opensource/blog/0589_using_gmails_spam.html" target="_blank">this</a> and <a href="https://geekthis.net/post/spamassassin-training/" target="_blank">this</a>.</div><div><br /></div><div>First I made a couple new folders. <b>AAA_junk</b>, <b>AAA_NotJunk </b>and <b>AAA_filterTest</b>. They could be named anything. The <b>AAA_ </b>keeps them at the top on my folder list which is VERY long.</div><div><br /></div><div>Next I created a script learnSpam.sh in my users home, <b>/home/deabigt</b> since it needs user specific info. In this case my script looks like this</div><div><div><b><i>mf=/home/var/vmail/vmail1/dea42.us/d/e/a/deabigt-2022.03.22.17.01.28/</i></b></div><div><b><i>sa-learn -p ${mf}.spamassassin/user_prefs --spam ${mf}Maildir/.AAA_Junk/{cur,new,tmp}</i></b></div><div><b><i>sa-learn -p ${mf}.spamassassin/user_prefs --ham ${mf}Maildir/.AAA_NotJunk/{cur,new,tmp}</i></b></div><div><b><i>sa-learn --dump magic</i></b></div></div><div><br /></div><div>Note the . in front of the folder names.</div><div><br /></div><div>Here is the tricky bit. Again it needs to run as vmail so you need to run</div><div><div><b><i>chown vmail.vmail ~deabigt/learnSpam.sh</i></b></div><div><b><i>chmod 7755 ~deabigt/learnSpam.sh</i></b></div></div><div><br /></div><div>Now stick a few spam emails in <b>AAA_Junk </b>and non spam in <b>AAA_NotJunk </b>and run <b><i>~deabigt/learnSpam.sh</i></b> as that user or root.</div><div><br /></div><div>You will see output like this</div><div><div><span style="background-color: #cccccc;">Learned tokens from 390 message(s) (392 message(s) examined)</span></div><div><span style="background-color: #cccccc;">Learned tokens from 1 message(s) (14 message(s) examined)</span></div><div><span style="background-color: #cccccc;">0.000 0 3 0 non-token data: bayes db version</span></div><div><span style="background-color: #cccccc;">0.000 0 601 0 non-token data: nspam</span></div><div><span style="background-color: #cccccc;">0.000 0 31 0 non-token data: nham</span></div><div><span style="background-color: #cccccc;">0.000 0 82589 0 non-token data: ntokens</span></div><div><span style="background-color: #cccccc;">0.000 0 1380809146 0 non-token data: oldest atime</span></div><div><span style="background-color: #cccccc;">0.000 0 1648659657 0 non-token data: newest atime</span></div><div><span style="background-color: #cccccc;">0.000 0 0 0 non-token data: last journal sync atime</span></div><div><span style="background-color: #cccccc;">0.000 0 0 0 non-token data: last expiry atime</span></div><div><span style="background-color: #cccccc;">0.000 0 0 0 non-token data: last expire atime delta</span></div><div><span style="background-color: #cccccc;">0.000 0 0 0 non-token data: last expire reduction count</span></div></div><div><br /></div><div>If that looks OK, set it up as a cron job be running (as root)</div><div><b><i>crontab -e</i></b></div><div>and adding</div><div><div><span style="background-color: #cccccc;"># learn spam from staged folders</span></div><div><span style="background-color: #cccccc;">00 1 * * * /home/deabigt/learnSpam.sh | mailx -s "Learn Spam" deabigt@dea42.us</span></div></div><div>That will run the script each night at 1 AM and send the user and email with the output.</div><div>Note this has to be run as root despite permission appear that running as anyone should work since the script assumes the id of vmail while running but it does not work and will not be able to read the email folders.</div><div><br /></div><h3 style="text-align: left;">I check my Junk folder like this</h3><div>Search for emails with <b>SPAM</b></div><div>Do a quick look for anything that might be legit.</div><div>Move anything that looks legit to <b>AAA_NotJunk</b></div><div>Delete "<b>SPAM</b>" emails since the filter already knows them.</div><div>Show all emails in <b>Junk</b></div><div><div>Move anything that looks legit to <b>AAA_NotJunk</b></div></div><div><div>Move rest to <b>AAA_Junk</b></div></div><div>Run <b><i>~deabigt/learnSpam.sh</i></b></div><div>Delete emails in <b>AAA_Junk</b></div><div>Move emails in <b>AAA_NotJunk </b>to <b>AAA_filterTest</b></div><div>Now you can run <b><i>~deabigt/chkRules.sh</i></b> to see where these emails would be filed or <b><i>~deabigt/runRules.sh</i></b> to file them.</div><div>Sort any new rules as needed. Do not forget to check the <b>Junk </b>folder if any of you rules move emails to <b>Junk</b>.</div><div><br /></div><div>About here is where you wish X-Spam-Score was a column option in Roundcube.</div><div>What I did to work around this was to create a script <b>/home/deabigt/rateJunk.sh</b> containing</div><div><div><span style="background-color: #cccccc;">for l in `grep X-Spam-Score /home/var/vmail/vmail1/dea42.us/d/e/a/deabigt-2022.03.22.17.01.28/Maildir/.AAA_Junk/{cur,new,tmp}/* 2>/dev/null | sed -e "s/ /:/g"`</span></div><div><span style="background-color: #cccccc;">do</span></div><div><span style="background-color: #cccccc;"> f=`echo $l | cut -f1-2 -d':'`</span></div><div><span style="background-color: #cccccc;"> s=`echo $l | cut -f5 -d':'`</span></div><div><span style="background-color: #cccccc;"> sub=`grep Subject $f`</span></div><div><span style="background-color: #cccccc;"> echo ${s}:${sub}</span></div><div><span style="background-color: #cccccc;">done</span></div></div><div><br /></div><div>Make it executable with</div><div><b><i>chmod 744 /home/deabigt/rateJunk.sh</i></b></div><div>and run (as root) as</div><div><b><i>/home/deabigt/rateJunk.sh | sort -nr</i></b></div><div>the r on the end makes the sort order high to low so the emails with the lowest spam scores at the bottom. The output looks something like this</div><div><div><span style="background-color: #cccccc;">2.613:Subject: AUTUMN SALE SEASON STARTED! GRAB EXTRA 25% OFF</span></div><div><span style="background-color: #cccccc;">2.613:Subject: APPROVED CANADIAN HEALTHCARE</span></div><div><span style="background-color: #cccccc;">2.6:Subject: Webstore 100% Pure Pharmacy.</span></div><div><span style="background-color: #cccccc;">2.598:Subject: We're More Than Just Your Local Webstore, We're Your Friends, Dqkaujtgfsvn</span></div><div><span style="background-color: #cccccc;">2.582: h=Date:From:To:Subject:MIME-Version:Content-Type:List-Unsubscribe:Message-ID; i=renewal-by-andersen@meanvilee.cam; Subject: Get ready for the Spring with Renewal by Andersen</span></div><div><span style="background-color: #cccccc;">2.572:Subject: Seen this Crazy Heart Health Secret?</span></div><div><span style="background-color: #cccccc;">2.572:Subject: Odd Toxin The Cause Of Your Small Member?</span></div><div><span style="background-color: #cccccc;">2.32: h=Date:From:To:Subject:MIME-Version:Content-Type:List-Unsubscribe:Message-ID; i=christina_allmand@buyers2022.sbs; Subject: $1OO Visa Reward-Card from ADT with install of Home Security #84358969</span></div><div><span style="background-color: #cccccc;">2.252:Subject: High-grade MEDICATIONS For a Cheap Price, Becker Aaron ..</span></div><div><span style="background-color: #cccccc;">2.213:Subject: HIGH-QUALITY DRUGS for the LOWEST PRICE</span></div><div><span style="background-color: #cccccc;">2.213:Subject: BEST MEDS for the LOWEST PRICE, Ghixbbxigrgv</span></div><div><span style="background-color: #cccccc;">2.114:Subject: SCORE HUGE SAVINGS on the BEST MEDS, Dilmnbu</span></div><div><span style="background-color: #cccccc;">2.114:Subject: High-grade MEDICATIONS For a Cheap Price, Fxivjmtxedld</span></div><div><span style="background-color: #cccccc;">2.114:Subject: Canadian Medicine Shop. The Pharmacy America Trusts Iqzixeuqiox</span></div><div><span style="background-color: #cccccc;">2.113:Subject: YOUR HEALTH is OUR MAIN CONCERN, Jmleobsiqazn</span></div><div><span style="background-color: #cccccc;">2.113:Subject: World Best DRUGS Mall For a Reasonable Price, Cnqzjcipgi</span></div><div><span style="background-color: #cccccc;">2.113:Subject: World Best DRUGS Mall For a Reasonable Price</span></div><div><span style="background-color: #cccccc;">2.113:Subject: World Best DRUGS Mall For a Reasonable Price</span></div><div><span style="background-color: #cccccc;">2.113:Subject: When It Comes Healthcare, Nothing Beats a Hometown Advantage Stephen Randall</span></div><div><span style="background-color: #cccccc;">2.113:Subject: When It Comes Healthcare, Nothing Beats a Hometown Advantage Brickman Hope ..</span></div><div><span style="background-color: #cccccc;">2.113:Subject: What a Webstore Was Meant to Be Jmhxht</span></div><div><span style="background-color: #cccccc;">2.113:Subject: What a Webstore Was Meant to Be, Capricee</span></div><div><span style="background-color: #cccccc;">2.113:Subject: What a Medicine Shop Was Meant to Be, Kennedy Alexis..</span></div><div><span style="background-color: #cccccc;">2.113:Subject: We're More Than Just Your Local Pharmacy, We're Your Friends</span></div><div><span style="background-color: #cccccc;">2.113:Subject: We're More Than Just Your Local Medicine Shop, We're Your Friends Ckomoajpfaqp</span></div><div><span style="background-color: #cccccc;">2.113:Subject: We're More Than Just Your Local Drug Mall, We're Your Friends Mercer Elsa</span></div><div><span style="background-color: #cccccc;">2.113:Subject: TRUSTED CANADIAN HEALTHCARE Lawman Ernest .</span></div><div><span style="background-color: #cccccc;">2.113:Subject: TOP-QUALITY DRUGS at DISCOUNT PRICES</span></div><div><span style="background-color: #cccccc;">2.113:Subject: TOP-GRADE MEDICATIONS at DISCOUNT PRICES Farmer Erik</span></div><div><span style="background-color: #cccccc;">2.113:Subject: Top-grade Medications at Discount Prices Ellington Becky</span></div><div><span style="background-color: #cccccc;">2.113:Subject: The Medicine Shop with a Tender Loving Touch, Chesterton Adam</span></div><div><span style="background-color: #cccccc;">2.113:Subject: The Drugstore with a Tender Loving Touch Lmjpemzpn !!</span></div><div><span style="background-color: #cccccc;">2.113:Subject: The Drug Mall with a Tender Loving Touch</span></div><div><span style="background-color: #cccccc;">2.113:Subject: The Biggest DRUGSTORE Mall, Dilmnbu ...</span></div><div><span style="background-color: #cccccc;">2.113:Subject: SCORE HUGE SAVINGS on the BEST MEDICATIONS</span></div><div><span style="background-color: #cccccc;">2.113:Subject: SCORE HUGE SAVINGS on the BEST DRUGS, Inhbe</span></div><div><span style="background-color: #cccccc;">2.113:Subject: Not Just a Pharmacy, But a Family Higgins Foster!!</span></div><div><span style="background-color: #cccccc;">2.113:Subject: Not Just a Medicine Shop, But a Family Dice</span></div><div><span style="background-color: #cccccc;">2.113:Subject: High-grade MEDICATIONS For a Cheap Price</span></div><div><span style="background-color: #cccccc;">2.113:Subject: For the Best Healthcare in Your Hometown .. Count on Us, Creighton Millard.</span></div><div><span style="background-color: #cccccc;">2.113:Subject: EXTRA 25% OFF AUTUMN SALE Ivvvneooz</span></div><div><span style="background-color: #cccccc;">2.113:Subject: Drug Mall, Holiday Ted ! 100% Pure Pharmacy .</span></div><div><span style="background-color: #cccccc;">2.113:Subject: CVS/Medicine Shop ! Expect Something Extra, Htbtgckpy..</span></div><div><span style="background-color: #cccccc;">2.113:Subject: CVS/Drug Mall .. Expect Something Extra, Fpabyoyfcvgbdf ..</span></div><div><span style="background-color: #cccccc;">2.113:Subject: CVS/Drug Mall Expect Something Extra Chapman Ann</span></div><div><span style="background-color: #cccccc;">2.113:Subject: CANADIAN PHARMACY EXCLUSIVE STORE ... 19% OFF Carrington Yvette .</span></div><div><span style="background-color: #cccccc;">2.113:Subject: Canadian Drugstore The Pharmacy America Trusts Dqolk .</span></div><div><span style="background-color: #cccccc;">2.113:Subject: Canadian Drug Mall The Pharmacy America Trusts</span></div><div><span style="background-color: #cccccc;">2.113:Subject: Approved Canadian Healthcare Dea Myheritage</span></div><div><span style="background-color: #cccccc;">2.113:Subject: Any Meds For a Reasonable Price Fondgaxsuctbh</span></div><div><span style="background-color: #cccccc;">2.113:Subject: Any Meds For a Reasonable Price Dqolk</span></div><div><span style="background-color: #cccccc;">2.113:Subject: Any Medications For a Reasonable Price Fraser Georgia .</span></div><div><span style="background-color: #cccccc;">2.113:Subject: A Hometown Medicine Shop with World Class Service, Gilmore Greg</span></div><div><span style="background-color: #cccccc;">2.113:Subject: A Hometown Drugstore with World Class Service, Dhsocjc..</span></div><div><span style="background-color: #cccccc;">2.113:Subject: A Hometown Drug Mall with World Class Service, Julian Alsopp .</span></div><div><span style="background-color: #cccccc;">2.113:Subject: ADDITIONAL 16% OFF AUTUMN SALE, Dowman Doug..</span></div><div><span style="background-color: #cccccc;">2.103:Subject: Canadian Medicine Shop Exclusive Mall . 26% Off</span></div><div><span style="background-color: #cccccc;">2.095:Subject: THE BEST MEDICATIONS at DISCOUNT PRICES Dea Scam!!</span></div></div><div><br /></div><div>There are some obvious things to turn into new Spamassassin rules here.</div><div>For instance</div><div><div><span style="background-color: #cccccc;">header SUBJECT_DRUGS Subject =~ /(Pharmacy|MEDICATIONS|DRUG|CANADIAN|Medicine|Meds)/i</span></div><div><span style="background-color: #cccccc;">describe SUBJECT_DRUGS Subject contains drugs</span></div><div><span style="background-color: #cccccc;">score SUBJECT_DRUGS 2.0</span></div><div><span style="background-color: #cccccc;"><br /></span></div><div><span style="background-color: #cccccc;">header SUBJECT_DRUGS2 Subject =~ /(Healthcare|Hometown|Mall|Best)/i</span></div><div><span style="background-color: #cccccc;">describe SUBJECT_DRUGS2 Subject contains drugs</span></div><div><span style="background-color: #cccccc;">score SUBJECT_DRUGS2 2.0</span></div><div><span style="background-color: #cccccc;"><br /></span></div><div><span style="background-color: #cccccc;">header SUBJECT_CVS Subject =~ /CVS/i</span></div><div><span style="background-color: #cccccc;">describe SUBJECT_CVS Subject contains CVS</span></div><div><span style="background-color: #cccccc;">score SUBJECT_CVS 2.0</span></div><div><br /></div></div><div>You can then test those changes by finding the email with</div><div><b><i>grep "Subject: THE BEST MEDICATIONS at DISCOUNT PRICES" /home/var/vmail/vmail1/dea42.us/d/e/a/deabigt-2022.03.22.17.01.28/Maildir/.AAA_Junk/{cur,new,tmp}/*</i></b></div><div><br /></div><div>Then rerun it manually with</div><div><b><i>spamassassin -D < /home/var/vmail/vmail1/dea42.us/d/e/a/deabigt-2022.03.22.17.01.28/Maildir/.AAA_Junk/cur/1648672590.M85185P2023089.mail-dea42-us,S=13452,W=13691:2,| grep X-Spam</i></b></div><div><br /></div><div>If you just want the scoring and not all the debug, leave off the -D</div><div><br /></div><div>Note you may want to backup the DB with</div><div><b><i>sa-learn --backup > /home/backups/spamassassin.bak</i></b></div><div>if you are worried about making things worse. You can restore with</div><div><b><i>sa-learn --restore < /home/backups/spamassassin.bak</i></b></div><div><br /></div><h2 style="text-align: left;"><a href="http://blog.dmitryleskov.com/small-hacks/forcing-spamassassin-to-add-the-x-spam-status-header-to-ham-for-debugging/" target="_blank">Forcing SpamAssassin To Add The X-Spam-Status Header To Ham For Debugging and tweaking bounce.</a></h2><div>The controls for this are in <b>/etc/amavisd/amavisd.conf</b> The defaults are</div><div><div><span style="background-color: #cccccc;">$sa_tag_level_deflt = 2.0; # add spam info headers if at, or above that level</span></div><div><span style="background-color: #cccccc;">$sa_tag2_level_deflt = 6.2; # add 'spam detected' headers at that level</span></div><div><span style="background-color: #cccccc;">$sa_kill_level_deflt = 6.9; # triggers spam evasive actions (e.g. blocks mail)</span></div><div><span style="background-color: #cccccc;">$sa_dsn_cutoff_level = 10; # spam level beyond which a DSN is not sent</span></div><div><span style="background-color: #cccccc;">$sa_crediblefrom_dsn_cutoff_level = 18; # likewise, but for a likely valid From</span></div><div><span style="background-color: #cccccc;">#$sa_quarantine_cutoff_level = 25; # spam level beyond which quarantine is off</span></div></div><div><br /></div><div>I always want to know why so to always get the <b>X-Spam-Status</b> header set</div><div><b>$sa_tag_level_deflt = -9999</b></div><div>I do not want to bounce spam emails for lots of reasons so I <a href="http://verchick.com/mecham/public_html/spam/amavisd-settings.html" target="_blank">replaced all the <b>D_DISCARD</b> values with <b>D_PASS</b> so nothing is bounced</a>. Then I just add a sieve rule to move spam above a score directly to Trash. As in</div><div><div><span style="background-color: #cccccc;"># rule:[Spam10]</span></div><div><span style="background-color: #cccccc;">if header :contains "x-spam-level" "**********"</span></div><div><span style="background-color: #cccccc;">{</span></div><div><span style="background-color: #cccccc;"><span style="white-space: pre;"> </span>fileinto "Trash";</span></div><div><span style="background-color: #cccccc;"><span style="white-space: pre;"> </span>stop;</span></div><div><span style="background-color: #cccccc;">}</span></div></div><div>will send to Trash any email with a score of 10 or more. (Actually 9 or more given how the pattern works.)</div><div><br /></div><div><br /></div><div><b>$sa_tag2_level_deflt</b> sets the level at which spam is tagged in the subject line of the message.</div><div>Note this overrides what spamassassin adds so you may see headers added in the spamassassin tests above only to have amavisd remove them and insert its own.</div><div><br /></div><div>If you want to add the score to the subject change the line</div><div><b>$sa_spam_subject_tag = '[SPAM ] ';</b></div><div>to</div><div><b>$sa_spam_subject_tag = 'SPAM _SCORE_:';</b></div><div><br /></div><div><b style="background-color: #fff2cc;"><span style="color: #444444;">Note not using [] so is sortable more or less by score in Roundcube</span></b></div><div><br /></div><div>And then restart the main services just to be sure with</div><div><b><i>systemctl restart postfix spamassassin amavisd</i></b></div><div><br /></div><div><br /></div><h2 style="text-align: left;"><a href="https://www.oreilly.com/library/view/spamassassin/0596007078/ch04.html" target="_blank">More on the SpamAssassin as a Learning System</a></h2><h2 style="text-align: left;">Add headers in sieve rules</h2><div>This can be real useful for debugging rule order</div><div>To the bottom of /etc/dovecot/dovecot.conf add</div><div><div><span style="background-color: #cccccc;">plugin {</span></div><div><span style="background-color: #cccccc;"> # Use editheader</span></div><div><span style="background-color: #cccccc;"> sieve_extensions = +editheader</span></div><div><span style="background-color: #cccccc;"><br /></span></div><div><span style="background-color: #cccccc;"> # Header fields must not exceed one kilobyte</span></div><div><span style="background-color: #cccccc;"> sieve_editheader_max_header_size = 1k</span></div><div><span style="background-color: #cccccc;"><br /></span></div><div><span style="background-color: #cccccc;"> # Protected special headers</span></div><div><span style="background-color: #cccccc;"> sieve_editheader_forbid_add = X-Verified</span></div><div><span style="background-color: #cccccc;"> sieve_editheader_forbid_delete = X-Verified X-Seen</span></div><div><span style="background-color: #cccccc;">}</span></div></div><div><br /></div><div>Add <b>editheader </b>to the <b>require</b> line of you sieve rule file. It should look like this</div><div><div><b>require ["copy","enotify","fileinto","imap4flags","regex","variables","editheader"];</b></div></div><div><br /></div><div>You can then add a header with a rule action like</div><div><b>addheader "X-Test-Header" "This is a test header.";</b></div><div><strike>Or as fancy as</strike></div><div><div><span style="background-color: #cccccc;"><strike># Match/select your message as you see fit</strike></span></div><div><span style="background-color: #cccccc;"><strike>if header :contains "List-Id" ["<foo.lists.example.net>"]</strike></span></div><div><span style="background-color: #cccccc;"><strike>{</strike></span></div><div><span style="background-color: #cccccc;"><strike> # Match the entire subject ...</strike></span></div><div><span style="background-color: #cccccc;"><strike> if header :matches "Subject" "*" {</strike></span></div><div><span style="background-color: #cccccc;"><strike> # ... to get it in a match group that can then be stored in a variable:</strike></span></div><div><span style="background-color: #cccccc;"><strike> set "subject" "${1}";</strike></span></div><div><span style="background-color: #cccccc;"><strike> }</strike></span></div><div><span style="background-color: #cccccc;"><strike><br /></strike></span></div><div><span style="background-color: #cccccc;"><strike> # We can't "replace" a header, but we can delete (all instances of) it and</strike></span></div><div><span style="background-color: #cccccc;"><strike> # re-add (a single instance of) it:</strike></span></div><div><span style="background-color: #cccccc;"><strike> deleteheader "Subject";</strike></span></div><div><span style="background-color: #cccccc;"><strike> # Append/prepend as you see fit</strike></span></div><div><span style="background-color: #cccccc;"><strike> addheader :last "Subject" "[Foo-List] ${subject}";</strike></span></div><div><span style="background-color: #cccccc;"><strike> # Note that the header is added ":last" (so it won't appear before possible</strike></span></div><div><span style="background-color: #cccccc;"><strike> # "Received" headers).</strike></span></div><div><span style="background-color: #cccccc;"><strike>}</strike></span></div></div><div style="text-align: left;">Changing the subject header method did not work for me but addheader does.</div><h2 style="text-align: left;">Add support for <span style="font-size: 24px;">amavisd </span>to scan rar files</h2><div><b><i>yum install php72-php-pecl-rar -y</i></b></div><div><b><i>systemctl restart amavisd</i></b></div><div><br /></div><div><h2 style="text-align: left;">Add Spamassassin rule for from == to</h2></div><div>A fair bit of spam I see has the to and from the same so you get double hit with it if it bounces. Unfortunately there appears to be no way to compare the fields in Spamassassin but you can see if they are from the same domain with something like this which adds 2 points if they are.</div><div><span style="background-color: #cccccc;">header AVATAR42_TO To =~ /avatar42.us/</span></div><div><div><span style="background-color: #cccccc;">header AVATAR42_FROM From =~ /avatar42.us/</span></div><div><span style="background-color: #cccccc;">meta AVATAR42_FROM_TO (AVATAR42_FROM && AVATAR42_TO)</span></div><div><span style="background-color: #cccccc;">score AVATAR42_FROM_TO 2</span></div></div><h1 style="text-align: left;">TBD</h1><div>Stuff I'm still looking at but does not seem to be an issue</div><div><ul style="text-align: left;"><li><a href="https://www.howtoforge.com/community/threads/mailscanner-sa-bayes-permissions.32621/" target="_blank">plugin: eval failed: bayes: (in learn) locker: safe_lock: cannot create lockfile /var/vmail/dea42.us/deabigt/spamassassin/bayes.mutex: No such file or directory</a></li><li>razor2: razor2 check failed: No such file or directory razor2: Can't read: /var/lib/razor/ at /usr/share/perl5/vendor_perl/Mail/SpamAssassin/Plugin/Razor2.pm line 331</li><li>amavis[2548656]: No ext program for .lrz, tried: lrzip -q -k -d -o -, lrzcat -q -k</li><li>amavis still bouncing emails despite setting all D_DISCARD to D_PASS</li></ul></div><div><br /></div><div><br /></div>Avatar42http://www.blogger.com/profile/02989695403513365236noreply@blogger.com0tag:blogger.com,1999:blog-4206308026427876681.post-76846471119862920302021-09-01T10:37:00.002-07:002021-09-01T12:39:46.133-07:00Jenkins Notes<h1 style="text-align: left;">Just a place for links to getting Jenkins working for CICD for my projects.</h1><h2 style="text-align: left;"><a href="https://www.jenkins.io/doc/book/installing/linux/#red-hat-centos" target="_blank">Installing</a></h2><div>That gets you started. </div><div><br /></div><h3 style="text-align: left;">Plugins</h3><div>Probably overkill and more than you need but I tried to cover most of the <a href="https://github.com/avatar42?tab=repositories" target="_blank">stuff I have in github</a>. You may want to add others as well.</div><div><b>ace-editor</b></div><div><b>ant</b></div><div><b>antisamy-markup-formatter</b></div><div><b>apache-httpcomponents-client-4-api</b></div><div><b>authorize-project</b></div><div><b>bootstrap4-api</b></div><div><b>bootstrap5-api</b></div><div><b>bouncycastle-api</b></div><div><b>branch-api</b></div><div><b>build-timeout</b></div><div><b>caffeine-api</b></div><div><b>checks-api</b></div><div><b>cloudbees-credentials</b></div><div><b>cloudbees-folder</b></div><div><b>command-launcher</b></div><div><b>credentials</b></div><div><b>credentials-binding</b></div><div><b>deploy</b></div><div><b>display-url-api</b></div><div><b>durable-task</b></div><div><b>ec2-deployment-dashboard</b></div><div><b>echarts-api</b></div><div><b>email-ext</b></div><div><b>font-awesome-api</b></div><div><b>git</b></div><div><b>git-client</b></div><div><b>github</b></div><div><b>github-api</b></div><div><b>github-branch-source</b></div><div><b>git-server</b></div><div><b>gradle</b></div><div><b>handlebars</b></div><div><b>jackson2-api</b></div><div><b>jdk-tool</b></div><div><b>jjwt-api</b></div><div><b>jquery3-api</b></div><div><b>jsch</b></div><div><b>junit</b></div><div><b>ldap</b></div><div><b>lockable-resources</b></div><div><b>mailer</b></div><div><b>matrix-auth</b></div><div><b>matrix-project</b></div><div><b>momentjs</b></div><div><b>okhttp-api</b></div><div><b>pam-auth</b></div><div><b>pipeline-build-step</b></div><div><b>pipeline-github-lib</b></div><div><b>pipeline-graph-analysis</b></div><div><b>pipeline-input-step</b></div><div><b>pipeline-milestone-step</b></div><div><b>pipeline-model-api</b></div><div><b>pipeline-model-definition</b></div><div><b>pipeline-model-extensions</b></div><div><b>pipeline-rest-api</b></div><div><b>pipeline-stage-step</b></div><div><b>pipeline-stage-tags-metadata</b></div><div><b>pipeline-stage-view</b></div><div><b>plain-credentials</b></div><div><b>plugin-util-api</b></div><div><b>popper2-api</b></div><div><b>popper-api</b></div><div><b>resource-disposer</b></div><div><b>scm-api</b></div><div><b>script-security</b></div><div><b>snakeyaml-api</b></div><div><b>ssh-credentials</b></div><div><b>sshd</b></div><div><b>ssh-slaves</b></div><div><b>structs</b></div><div><b>timestamper</b></div><div><b>token-macro</b></div><div><b>trilead-api</b></div><div><b>windows-slaves</b></div><div><b>workflow-aggregator</b></div><div><b>workflow-api</b></div><div><b>workflow-basic-steps</b></div><div><b>workflow-cps</b></div><div><b>workflow-cps-global-lib</b></div><div><b>workflow-durable-task-step</b></div><div><b>workflow-job</b></div><div><b>workflow-multibranch</b></div><div><b>workflow-scm-step</b></div><div><b>workflow-step-api</b></div><div><b>workflow-support</b></div><div><b>ws-cleanup</b></div><div><br /></div><h2 style="text-align: left;">Users</h2><div style="text-align: left;"><a href="https://sharadchhetri.com/create-jenkins-user-command-line-gui/" target="_blank">How to create Jenkins user by command line and GUI</a></div><div style="text-align: left;"><br /></div><div style="text-align: left;"><h2><a href="https://www.jenkins.io/doc/tutorials/build-a-java-app-with-maven/" target="_blank">Build a Java app with Maven</a></h2><p>You can jump past the Docker setup if you already did the above by scrolling down to <b>Fork and clone the sample repository</b>. Also ignore docker stuff in project setup.</p><p><br /></p></div><h2 style="text-align: left;">Sorting Issues</h2><h3 style="text-align: left;">I can't seem to login to Jenkins after restart.</h3><p><a href="https://stackoverflow.com/questions/6988849/how-to-reset-jenkins-security-settings-from-the-command-line" target="_blank">Lots of posts say to do something like</a></p><p><b><i>sed -i 's/<useSecurity>true<\/useSecurity>/<useSecurity>false<\/useSecurity>/g' /var/lib/jenkins/config.xml</i></b></p><p>but that assumes you set up with a local DB instead of the linux users. If you make the change and are using the local auth Jenkins will not even start. Worse yet, it fails quietly wasting even more time digging uselessly to try and find an error to solve. Here is the rub. In order to use the local auth system the user Jenkins runs at needs to be able to read <b>/etc/shadow</b> which means running root or hacking perms. So despite using the local users making the most sense logistically, it makes little sense security wise so you want to switch to something else but first you need to get in. The way that works is to <a href="https://stackoverflow.com/questions/25041125/default-jenkins-user-password" target="_blank">set the password for the user you are running Jenkins as</a>. </p><p>Now you can login with that user and password and change the <b>Security Realm</b> in <b>Configure Global Securit</b>y to something else. Jenkins’ own user database makes the most sense for me.</p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgsKqvBoGuNdNTDWQbaL3GhUJ_E8x_vAQGYF0SXND1sN8O7jY9dBDJt0sbaNacYvZikM5ODyAKoq11XeSHn68EIeI1szHtdo27aoEm0zACquGOSjEeva1GM7e-8yloGqODJz2RAFqylMQ/s1043/2021-09-01_11-44-38.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="535" data-original-width="1043" height="328" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgsKqvBoGuNdNTDWQbaL3GhUJ_E8x_vAQGYF0SXND1sN8O7jY9dBDJt0sbaNacYvZikM5ODyAKoq11XeSHn68EIeI1szHtdo27aoEm0zACquGOSjEeva1GM7e-8yloGqODJz2RAFqylMQ/w640-h328/2021-09-01_11-44-38.png" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Jenkins Configure Global Security page</td></tr></tbody></table><br />Info on options can be found <a href="https://wiki.jenkins.io/display/JENKINS/Standard+Security+Setup" target="_blank">here</a>.<br /><p>To be closer to my work setup I made it a bit fancier.</p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPI9o-Ji25tlIBj9bcBy2AoSpuedsKE_K0-_fPHpau3RdIVcTwdTxnmfKpFXdEXNtox49k32QRy6_G89Oxbst-h9y95RRyaQ4h7cQ3AlT1_Iv3B7tvMt8G1iJeCYyLwr4XfwlUU2koks4/s1920/2021-09-01_12-05-55.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="937" data-original-width="1920" height="312" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPI9o-Ji25tlIBj9bcBy2AoSpuedsKE_K0-_fPHpau3RdIVcTwdTxnmfKpFXdEXNtox49k32QRy6_G89Oxbst-h9y95RRyaQ4h7cQ3AlT1_Iv3B7tvMt8G1iJeCYyLwr4XfwlUU2koks4/w640-h312/2021-09-01_12-05-55.png" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Project-based Matrix Authorization Strategy example</td></tr></tbody></table><br /><div>If you do the above project based auth you will also want to config <b>Access Control for Builds</b></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiS7XK_2I-1Nvoo482cmDVgJRhfaLhuEIeaCbz2f8PYpZnY_YHcGdeMC41eKQr8gnWF20s-qhZVRNiVenr__io4c7x9jgfsUDXvGioZxCbUR1_ozvA3I6AoKzaUPQr40Rhj-TVb_1CPnA0/s1057/2021-09-01_12-25-00.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="909" data-original-width="1057" height="550" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiS7XK_2I-1Nvoo482cmDVgJRhfaLhuEIeaCbz2f8PYpZnY_YHcGdeMC41eKQr8gnWF20s-qhZVRNiVenr__io4c7x9jgfsUDXvGioZxCbUR1_ozvA3I6AoKzaUPQr40Rhj-TVb_1CPnA0/w640-h550/2021-09-01_12-25-00.png" width="640" /></a></div><br /><div>To make life somewhat simpler though I'm defaulting to running builds as the jenkins user. To sort perms then I needed to run</div><div><b><i>chown jenkins.jenkins -R /var/lib/jenkins/workspace/</i></b></div><div><br /></div><div>You might also want to look at <a href="https://www.guru99.com/create-users-manage-permissions.html#2" target="_blank">How to Install Role Strategy Plugin in Jenkins</a></div><div><br /></div><div><h3 style="text-align: left;"><a href="https://intellipaat.com/community/16962/could-not-lock-config-file-git-config-permission-denied-in-jenkins-build" target="_blank">Could not lock config file../.git/config :permission denied in Jenkins build</a></h3><h2 style="text-align: left;"><span style="font-size: small; font-weight: normal;">I hit this because I added a project and built it before restarting so everything was owned by and restricted to root.</span></h2></div><div><br /></div>Avatar42http://www.blogger.com/profile/02989695403513365236noreply@blogger.com0tag:blogger.com,1999:blog-4206308026427876681.post-7184522895890489092021-07-22T11:00:00.006-07:002021-09-01T11:34:46.186-07:00A2Hosting unmanaged VPS set up<h2 style="text-align: left;"><span style="font-size: large;">What did not work</span></h2><p><span style="font-size: medium;"><a href="https://www.trustfm.net/ebooks/DedicatedServer.php?page=Email" target="_blank">Configure a Dedicated Server with Webmin</a></span></p><p>External email just did not work. Tried lots of fixes but nothing seemed to sort it.</p><p><span style="font-size: large;"></span></p><p><a href="https://docs.iredmail.org/install.iredmail.on.rhel.html" target="_blank">Install iRedMail on Red Hat Enterprise Linux, CentOS</a></p><p>Seemed to collide with Apache so web stuff did not work and neither did any email. started to try and repair but basically started looking like starting over so I did.</p><div><a href="https://www.howtoforge.com/tutorial/perfect-server-centos-7-apache-mysql-php-pureftpd-postfix-dovecot-and-ispconfig/" target="_blank">The Perfect Server CentOS 7.6 with Apache, PHP 7.2, Postfix, Dovecot, Pure-FTPD, BIND and ISPConfig 3.1</a></div><div>Got most of the way through. Was installing tons of extra stuff and started hitting stuff that was no longer supported so started over yet again.</div><div><br /></div><div><p><a href="https://www.ionos.com/digitalguide/e-mail/technical-matters/postfix-mail-server-with-dovecot-and-roundcube-on-centos-7/" target="_blank">Postfix mail server with Dovecot and RoundCube on CentOS 7</a></p><a href="https://www.trustfm.net/ebooks/DedicatedServer.php?page=EmailSASL" target="_blank"></a><p><a href="https://www.digitalocean.com/community/tutorials/how-to-install-and-use-webmin-on-centos-7" target="_blank">How To Install and Use Webmin on CentOS 7</a></p><div><a href="https://www.trustfm.net/ebooks/DedicatedServer.php?page=Email" target="_blank">10-Setup Email server</a></div><div><a href="https://www.trustfm.net/ebooks/DedicatedServer.php?page=EmailSASL" target="_blank">11-Setup SASL</a></div><div><a href="https://www.trustfm.net/ebooks/DedicatedServer.php?page=EmailAccounts" target="_blank">12-Setup Email accounts</a></div></div><h2 style="text-align: left;">What did</h2><div><p><a href="https://www.a2hosting.com/kb/a2-hosting-products/unmanaged-vps/installing-an-operating-system-on-a-virtualizor-unmanaged-vps" target="_blank">How to Install an Operating System on a Virtualizor Unmanaged VPS</a></p><p><a href="https://www.a2hosting.com/kb/getting-started-guide/unmanaged-vps-quick-start-guide" target="_blank">Unmanaged VPS Quick Start Guide</a></p><p><a href="https://www.digitalocean.com/community/tutorials/initial-server-setup-with-centos-7" target="_blank">setup ssh keys</a></p><p><b><i>yum install yum-utils</i></b></p><p><b><i>yum install dos2unix</i></b></p><p><a href="https://www.linode.com/docs/security/securing-your-server/" target="_blank">How to Secure Your Server</a></p><p><a href="https://www.virtualmin.com/download.html" target="_blank">Downloading and Installing Virtualmin</a></p><p>Canceled out when installer wanted to start messing with network interfaces but clear email local and external with auth works.</p><p><span style="background-color: #fcff01;">Created redirect to old server in index.html to hide website under construction.</span></p><div><p><b><i>vi /var/www/html/index.html</i></b></p><p>Change it to</p><p style="text-align: left;"><span style="background-color: #eeeeee;"><html><br /><head><br /><meta http-equiv=refresh content=0;url=http://dea42.com><br /></head><br /></html></span></p><p style="text-align: left;"></p></div><div><div style="text-align: left;"><b><i><br /></i></b></div><div style="text-align: left;"><b><i>vi /var/www/html/info.php</i></b></div><div>add to the file</div><div><pre class="code-pre" style="background: rgb(242, 242, 242); border-radius: 3px; box-sizing: border-box; color: #545454; direction: ltr; font-family: Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace; font-size: 14px; hyphens: none; line-height: 1.4em; margin: 1rem auto; overflow-wrap: normal; overflow: auto; padding: 1rem; text-shadow: none; width: 750px; word-break: normal;"><code style="background: 0px 0px; border-radius: 3px; box-sizing: border-box; direction: ltr; font-family: Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace; hyphens: none; line-height: 22px; margin: 0px; padding: 0px; text-shadow: none; word-break: normal; word-spacing: normal;"><?php phpinfo(); ?></code></pre></div><div>goto <b style="font-style: italic;">http://your_server_IP_address/info.php</b> to confirm is working and it was not. </div></div><p>Given compatibility issues above PHP 7.2 sticking with 7.2 for now.</p><p><b><i>yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm</i></b></p><p><b><i>yum-config-manager --enable remi-php72</i></b></p><p><b><i>yum -y install mod_ssl php php-mysql php-mbstring phpmyadmin php-intl</i></b></p><p><b><i>echo "RequestHeader unset Proxy early" >> /etc/httpd/conf/httpd.conf</i></b></p><p>to access phpMyAdmin from another machine you will need to edit</p><p>/etc/httpd/conf.d/phpMyAdmin.conf In my case I just added <a href="https://www.whatismyip.com/" target="_blank">the ip I was working from</a> <span style="background-color: #fcff01;">70.121.71.135</span> but you could comment out / remove the RequireAny sections to allow any IP.</p><p><span style="background-color: #eeeeee;"><Directory /usr/share/phpMyAdmin/></span></p><p><span style="background-color: #eeeeee;"> AddDefaultCharset UTF-8</span></p><p><span style="background-color: #eeeeee;"> <IfModule mod_authz_core.c></span></p><p><span style="background-color: #eeeeee;"> # Apache 2.4</span></p><p><span style="background-color: #eeeeee;"> <RequireAny></span></p><p><span style="background-color: #eeeeee;"> Require ip 127.0.0.1</span></p><p><span style="background-color: #fcff01;"> Require ip 70.121.71.135</span></p><p><span style="background-color: #eeeeee;"> Require ip ::1</span></p><p><span style="background-color: #eeeeee;"> </RequireAny></span></p><p><span style="background-color: #eeeeee;"> </IfModule></span></p><p><span style="background-color: #eeeeee;"> <IfModule !mod_authz_core.c></span></p><p><span style="background-color: #eeeeee;"> # Apache 2.2</span></p><p><span style="background-color: #eeeeee;"> Order Deny,Allow</span></p><p><span style="background-color: #eeeeee;"> Deny from All</span></p><p><span style="background-color: #eeeeee;"> Allow from 127.0.0.1</span></p><p><span style="background-color: #eeeeee;"> Allow from ::1</span></p><p><span style="background-color: #eeeeee;"> </IfModule></span></p><p><span style="background-color: #eeeeee;"></Directory></span></p><p><span style="background-color: #eeeeee;"><Directory /usr/share/phpMyAdmin/setup/></span></p><p><span style="background-color: #eeeeee;"> <IfModule mod_authz_core.c></span></p><p><span style="background-color: #eeeeee;"> # Apache 2.4</span></p><p><span style="background-color: #eeeeee;"> <RequireAny></span></p><p><span style="background-color: #eeeeee;"> Require ip 127.0.0.1</span></p><p><span style="background-color: #fcff01;"> Require ip 70.121.71.135</span></p><p><span style="background-color: #eeeeee;"> Require ip ::1</span></p><p><span style="background-color: #eeeeee;"> </RequireAny></span></p><p><span style="background-color: #eeeeee;"> </IfModule></span></p><p><span style="background-color: #eeeeee;"> <IfModule !mod_authz_core.c></span></p><p><span style="background-color: #eeeeee;"> # Apache 2.2</span></p><p><span style="background-color: #eeeeee;"> Order Deny,Allow</span></p><p><span style="background-color: #eeeeee;"> Deny from All</span></p><p><span style="background-color: #eeeeee;"> Allow from 127.0.0.1</span></p><p><span style="background-color: #eeeeee;"> Allow from ::1</span></p><p><span style="background-color: #eeeeee;"> </IfModule></span></p><p><span style="background-color: #eeeeee;"></Directory></span></p><p><a href="https://www.php.net/manual/en/timezones.america.php" target="_blank"><span>Be sure </span>date.timezone is set in /etc/php.ini</a></p><p><b><i>service httpd restart</i></b></p></div><div>Check PHP again and if working</div><div><div><b><i>rm -f </i></b><b><i>/var/www/html/info.php</i></b></div><div><br /></div></div><div>Remote DB logins are still disabled so phpMyAdmin will still not let you login yet. You can't even run </div><div><b><i>mysql -u root -p</i></b></div><div>so run</div><div><b><i>mysql_secure_installation</i></b></div><div>to sort. <a href="https://makandracards.com/makandra/52545-how-to-add-a-user-with-all-privileges-to-mariadb" target="_blank">Preferably adding an alternate "root" user after</a>. As in</div><div><b><i>mysql -u root -p</i></b></div><div><b><i>CREATE USER 'notRoot'@'%' IDENTIFIED BY 'P@$$w0rd';</i></b></div><div><b><i>grant all privileges on *.* to 'notRoot'@'%';</i></b></div><div><b><i>flush privileges;</i></b></div><div><b><i><br /></i></b></div><div><b><a href="https://stackoverflow.com/questions/26515700/mysql-jdbc-driver-5-1-33-time-zone-issue" target="_blank">Set MySQL server time zone</a></b></div><div>Better to set default time zone in /etc/my.cnf under [mysqld]</div><div>default-time-zone=America/Chicago</div><div><a href="https://stackoverflow.com/questions/4562456/mysql-setting-time-zone-in-my-cnf-options-file" target="_blank">MySQL: setting time_zone in my.cnf options file</a></div><div><a href="https://www.brucedev.com/posts/fatal-error-illegal-or-unknown-default-time-zone-in-mysql/" target="_blank">Fatal error: Illegal or unknown default time zone in MySQL</a></div><div><b><i><br /></i></b></div><div><a href="https://roundcube.net/download/" target="_blank">Install Roundcube</a></div><div>After running <a href="https://github.com/roundcube/roundcubemail/wiki/Installation" target="_blank">installer </a>I found I needed to add</div><div><b>$config['enigma_pgp_homedir'] = 'plugins/enigma';</b></div><div>to the end of <b>config/config.inc.php</b></div><div><br /></div><div><div>And finish SSL setup by changing conf.d/ssl.conf to</div><div><div><span style="background-color: #eeeeee;">Listen 443 https</span></div><div><span style="background-color: #eeeeee;">SSLPassPhraseDialog exec:/usr/libexec/httpd-ssl-pass-dialog</span></div><div><span style="background-color: #eeeeee;">SSLSessionCache shmcb:/run/httpd/sslcache(512000)</span></div><div><span style="background-color: #eeeeee;">SSLSessionCacheTimeout 300</span></div><div><span style="background-color: #eeeeee;">SSLRandomSeed startup file:/dev/urandom 256</span></div><div><span style="background-color: #eeeeee;">SSLRandomSeed connect builtin</span></div><div><span style="background-color: #eeeeee;">SSLCryptoDevice builtin</span></div><div><span style="background-color: #eeeeee;"><VirtualHost _default_:443></span></div><div><span style="background-color: #eeeeee;">ErrorLog logs/ssl_error_log</span></div><div><span style="background-color: #eeeeee;">TransferLog logs/ssl_access_log</span></div><div><span style="background-color: #eeeeee;">LogLevel warn</span></div><div><span style="background-color: #eeeeee;">SSLEngine on</span></div><div><span style="background-color: #eeeeee;">SSLProtocol all -SSLv2 -SSLv3</span></div><div><span style="background-color: #eeeeee;">SSLCipherSuite HIGH:3DES:!aNULL:!MD5:!SEED:!IDEA</span></div><div><span style="background-color: #eeeeee;">SSLCertificateFile /etc/webmin/letsencrypt-cert.pem</span></div><div><span style="background-color: #eeeeee;">SSLCertificateKeyFile /etc/webmin/letsencrypt-key.pem</span></div><div><span style="background-color: #eeeeee;">SSLCertificateChainFile /etc/webmin/letsencrypt-ca.pem</span></div><div><span style="background-color: #eeeeee;"><Files ~ "\.(cgi|shtml|phtml|php3?)$"></span></div><div><span style="background-color: #eeeeee;"> SSLOptions +StdEnvVars</span></div><div><span style="background-color: #eeeeee;"></Files></span></div><div><span style="background-color: #eeeeee;"><Directory "/var/www/cgi-bin"></span></div><div><span style="background-color: #eeeeee;"> SSLOptions +StdEnvVars</span></div><div><span style="background-color: #eeeeee;"></Directory></span></div><div><span style="background-color: #eeeeee;">BrowserMatch "MSIE [2-5]" \</span></div><div><span style="background-color: #eeeeee;"> nokeepalive ssl-unclean-shutdown \</span></div><div><span style="background-color: #eeeeee;"> downgrade-1.0 force-response-1.0</span></div><div><span style="background-color: #eeeeee;">CustomLog logs/ssl_request_log \</span></div><div><span style="background-color: #eeeeee;"> "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"</span></div><div><span style="background-color: #eeeeee;"></VirtualHost></span></div></div><div><br /></div><div><p style="background-color: white; border: 0px; color: #3a3a3a; font-family: Muli, sans-serif; font-size: 17px; margin: 0px 0px 1.5em; padding: 0px;"><a href="https://www.digitalocean.com/community/tutorials/how-to-set-up-mod_rewrite-for-apache-on-centos-7" target="_blank">Now you need to edit or create <span style="border: 0px; font-weight: 700; margin: 0px; padding: 0px;">.htaccess</span> file in your domain root directory and add these lines to redirect http to https.</a></p><div style="border: 0px; margin: 0px 0px 1.5em; padding: 0px; text-align: left;"><span style="background-color: #cccccc;"><span face="Muli, sans-serif" style="color: #3a3a3a;"><span style="font-size: 17px;">Options +SymLinksIfOwnerMatch<br /></span></span><span face="Muli, sans-serif" style="color: #3a3a3a;"><span style="font-size: 17px;">RewriteEngine On<br /></span></span><span face="Muli, sans-serif" style="color: #3a3a3a;"><span style="font-size: 17px;">RewriteCond %{HTTPS} !=on<br /></span></span><span face="Muli, sans-serif" style="color: #3a3a3a;"><span style="font-size: 17px;">RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]<br /></span></span><span face="Muli, sans-serif" style="color: #3a3a3a;"><span style="font-size: 17px;">Header always set Content-Security-Policy "upgrade-insecure-requests;"</span></span></span></div></div><div><p style="background-color: white; box-sizing: border-box; color: #333333; font-family: Inter-Regular, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: 1.7; margin: 0px auto 22px; padding: 0px; width: 745px;"><a href="https://www.tecmint.com/redirect-http-to-https-on-apache/" target="_blank">Before using a <code style="background: rgb(242, 242, 242); border-radius: 3px; box-sizing: border-box; color: #545454; direction: ltr; font-family: Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace; font-size: 0.9375em; hyphens: none; line-height: 22px; padding: 3px; text-shadow: none; white-space: pre; word-break: normal; word-spacing: normal;">.htaccess</code> file, we need to update the <code style="background: rgb(242, 242, 242); border-radius: 3px; box-sizing: border-box; color: #545454; direction: ltr; font-family: Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace; font-size: 0.9375em; hyphens: none; line-height: 22px; padding: 3px; text-shadow: none; white-space: pre; word-break: normal; word-spacing: normal;">AllowOverride</code> setting to be able to overwrite Apache directives.</a></p><p style="background-color: white; box-sizing: border-box; font-family: Inter-Regular, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: 1.7; margin: 0px auto 22px; padding: 0px; width: 745px;"><b><i><span class="token function" style="background: 0px 0px; border-radius: 0px; box-sizing: border-box; display: inline; font-family: Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace; font-size: 13.6px; line-height: 1.4em; margin: 0px; padding: 0px; text-shadow: none; white-space: pre;">vi</span><span style="background-color: #f2f2f2; font-family: Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace; font-size: 14px; white-space: pre;"> /etc/httpd/conf/httpd.conf</span></i></b></p><div class="code-toolbar" style="background-color: white; box-sizing: border-box; color: #333333; font-family: Inter-Regular, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; margin-left: auto; margin-right: auto; position: relative; width: 745px;"><div class="context" style="box-sizing: border-box;"><span style="box-sizing: border-box; font-size: 0px; line-height: 0; opacity: 0; pointer-events: none; position: absolute;"> </span></div><div class="toolbar" style="box-sizing: border-box; opacity: 0; position: absolute; right: 0.2em; top: 0.3em; transition: opacity 0.3s ease-in-out 0s;"><div class="toolbar-item" style="box-sizing: border-box; display: inline-block;"><button style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: 0px 0px; background-repeat: initial; background-size: initial; border-color: initial; border-radius: 0.5em; border-style: initial; border-width: 0px; box-shadow: none; color: #0069ff; cursor: pointer; font-family: inherit; font-size: 0.8em; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; overflow: visible; padding: 0px 0.5em; transition: color 0.2s ease-in-out 0s; user-select: none;">Copy</button></div></div></div><p style="background-color: white; box-sizing: border-box; color: #333333; font-family: Inter-Regular, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: 1.7; margin: 0px auto 22px; padding: 0px; width: 745px;">Locate the <code style="background: rgb(242, 242, 242); border-radius: 3px; box-sizing: border-box; color: #545454; direction: ltr; font-family: Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace; font-size: 0.9375em; hyphens: none; line-height: 22px; padding: 3px; text-shadow: none; white-space: pre; word-break: normal; word-spacing: normal;"><Directory /var/www/html></code> section and change the <code style="background: rgb(242, 242, 242); border-radius: 3px; box-sizing: border-box; color: #545454; direction: ltr; font-family: Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace; font-size: 0.9375em; hyphens: none; line-height: 22px; padding: 3px; text-shadow: none; white-space: pre; word-break: normal; word-spacing: normal;">AllowOverride</code> directive from <code style="background: rgb(242, 242, 242); border-radius: 3px; box-sizing: border-box; color: #545454; direction: ltr; font-family: Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace; font-size: 0.9375em; hyphens: none; line-height: 22px; padding: 3px; text-shadow: none; white-space: pre; word-break: normal; word-spacing: normal;">None</code> to <code style="background: rgb(242, 242, 242); border-radius: 3px; box-sizing: border-box; color: #545454; direction: ltr; font-family: Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace; font-size: 0.9375em; hyphens: none; line-height: 22px; padding: 3px; text-shadow: none; white-space: pre; word-break: normal; word-spacing: normal;">All</code>:</p><div class="code-label" style="background-color: #e5e5e5; border-radius: 3px 3px 0px 0px; box-sizing: border-box; color: #323232; font-family: Inter-Regular, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; margin-left: auto; margin-right: auto; padding: 8px 15px; position: relative; text-align: center; width: 745px; z-index: 2;" title="/etc/httpd/conf/httpd.conf">/etc/httpd/conf/httpd.conf</div><div class="code-toolbar" style="background-color: white; box-sizing: border-box; color: #333333; font-family: Inter-Regular, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; margin-left: auto; margin-right: auto; position: relative; width: 745px;"><div class="context" style="box-sizing: border-box;"><pre class="code-pre language-bash" style="background: rgb(242, 242, 242); border-radius: 0px 0px 3px 3px; border-top: 0px; box-sizing: border-box; color: #545454; direction: ltr; font-family: Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace; font-size: 13.6px; hyphens: none; line-height: 1.4em; margin-bottom: 1rem; margin-top: 0px; overflow-wrap: normal; overflow: auto; padding: 1rem; tab-size: 4; text-shadow: none; word-break: normal; word-spacing: normal;"><code class="code-highlight language-bash" style="background: 0px 0px; border-radius: 3px; box-sizing: border-box; direction: ltr; font-family: Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace; hyphens: none; line-height: 1.4em; margin: 0px; overflow-wrap: normal; padding: 0px; tab-size: 4; text-shadow: none; word-break: normal; word-spacing: normal;"><span class="token builtin class-name" style="background: 0px 0px; border-radius: 0px; box-sizing: border-box; color: #e0276a; display: inline; line-height: 1.4em; margin: 0px; padding: 0px; text-shadow: none;">.</span> <span class="token builtin class-name" style="background: 0px 0px; border-radius: 0px; box-sizing: border-box; color: #e0276a; display: inline; line-height: 1.4em; margin: 0px; padding: 0px; text-shadow: none;">.</span> <span class="token builtin class-name" style="background: 0px 0px; border-radius: 0px; box-sizing: border-box; color: #e0276a; display: inline; line-height: 1.4em; margin: 0px; padding: 0px; text-shadow: none;">.</span>
<span class="token operator" style="background: 0px 0px; border-radius: 0px; box-sizing: border-box; color: #666a71; display: inline; line-height: 1.4em; margin: 0px; padding: 0px; text-shadow: none;"><</span>Directory /var/www/html<span class="token operator" style="background: 0px 0px; border-radius: 0px; box-sizing: border-box; color: #666a71; display: inline; line-height: 1.4em; margin: 0px; padding: 0px; text-shadow: none;">></span>
<span class="token builtin class-name" style="background: 0px 0px; border-radius: 0px; box-sizing: border-box; color: #e0276a; display: inline; line-height: 1.4em; margin: 0px; padding: 0px; text-shadow: none;">.</span> <span class="token builtin class-name" style="background: 0px 0px; border-radius: 0px; box-sizing: border-box; color: #e0276a; display: inline; line-height: 1.4em; margin: 0px; padding: 0px; text-shadow: none;">.</span> <span class="token builtin class-name" style="background: 0px 0px; border-radius: 0px; box-sizing: border-box; color: #e0276a; display: inline; line-height: 1.4em; margin: 0px; padding: 0px; text-shadow: none;">.</span>
<span class="token comment" style="background: 0px 0px; border-radius: 0px; box-sizing: border-box; color: #808591; display: inline; line-height: 1.4em; margin: 0px; padding: 0px; text-shadow: none;">#</span>
<span class="token comment" style="background: 0px 0px; border-radius: 0px; box-sizing: border-box; color: #808591; display: inline; line-height: 1.4em; margin: 0px; padding: 0px; text-shadow: none;"># AllowOverride controls what directives may be placed in .htaccess files.</span>
<span class="token comment" style="background: 0px 0px; border-radius: 0px; box-sizing: border-box; color: #808591; display: inline; line-height: 1.4em; margin: 0px; padding: 0px; text-shadow: none;"># It can be "All", "None", or any combination of the keywords:</span>
<span class="token comment" style="background: 0px 0px; border-radius: 0px; box-sizing: border-box; color: #808591; display: inline; line-height: 1.4em; margin: 0px; padding: 0px; text-shadow: none;"># Options FileInfo AuthConfig Limit</span>
<span class="token comment" style="background: 0px 0px; border-radius: 0px; box-sizing: border-box; color: #808591; display: inline; line-height: 1.4em; margin: 0px; padding: 0px; text-shadow: none;">#</span>
<span class="highlight" color="inherit" style="background: rgba(242, 201, 76, 0.35); border-radius: 3px; box-sizing: border-box; display: inline-block; margin: 1px 0px; padding: 0px 2px;"> AllowOverride All</span>
<span class="token builtin class-name" style="background: 0px 0px; border-radius: 0px; box-sizing: border-box; color: #e0276a; display: inline; line-height: 1.4em; margin: 0px; padding: 0px; text-shadow: none;">.</span> <span class="token builtin class-name" style="background: 0px 0px; border-radius: 0px; box-sizing: border-box; color: #e0276a; display: inline; line-height: 1.4em; margin: 0px; padding: 0px; text-shadow: none;">.</span> <span class="token builtin class-name" style="background: 0px 0px; border-radius: 0px; box-sizing: border-box; color: #e0276a; display: inline; line-height: 1.4em; margin: 0px; padding: 0px; text-shadow: none;">.</span>
<span class="token operator" style="background: 0px 0px; border-radius: 0px; box-sizing: border-box; color: #666a71; display: inline; line-height: 1.4em; margin: 0px; padding: 0px; text-shadow: none;"><</span>/Directory<span class="token operator" style="background: 0px 0px; border-radius: 0px; box-sizing: border-box; color: #666a71; display: inline; line-height: 1.4em; margin: 0px; padding: 0px; text-shadow: none;">></span>
<span class="token builtin class-name" style="background: 0px 0px; border-radius: 0px; box-sizing: border-box; color: #e0276a; display: inline; line-height: 1.4em; margin: 0px; padding: 0px; text-shadow: none;">.</span> <span class="token builtin class-name" style="background: 0px 0px; border-radius: 0px; box-sizing: border-box; color: #e0276a; display: inline; line-height: 1.4em; margin: 0px; padding: 0px; text-shadow: none;">.</span> <span class="token builtin class-name" style="background: 0px 0px; border-radius: 0px; box-sizing: border-box; color: #e0276a; display: inline; line-height: 1.4em; margin: 0px; padding: 0px; text-shadow: none;">.</span></code></pre><span style="box-sizing: border-box; font-size: 0px; line-height: 0; opacity: 0; pointer-events: none; position: absolute;"> </span></div><div class="toolbar" style="box-sizing: border-box; opacity: 0; position: absolute; right: 0.2em; top: 0.3em; transition: opacity 0.3s ease-in-out 0s;"><div class="toolbar-item" style="box-sizing: border-box; display: inline-block;"><button style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: 0px 0px; background-repeat: initial; background-size: initial; border-color: initial; border-radius: 0.5em; border-style: initial; border-width: 0px; box-shadow: none; color: #0069ff; cursor: pointer; font-family: inherit; font-size: 0.8em; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; overflow: visible; padding: 0px 0.5em; transition: color 0.2s ease-in-out 0s; user-select: none;">Copy</button></div></div></div><p style="background-color: white; box-sizing: border-box; color: #333333; font-family: Inter-Regular, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: 1.7; margin: 0px auto 22px; padding: 0px; width: 745px;">Save and exit the file and then restart Apache to apply the change:</p></div></div><div><b><i>service httpd restart</i></b></div><div><br /></div><div><a href="https://stackoverflow.com/questions/61402334/allowzonedrifting-firewalld-what-is-it-and-should-i-disable-it" target="_blank">AllowZoneDrifting - Firewalld: What is it and should I disable it?</a></div><div><br /></div><div>At this point I tried several things attempting to get email working but still did not have incoming working when I got distracted by all the failed login attempts getting logged but not banned so I stopped to config fail2ban. </div><div><div><a href="https://serverfault.com/questions/746468/how-to-detect-smtp-auth-attempts-in-fail2ban" target="_blank">How to detect SMTP AUTH attempts in Fail2Ban?</a></div></div><div><div><a href="https://serverfault.com/questions/849025/automatically-block-ip-who-requests-certain-url-using-fail2ban" target="_blank">Automatically block IP who requests certain URL using Fail2ban</a></div></div><div><br /></div><div><br /></div><div>When I came back to email it was working. So here are the active lines in the postfix config file to get domain (dea42.org) with <a href="https://tecadmin.net/setup-catch-all-email-account-in-postfix/" target="_blank">catchall set to deliver to local user deabigt</a>.</div><div><br /></div><h4 style="text-align: left;">main.cf</h4><div><div><span style="background-color: #eeeeee;">command_directory = /usr/sbin</span></div><div><span style="background-color: #eeeeee;">daemon_directory = /usr/libexec/postfix</span></div><div><span style="background-color: #eeeeee;">data_directory = /var/lib/postfix</span></div><div><span style="background-color: #eeeeee;">mydomain = dea42.org</span></div><div><span style="background-color: #eeeeee;">inet_protocols = all</span></div><div><span style="background-color: #eeeeee;">mydestination = $myhostname, localhost.$mydomain, localhost, server.dea42.org</span></div><div><span style="background-color: #eeeeee;">unknown_local_recipient_reject_code = 550</span></div><div><span style="background-color: #eeeeee;">alias_maps = hash:/etc/aliases</span></div><div><span style="background-color: #eeeeee;">alias_database = hash:/etc/aliases</span></div><div><span style="background-color: #eeeeee;">debug_peer_level = 2</span></div><div><span style="background-color: #eeeeee;">debugger_command =</span></div><div><span style="background-color: #eeeeee;"> PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin</span></div><div><span style="background-color: #eeeeee;"> ddd $daemon_directory/$process_name $process_id & sleep 5</span></div><div><span style="background-color: #eeeeee;">sendmail_path = /usr/sbin/sendmail.postfix</span></div><div><span style="background-color: #eeeeee;">newaliases_path = /usr/bin/newaliases.postfix</span></div><div><span style="background-color: #eeeeee;">mailq_path = /usr/bin/mailq.postfix</span></div><div><span style="background-color: #eeeeee;">setgid_group = postdrop</span></div><div><span style="background-color: #eeeeee;">html_directory = no</span></div><div><span style="background-color: #eeeeee;">manpage_directory = /usr/share/man</span></div><div><span style="background-color: #eeeeee;">sample_directory = /usr/share/doc/postfix-2.10.1/samples</span></div><div><span style="background-color: #eeeeee;">readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES</span></div><div><span style="background-color: #eeeeee;">virtual_alias_maps = hash:/etc/postfix/virtual</span></div><div><span style="background-color: #eeeeee;">sender_bcc_maps = hash:/etc/postfix/bcc</span></div><div><span style="background-color: #eeeeee;">sender_dependent_default_transport_maps = hash:/etc/postfix/dependent</span></div><div><span style="background-color: #eeeeee;">mailbox_command = /usr/bin/procmail-wrapper -o -a $DOMAIN -d $LOGNAME</span></div><div><span style="background-color: #eeeeee;">home_mailbox = Maildir/</span></div><div><span style="background-color: #eeeeee;">smtpd_sasl_auth_enable = yes</span></div><div><span style="background-color: #eeeeee;">smtpd_tls_security_level = may</span></div><div><span style="background-color: #eeeeee;">broken_sasl_auth_clients = yes</span></div><div><span style="background-color: #eeeeee;">smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination</span></div><div><span style="background-color: #eeeeee;">smtp_tls_security_level = may</span></div><div><span style="background-color: #eeeeee;">mailbox_size_limit = 0</span></div><div><span style="background-color: #eeeeee;">allow_percent_hack = no</span></div><div><span style="background-color: #eeeeee;">smtpd_tls_key_file = /etc/webmin/letsencrypt-key.pem</span></div><div><span style="background-color: #eeeeee;">smtpd_tls_CAfile = /etc/webmin/letsencrypt-ca.pem</span></div><div><span style="background-color: #eeeeee;">smtpd_tls_cert_file = /etc/webmin/letsencrypt-cert.pem</span></div><div><span style="background-color: #eeeeee;">smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination</span></div><div><span style="background-color: #eeeeee;">myorigin = $mydomain</span></div><div><span style="background-color: #eeeeee;">myhostname = mail.dea42.org</span></div><div><span style="background-color: #eeeeee;">virtual_alias_domains = dea42.org</span></div></div><div><br /></div><h4 style="text-align: left;">master.cf</h4><div><div><span style="background-color: #eeeeee;">smtp inet n - n - - smtpd -o smtpd_sasl_auth_enable=yes -o smtpd_tls_security_level=may</span></div><div><span style="background-color: #eeeeee;">pickup unix n - n 60 1 pickup</span></div><div><span style="background-color: #eeeeee;">cleanup unix n - n - 0 cleanup</span></div><div><span style="background-color: #eeeeee;">qmgr unix n - n 300 1 qmgr</span></div><div><span style="background-color: #eeeeee;">tlsmgr unix - - n 1000? 1 tlsmgr</span></div><div><span style="background-color: #eeeeee;">rewrite unix - - n - - trivial-rewrite</span></div><div><span style="background-color: #eeeeee;">bounce unix - - n - 0 bounce</span></div><div><span style="background-color: #eeeeee;">defer unix - - n - 0 bounce</span></div><div><span style="background-color: #eeeeee;">trace unix - - n - 0 bounce</span></div><div><span style="background-color: #eeeeee;">verify unix - - n - 1 verify</span></div><div><span style="background-color: #eeeeee;">flush unix n - n 1000? 0 flush</span></div><div><span style="background-color: #eeeeee;">proxymap unix - - n - - proxymap</span></div><div><span style="background-color: #eeeeee;">proxywrite unix - - n - 1 proxymap</span></div><div><span style="background-color: #eeeeee;">smtp unix - - n - - smtp</span></div><div><span style="background-color: #eeeeee;">relay unix - - n - - smtp</span></div><div><span style="background-color: #eeeeee;">showq unix n - n - - showq</span></div><div><span style="background-color: #eeeeee;">error unix - - n - - error</span></div><div><span style="background-color: #eeeeee;">retry unix - - n - - error</span></div><div><span style="background-color: #eeeeee;">discard unix - - n - - discard</span></div><div><span style="background-color: #eeeeee;">local unix - n n - - local</span></div><div><span style="background-color: #eeeeee;">virtual unix - n n - - virtual</span></div><div><span style="background-color: #eeeeee;">lmtp unix - - n - - lmtp</span></div><div><span style="background-color: #eeeeee;">anvil unix - - n - 1 anvil</span></div><div><span style="background-color: #eeeeee;">scache unix - - n - 1 scache</span></div><div><span style="background-color: #eeeeee;">submission inet n - n - - smtpd -o smtpd_sasl_auth_enable=yes -o smtpd_tls_security_level=may</span></div><div><span style="background-color: #eeeeee;">smtps inet n - n - - smtpd -o smtpd_sasl_auth_enable=yes -o smtpd_tls_security_level=may -o smtpd_tls_wrappermode=yes</span></div></div><div><br /></div><h4 style="text-align: left;"><a href="https://serverfault.com/questions/866355/not-receiving-email-relay-access-denied-in-postfix-centos-7" target="_blank">Not receiving email : Relay access denied in Postfix (CentOS 7) - fixing virtual hosts</a></h4><div>For a catchall add @domain<span> user@localhost to /etc/postfix/virtual</span></div><div><span style="background-color: #eeeeee;">@dea42.org deabigt@localhost</span></div><div><b><i style="background-color: #fcff01;">Note @localhost is required to deliver to a local user.</i></b></div><div><br /></div><h3 style="text-align: left;">Added second domain with small PHP site and catchall email.</h3><div>To see who the email was sent to <a href="https://support.duocircle.com/support/solutions/articles/5000740179-change-message-list-columns" target="_blank">Change message list columns</a> to add To column to list view.</div><h3 style="text-align: left;">Install Tomcat</h3><div><a href="https://www.rosehosting.com/blog/install-tomcat-9-on-centos-7/" target="_blank">Install Tomcat 9 on CentOS 7</a></div><div>If you can't login to Tomcat after look at <a href="https://serverfault.com/questions/1013521/apache-tomcat-9-0-34-login-on-manager-app-and-host-manager-not-working" target="_blank">Apache Tomcat/9.0.34 Login on Manager App and Host Manager not working</a></div><div><br /></div><div><a href="https://stackoverflow.com/questions/14515708/how-to-forward-only-jsp-or-do-requests-to-tomcat-using-mod-proxy/34333922" target="_blank">How to forward only *.jsp or *.do requests to Tomcat using mod_proxy?</a></div><div><a href="https://tecadmin.net/increase-tomcat-upload-file-size-limit/" target="_blank">Increase Tomcat Upload File Size Limit</a></div><div><br /></div><div><br /></div><div>ProFTP</div><div>Change the certs to use the Let's Encrypt ones in <b>/etc/proftpd/conf.d/virtualmin.conf</b></div><div><div><span style="background-color: #eeeeee;">TLSRSACertificateFile /etc/webmin/letsencrypt-cert.pem</span></div><div><span style="background-color: #eeeeee;">TLSRSACertificateKeyFile /etc/webmin/letsencrypt-key.pem</span></div></div><div><br /></div><h2 style="text-align: left;"><span style="font-size: x-large; font-weight: 400;">TODO:</span></h2><h2 style="text-align: left;"><p style="font-size: medium; font-weight: 400;"><a href="https://techjourney.net/set-up-2fa-two-factor-authentication-in-webmin-with-authy/" target="_blank">How to Enable Two-Factor Authentication in Webmin / Virtualmin / Usermin / Cloudmin</a></p><p style="font-size: medium; font-weight: 400;"><a href="https://docs.opalstack.com/user-guide/email/#filtering-email" target="_blank">Add Procmail filters</a> <a href="https://anarc.at/blog/2016-05-12-email-setup/" target="_blank">Also see</a></p></h2><h2 style="text-align: left;"><br /></h2><h2 style="text-align: left;">Notes</h2><p><a href="https://stackoverflow.com/questions/67288261/spring-boot-create-custom-jsp-tag-unable-to-find-taglib" target="_blank">Spring Boot: Create Custom Jsp Tag - Unable to find taglib</a></p><p><a href="https://www.hostinger.com/tutorials/how-to-install-mysql-on-centos-7" target="_blank">MySQL quick ref</a></p><div><p><a href="https://www.itzgeek.com/how-tos/linux/centos-how-tos/install-phpmyadmin-4-2-7-on-centos-7-rhel-7.html" target="_blank">How To Install phpMyAdmin with Apache on CentOS 7 / RHEL 7</a></p><p><br /></p></div>Avatar42http://www.blogger.com/profile/02989695403513365236noreply@blogger.com0tag:blogger.com,1999:blog-4206308026427876681.post-90753584003152546262021-02-08T18:56:00.002-08:002021-02-08T18:57:14.448-08:00Comment on NY Times cell phone tracking piece<p>A friend posted <a href="https://www.nytimes.com/2021/02/05/opinion/capitol-attack-cellphone-data.html">this article about cell phone tracking</a> (kind of the flip side to their <a href="https://www.nytimes.com/interactive/2019/12/19/opinion/location-tracking-cell-phone.html" target="_blank">earlier and much longer article on phone tracking</a>) and I thought it needed more than a Facebook post to fill in some of the stuff missing from the article and expand on other bits. Not to increase paranoia or dismiss it but to point out things those not in IT might not know. Especially given the increasing number of posts I see about tracking worries that are way off the mark (tracking chips in vaccines for example) that often would be less of an issue even if they were real than what is actually in increasing use. I don't have an answer. Some think all tracking info should not be kept. On the other end are those that are not worried at all. In the end everyone has their own idea of acceptable risk but that should be based on actual risk factors and as the NY Times' article points out companies are making a business out of linking all available data sources.</p><h3 style="text-align: left;">Location tracking basics</h3><p>Here is the rub. Every tool can be used as a weapon. Cell phone location ping data is just a tiny fraction of the stream:</p><p></p><ul style="text-align: left;"><li>Apps track your location as well as what you did. <a href="https://www.neorhino.com/2019/10/09/what-your-mobile-apps-really-need-app-permissions-ncsam/" target="_blank">Many apps ask for WAY more perms than they need</a>. Some because the developer was lazy, some to have data to monetize.</li><li>WiFi access points can track you as you pass them even when you do not connect to them. This includes hotspots in your car. For example <div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgp33ch4ZyBK0o_y4HQyDtp00AsgYS1L9zZyr0bpCYkOmgwY4aFGQdJSkv0IKyuXqrJepA-LqPMTayG-ZkH9l66Ntpu4nJkJjd9h6j1QJNLqSoA6F3ZUjldjufVgpCULTKTAQ3eD22BTbI/s1920/2021-02-08_12-40-40.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="937" data-original-width="1920" height="98" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgp33ch4ZyBK0o_y4HQyDtp00AsgYS1L9zZyr0bpCYkOmgwY4aFGQdJSkv0IKyuXqrJepA-LqPMTayG-ZkH9l66Ntpu4nJkJjd9h6j1QJNLqSoA6F3ZUjldjufVgpCULTKTAQ3eD22BTbI/w200-h98/2021-02-08_12-40-40.png" width="200" /></a></div><br /></li><li>Linked security camera and <a href="https://www.google.com/search?q=wide+area+motion+imagery&oq=Wide" target="_blank">WAMI</a> systems can basically TiVo an area to allow forward and backward tracking of multiple objects over the entire coverage area which is growing fast. You might be amazed how many posts I see of people having or wanting license plate readers to log cars passing their house. I might note too want a Pan, Tilt and Zoom (PTZ) camera because they think it will somehow locate and track people in range. <a href="https://securitycam101.rmrr42.com/search/label/PTZ" target="_blank">More here to why they won't.</a> So if WAMI for homes became available there would probably many that would sign up.</li><li>Bluetooth is getting strong enough these days to be used as well <a href="https://www.nytimes.com/interactive/2019/06/14/opinion/bluetooth-wireless-tracking-privacy.html" target="_blank">and is</a>.</li><li>Then there is <a href="https://lora-alliance.org/" target="_blank">LoRa</a> which Amazon just adopted as part of <a href="https://developer.amazon.com/en-US/blogs/alexa/device-makers/2020/09/amazon-sidewalk-paves-the-way-for-more-connected-communities" target="_blank">Sidewalk</a> and so on. </li><li>Not to mention almost everything is or will shortly be connect to the internet. If it can ID you (as in you have any sort of auth on it) there is another data point. </li></ul><p></p><p>That means it is virtually impossible to not be tracked now and it will only get harder as data storage rates drop, computing power increases and systems get deployed and continue to interconnect. The thing is that the data is huge so without a reason it generally just gets stored for "in case". Developers will always err on the side of having too much data to debug with and for future features. Companies are always looking for new features to offer customers and ways to monetize having to store the data they have. And all too often security and QA are seen as overhead costs to be kept to a min. Add to that governments will always want more and better tools the track down "criminals" and most people will be happy to comply as long as they assume it will never be used against them or they think they can exclude themselves. Look at all the people commenting on rep posts without <a href="https://www.facebook.com/help/157047021494292" target="_blank">constituent badges</a> because they seem to think that means Facebook will not know where they are even though if you log in from a diff browser you get a notification telling you your account was just access from machine X in city Y. Failed logins are logged too. Even by basic hosted website has that level of tracking by default so you can imagine what a site like Facebook is doing. Even a non static IP is linked to a location for the length of the exchange. Granted there are ways to hide your location somewhat but few are going to deal with that hassle even if they are aware of them. Plus many proxies and VPNs are not as anomilizing as they claim. Also, one of the things all the breeches have shown is most people still use the same login and password everywhere and do not even know <a href="https://authy.com/what-is-2fa/" target="_blank">what 2FA is</a> making them both easier to track and hack. There again it is not that hard to track down someone's home address these days from a few data points given a lot of government data is online and or sold to search engines like <a href="http://PublicData.com">PublicData.com (since 1997)</a>. Outrage back when people first heard and they moved the servers off shore but even then that only saved you the trip to the clerk for the data. People just did not know. While we are on social media you might want to look at this <a href="https://www.theverge.com/2020/4/9/21215090/aclu-aerial-surveillance-baltimore-police-department-pss-lawsuit" target="_blank">story about the police tracked some protesters via social media</a>.</p><p><br /></p><p>So then it would seem the only option is to limit access to the data or what the data can be used for. But I would not hold much hope there either. Take <a href="https://www.google.com/search?q=wide+area+motion+imagery&oq=Wide" target="_blank">WAMI</a> for example. <a href="https://www.theguardian.com/us-news/2016/aug/24/baltimore-police-aerial-surveillance-cameras#maincontent" target="_blank">Back in 2016 a company did a WAMI test that was pretty successful at tracking criminals</a>. People kind of freaked at the time but <a href="https://www.theverge.com/2020/4/9/21215090/aclu-aerial-surveillance-baltimore-police-department-pss-lawsuit" target="_blank">Baltimore police are attempting a new test run to track how it affects crime when people know it is watching</a>. <a href="https://www.brookings.edu/techstream/how-to-regulate-police-use-of-drones/" target="_blank">People seem freaked about drones in general</a> though the WAMI tests are with piloted aircraft people still seem to see them as drones. You know if they get their test and it shows good results others will want it too. Same goes for other related tech. As I mentioned above people are saying they want features like tracking and recognition even if saying they do not want the government and companies them. The Chinese are going all in so in the end it might be a question if we buy from them or develop it here. BTW did you know almost all security cameras are made in China? <a href="https://www.heritage.org/node/23057879/print-display" target="_blank">There are people warning about that as well of course.</a> That is a whole other <a href="https://automation.rmrr42.com/search?q=ips" target="_blank">thread</a> about <a href="https://automation.rmrr42.com/2017/09/arris-cable-modem-issue-securing-your.html" target="_blank">unsecured networks</a> of <a href="https://automation.rmrr42.com/2019/07/if-you-think-your-device-is-spying-on.html" target="_blank">IoT devices</a> whether or not they came with backdoors. </p><p><br /></p>Avatar42http://www.blogger.com/profile/02989695403513365236noreply@blogger.com2tag:blogger.com,1999:blog-4206308026427876681.post-84182334794607836322020-11-12T11:48:00.000-08:002020-11-12T11:48:47.799-08:00Setting Raspberry Pi to show name and clock when idle<p> Whether connecting to console or VNC it does not hurt to be able to see the system is working and confirm you are on the right machine quickly when you have a few online.</p><p>First install the basic screen savers with</p><p><b><i>sudo apt-get install xscreensaver*</i></b></p><p>Start XScreenSaver. </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZEGY_L4dVI1CmrjDw-S-KWkKyQmrhj_7oEiKBTC5AdKfbhTIhCD67GNxDLshyNY5SH4inC7qIrbgRpBHGUhOUZsxL-xGPS3GGlOApBtzM3XztcuHDBJPsKd7xOz2t4aiFvakfgrkD9zE/s1362/2020-11-12_13-16-27.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="800" data-original-width="1362" height="374" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZEGY_L4dVI1CmrjDw-S-KWkKyQmrhj_7oEiKBTC5AdKfbhTIhCD67GNxDLshyNY5SH4inC7qIrbgRpBHGUhOUZsxL-xGPS3GGlOApBtzM3XztcuHDBJPsKd7xOz2t4aiFvakfgrkD9zE/w640-h374/2020-11-12_13-16-27.png" width="640" /></a></div><br /><p>Under Display Modes, select Only One Screen Saver. Then scroll down and select GLText as your screen saver.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgn6KV0412hcIqrjtlEgMn_o0EQnr_UwVxNFmZ2fh8YaesO1P91vTinAl3ARCVVsYKPWME8h-zbyuKSfT0Y_8eEDZouEpWd-YtuH2FMv1fzPg7S3eBYNuPNhNUf351UEKt8rW5bvQ4a9BU/s1362/2020-11-12_13-19-54.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="800" data-original-width="1362" height="374" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgn6KV0412hcIqrjtlEgMn_o0EQnr_UwVxNFmZ2fh8YaesO1P91vTinAl3ARCVVsYKPWME8h-zbyuKSfT0Y_8eEDZouEpWd-YtuH2FMv1fzPg7S3eBYNuPNhNUf351UEKt8rW5bvQ4a9BU/w640-h374/2020-11-12_13-19-54.png" width="640" /></a></div><br /><p>Click Settings. Select Display Date and Time and Always Face Front. Make sure that the check box next to Wander is selected. From the drop-down menu, select Don’t Rotate. Choose the frame rate that you want. </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHBf1GuJonqsn4ueqGR_HU9qSpNV32B0cIebZbq4Dycxt23se90JfNR6rnE_IqnMsjXnGvxxS2M-lKy0S2_4RS4voaogmthZSs2rIJ2abc2VP5lT3occnBDB_JyKc6Jfey8xYeXyuo2WA/s793/2020-11-12_13-27-26.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="621" data-original-width="793" height="502" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHBf1GuJonqsn4ueqGR_HU9qSpNV32B0cIebZbq4Dycxt23se90JfNR6rnE_IqnMsjXnGvxxS2M-lKy0S2_4RS4voaogmthZSs2rIJ2abc2VP5lT3occnBDB_JyKc6Jfey8xYeXyuo2WA/w640-h502/2020-11-12_13-27-26.png" width="640" /></a></div><br /><p>Click the Advanced Tab. In the Text Manipulation field, click the radio button beside Text. In the field add your hostname and %n (UPSMon62 in this example)</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_1QbCFZD30EHYe7V63ahGYFlJTxNxXCwTtcTFav1YeDqYLFocXuZ68rtRRNTsSaO60oeumrvslcvIwJkqqZx8sKUSijvsI3AQy5xd4VIsU0TrXYx047zvT0a1u-2GNoriAUGZh48lywQ/s1362/2020-11-12_13-25-32.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="800" data-original-width="1362" height="374" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_1QbCFZD30EHYe7V63ahGYFlJTxNxXCwTtcTFav1YeDqYLFocXuZ68rtRRNTsSaO60oeumrvslcvIwJkqqZx8sKUSijvsI3AQy5xd4VIsU0TrXYx047zvT0a1u-2GNoriAUGZh48lywQ/w640-h374/2020-11-12_13-25-32.png" width="640" /></a></div><br /><p>For further customization variables see <a href="http://strftime.org" target="_blank">strftime.org</a> For instance I prefer this</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0NBeBk5qsX3kx3BeNCzXxl7LyO3BKd5a-9MdXu7aRTARdtvgpJCrvZDauaG57kU0Ymfor_k22TNrl8A9XZgErVL8MfbjbEwe8hFdAvn3oyBSKTKni9KBrOI1qcr3fQwwr06AhEXNTxjI/s1362/2020-11-12_13-42-29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="800" data-original-width="1362" height="374" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0NBeBk5qsX3kx3BeNCzXxl7LyO3BKd5a-9MdXu7aRTARdtvgpJCrvZDauaG57kU0Ymfor_k22TNrl8A9XZgErVL8MfbjbEwe8hFdAvn3oyBSKTKni9KBrOI1qcr3fQwwr06AhEXNTxjI/w640-h374/2020-11-12_13-42-29.png" width="640" /></a></div><br /><p><br /></p><p><br /></p>Avatar42http://www.blogger.com/profile/02989695403513365236noreply@blogger.com0tag:blogger.com,1999:blog-4206308026427876681.post-4122676154672655882020-09-27T15:33:00.039-07:002021-08-11T17:15:45.583-07:00HS3 to HS4 migration. (Also Windows to Linux attempt.)<h1 style="text-align: left;">The issue</h1><p>Fed up with all the Windows 10 issues (just this week alone 3 requiring reboots and the 4th was a memory issue that Windows was masquerading) I decided to bite the bullet and move my Homeseer to one of Linux boxes and figured might as well upgrade to version 4 of Homeseer at the same time. After asking around it appears I can fall back to my Windows instance if I get in trouble.</p><h1 style="text-align: left;">First Impressions</h1><h3 style="text-align: left;">HS4 on Linux</h3><p>Despite my Linux box being WAY more powerful (Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz) than my Windows box (Intel(R) Core(TM) i7-3700 CPU @ 3.40GHz), the web interface was slower on it than HS3 on Windows. Editing events was tedious with more time looking at hour glasses than selecting and typing. It seems to just randomly crash fairly regularly. </p><h3 style="text-align: left;">HS4 on Windows</h3><p>Does not seem to add any issues not seen on Linux as well and still seems faster than the Linux version.</p><h3 style="text-align: left;">HS4 in general</h3><p>The biggest change is devices are devices in HS4 like most other automation systems with the data streams seen as linked "features" instead of devices in their own right as they were in HS3. This seems to have caused a few issues with events that might need to be manually edited. You can assign multiple categories to devices so I decide to redo most of mine from category / location to categories / area / location to make finding devices in lists easier not that only root devices are listed.</p><p>One thing that is bugging me about HS4 is the pages where the only return / nav option is the Home button which takes you to the devices page.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXRadrOwzRlcgU9fG36I9wENYd6zLsOpo1vf1HA4WFyOFynZiNDeiYRZzTx2nzYHaS-cm2qJcl5MCaJqqz6Em4SDEcVrRZZDQOmE6KiGhtdMbJu4ZIEYoSW9QxZUyd1F7gd4UkdrLI4uw/s328/2021-01-04_12-50-02.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="210" data-original-width="328" height="256" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXRadrOwzRlcgU9fG36I9wENYd6zLsOpo1vf1HA4WFyOFynZiNDeiYRZzTx2nzYHaS-cm2qJcl5MCaJqqz6Em4SDEcVrRZZDQOmE6KiGhtdMbJu4ZIEYoSW9QxZUyd1F7gd4UkdrLI4uw/w400-h256/2021-01-04_12-50-02.png" width="400" /></a></div><br /><p><br /></p><p>Some things are missing like custom pages and others hidden like global variables. <a href="https://forums.homeseer.com/forum/3rd-party-developer-area/general-developer-discussion/jon00/1362586-jon00-links-for-homeseer-4" target="_blank">Jon00 Links</a> gets you some things back.</p><p>Before</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0FeumMSSVpJmZ1LOx2hCSdPF5zWzRdO93gCOcB1gsLDQIxDWTRnDy7P9xOQNy-q_HZgEr2BzV2ff_r1tWfKGelo_ixcgcNoklTqrqQdn3GMM1fep7XxiLPCSyAa4B4DQiniySc8nP2GM/s994/2021-01-04_17-06-04.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="677" data-original-width="994" height="434" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0FeumMSSVpJmZ1LOx2hCSdPF5zWzRdO93gCOcB1gsLDQIxDWTRnDy7P9xOQNy-q_HZgEr2BzV2ff_r1tWfKGelo_ixcgcNoklTqrqQdn3GMM1fep7XxiLPCSyAa4B4DQiniySc8nP2GM/w640-h434/2021-01-04_17-06-04.png" width="640" /></a></div><p>After (with defaults)</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVFx96duwwQXytZG8M8NxxrGaXZ2QAfsD11Dx4b0hM1zsO7VN3GQ3zyUdtFsTqQVwxJ8pkwd-Vpw12aUiTLH7qOhEcWRDTarOBaKHjIShoI9xn8y2ow0d2l-isaO5v63En0oHUyU7zScw/s994/2021-01-04_17-07-40.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="677" data-original-width="994" height="434" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVFx96duwwQXytZG8M8NxxrGaXZ2QAfsD11Dx4b0hM1zsO7VN3GQ3zyUdtFsTqQVwxJ8pkwd-Vpw12aUiTLH7qOhEcWRDTarOBaKHjIShoI9xn8y2ow0d2l-isaO5v63En0oHUyU7zScw/w640-h434/2021-01-04_17-07-40.png" width="640" /></a></div><br /><p>You might want to visit <a href="http://www.jon00.me.uk/index.shtml" target="_blank">Jon00's site</a> for some fixes too.</p><p><a href="https://forums.homeseer.com/forum/3rd-party-developer-area/general-developer-discussion/jon00/1363449-jon00-event-viewer-documenter-for-homeseer-4" name="Jon00Event" target="_blank">Jon00 Event Viewer & Documenter for Homeseer 4</a> for instance makes finding broken events a lot easier.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsvJOX1qcM2ubaOvEeYOcliAUhjjvR1LTaSxeIQwQjqD3FPhch_kiK6g5l49xJcBNU1bdIsZP9OJVwbaTwvEBF7qJrcJLG8PfclYw6p6k_w4e1AW7y5yGJsQ6u6PxSQokrXdxOAE1Cmmk/s1216/2021-01-04_17-29-44.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="951" data-original-width="1216" height="500" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsvJOX1qcM2ubaOvEeYOcliAUhjjvR1LTaSxeIQwQjqD3FPhch_kiK6g5l49xJcBNU1bdIsZP9OJVwbaTwvEBF7qJrcJLG8PfclYw6p6k_w4e1AW7y5yGJsQ6u6PxSQokrXdxOAE1Cmmk/w640-h500/2021-01-04_17-29-44.png" width="640" /></a></div><div><br /></div>Looking "BROKEN" is much better than just looking at each event. For example this one looks fine at a glance.<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqv51B9EW-yHF-oQ4O9MfeYa01MgexVtl7iRFAJwvNgiRoiYCksltWbj_P3DchyHGjKvJrgCRFPHbriTAOoqS2zo84Q3nM1dZjUi6JQlBrrM1iW7SHiyss5WjfbTF0P07AbLKy9TMB9zw/s1777/2021-01-04_17-39-57.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1777" data-original-width="1080" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqv51B9EW-yHF-oQ4O9MfeYa01MgexVtl7iRFAJwvNgiRoiYCksltWbj_P3DchyHGjKvJrgCRFPHbriTAOoqS2zo84Q3nM1dZjUi6JQlBrrM1iW7SHiyss5WjfbTF0P07AbLKy9TMB9zw/w388-h640/2021-01-04_17-39-57.png" width="388" /></a></div>Worse yet this is what the fixed version looks like. Can you see the diff?<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSH6b9-GzllIfs4ji64t2whsN_K9dzbIo0IHqt_t7b-HaGgdrO5zMyXRlOR7ySeh7RkfWjgya7B5GsKt2X9rLYxuVVmlVAqPIiun0LSeuEFymTPkRKsgMW_GJXJs7J4uNGj2P-swO6Yhc/s1777/2021-01-05_10-30-57.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1777" data-original-width="1080" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSH6b9-GzllIfs4ji64t2whsN_K9dzbIo0IHqt_t7b-HaGgdrO5zMyXRlOR7ySeh7RkfWjgya7B5GsKt2X9rLYxuVVmlVAqPIiun0LSeuEFymTPkRKsgMW_GJXJs7J4uNGj2P-swO6Yhc/w388-h640/2021-01-05_10-30-57.png" width="388" /></a></div><br /><div>In some cases fixing appears to just be clicking options, selecting the same value (waiting for the page update between each) and then clicking the save icon for that section. Literally nothing visible changes. Note too, reselecting the device means scrolling back through the whole list with the scroll bar because not only does it move to the item in the list but typing the first letter does not get you in the ballpark either. The device you select might actually need to be changed from the a hs3 "device" its parent. and then select the feature.<br /><div><h1 style="text-align: left;">Summary</h1><p>The answer seems to be unless you are starting from scratch do not install on Linux. See my <a href="#winInstall">Windows upgrade steps below</a>. </p><h1 style="text-align: left;">Steps I did - the adventure / stuff I've tried so far going from HS3 on Windows to HS4 on Linux</h1><div>Note this just the stuff that looked like it might work (read wasted most time on) and does not reflect all the dead ends I went down that I dismissed quickly or the hours of research online.</div><h2 style="text-align: left;">Basic install</h2><p>I started from <a href="https://forums.homeseer.com/forum/homeseer-products-services/system-software-controllers/hs3-hs3pro-software/hs3-pro-beta-releases/77288-hs3-linux-installation-instructions/page11?postcount=158#post855667" target="_blank">these instructions</a>. These are the instructions I actually used. (I already have a local ntpd server so I did not need that bit.) <span style="background-color: #fcff01;"><span style="color: #444444;">Note I changed the http and https port since I already had a server running on this PC (<b>10.10.2.197</b>).</span></span></p><p><b><i>yum -y update</i></b></p><p><b><i>yum -y install yum-utils</i></b></p><p><b><i>yum -y install mono-complete</i></b></p><p><b><i>mozroots --import --sync</i></b></p><p><b><i>yum -y install mono-basic</i></b></p><p><b><i>mkdir /home/hs4</i></b></p><p><b><i>cd /home/hs4</i></b></p><p><b><i>wget https://homeseer.com/updates4/linux_4_1_6_0.tar.gz</i></b></p><p><b><i>tar xzvf linux_4_1_6_0.tar.gz</i></b></p><p><b><i>cd ./Homeseer</i></b></p><p><b><i>echo '<?xml version="1.0" encoding="utf-8"?>' > /etc/firewalld/services/hs3p.xml</i></b></p><p><b><i>echo '<service>' >> /etc/firewalld/services/hs3p.xml</i></b></p><p><b><i>echo ' <short>HS3 Ports</short>' >> /etc/firewalld/services/hs3p.xml</i></b></p><p><b><i>echo ' <description>HomeSeer 3 Ports needed for the application. HTTP, HTTPS (...future on Linux I am sure...), HSTouch </description>' >> /etc/firewalld/services/hs3p.xml</i></b></p><p><b><i>echo ' <port protocol="tcp" port="<span style="background-color: #fcff01;">8080</span>"/>' >> /etc/firewalld/services/hs3p.xml</i></b></p><p><b><i>echo ' <port protocol="tcp" port="<span style="background-color: #fcff01;">8443</span>"/>' >> /etc/firewalld/services/hs3p.xml</i></b></p><p><b><i>echo ' <port protocol="tcp" port="10200"/>' >> /etc/firewalld/services/hs3p.xml</i></b></p><p><i><b>echo ' <port protocol="tcp" port="10401"/>' >> /etc/firewalld/services/hs3p.xml</b></i></p><p><b><i>echo '</service>' >> /etc/firewalld/services/hs3p.xml</i></b></p><p>I already had a /etc/firewalld/zones/public.xml</p><p>So edit </p><p><b><i>vi /etc/firewalld/zones/public.xml</i></b></p><p>And only added</p><p><b><i style="background-color: #cccccc;"><service name="hs3p"/></i></b></p><p>And restart the service</p><p><b><i>service firewalld restart</i></b></p><p>Things got tricky at this point. I needed to set the port and IP address (since I have multiple Config/settings.ini did not exist till after running <b><i>./go</i></b> </p><p>After stopping it I could then edit <b>Config/settings.ini </b>and add</p><p><b><i>gWebSvrPort=<span style="background-color: #fcff01;">8080</span></i></b></p><p><b><i>gServerAddressBind=<span style="background-color: #fcff01;">10.10.2.197</span></i></b></p><p>Note you also need to change </p><p><b>C:\Program Files (x86)\HomeSeer HS3\Bin\</b></p><p>to your new bin</p><p>For example</p><p><b><i>ScriptingReferences=System.Data.SQLite;C:\Program Files (x86)\HomeSeer HS3\Bin\System.Data.SQLite.dll,Newtonsoft.Json;C:\Program Files (x86)\HomeSeer HS3\Bin\homeseer\Newtonsoft.Json.dll</i></b></p><p>becomes</p><p><b><i>ScriptingReferences=System.Data.SQLite;/home/hs4/HomeSeer/bin/System.Data.SQLite.dll,Newtonsoft.Json;/home/hs4/HomeSeer/bin/homeseer/Newtonsoft.Json.dll</i></b></p><p>After restarting I still could not access remotely</p><p>Accessing via localhost on the PC I found the redirect was bad. You need to go to the register page directly</p><p><b><i>http://<span style="background-color: #fcff01;">10.10.2.197:8080</span>/register.html</i></b></p><p>I got as far as step 3 and it hung</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh46W9QDVp0q-To1BEqhkcmx9wBLcOvSHDqRIa5rLw1rLwSJRn8JSefc6Jrsk-iJNPXpcTT3jXMQQok8o0tFqW9ND1pWlJVjiD8uCc3KsDUl_Ta-xtUqxGD1RrDYZyHQT1A5RyXfbeh_hA/s647/2020-09-26_10-00-32.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="437" data-original-width="647" height="430" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh46W9QDVp0q-To1BEqhkcmx9wBLcOvSHDqRIa5rLw1rLwSJRn8JSefc6Jrsk-iJNPXpcTT3jXMQQok8o0tFqW9ND1pWlJVjiD8uCc3KsDUl_Ta-xtUqxGD1RrDYZyHQT1A5RyXfbeh_hA/w640-h430/2020-09-26_10-00-32.png" width="640" /></a></div><div><br /></div><div>09:57:24:8537:[Warning]->Unable to connect to MyHS service, license ID is 0. Please register the system with a valid license.</div><div>DoRegisterInternet</div><div>DoREgister Response</div><div>09:57:29:8699:[Info]->Stopping the MyHS Service...</div><div>09:57:33:8724:[Info]->Starting the MyHS Service...</div><div>09:57:33:9927:[Info]->System connected to MyHS Service, waiting for acknowledge...</div><div>File upload thread started</div><div>09:57:34:0435:[Info]->System connected to MyHS Service successfully with license ID ******.</div><div>DoRegisterInternet</div><div>10:05:12:9769:[Warning]->File does not exist: /home/hs4/HomeSeer/html/bootstrap/css/bootstrap.min.css.map</div><div>10:05:13:1402:[Warning]->File does not exist: /home/hs4/HomeSeer/html/bootstrap/js/bootstrap.min.js.map</div><div>10:05:13:1441:[Warning]->File does not exist: /home/hs4/HomeSeer/html/bootstrap/js/bs-custom-file-input.js.map</div><div>10:05:13:1442:[Warning]->File does not exist: /home/hs4/HomeSeer/html/sm/b0ce608ffc029736e9ac80a8dd6a7db2da8e1d45d2dcfc92043deb2214aa30d8.map</div><div>DoRegisterInternet</div><div><br /></div><div><a href="https://stackoverflow.com/questions/21773376/bootstrap-trying-to-load-map-file-how-to-disable-it-do-i-need-to-do-it" target="_blank">Seems bootstrap.min.css.map is unneeded</a>.</div><div><br /></div><p>I finally just skipped the transfer services bit even though it most likely means more work later. On the plus side it means the HS3 instance should continue to work while I sort the HS4 instance.</p><p>Next it wants me to create an account. Not sure why since it already acknowledged I'm doing an upgrade. I used my previous login and password which it seemed to take OK so it would seem HS4 is using a diff system.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBK_OK9QMeriS_Tu5KmD-_EVk3iRSzDNioRqV0TooOJAiNDywolP2prC8na9jVw-ktjuEzncMDxzm0MzUWpnRKMYh0zU41J39-RSrEyIQGn4gz19e9Lu5Y9TUj2NJ0inbqmDLbdlgvP_E/s1920/2020-09-26_10-21-38.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="937" data-original-width="1920" height="310" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBK_OK9QMeriS_Tu5KmD-_EVk3iRSzDNioRqV0TooOJAiNDywolP2prC8na9jVw-ktjuEzncMDxzm0MzUWpnRKMYh0zU41J39-RSrEyIQGn4gz19e9Lu5Y9TUj2NJ0inbqmDLbdlgvP_E/w640-h310/2020-09-26_10-21-38.png" width="640" /></a></div><br /><p>Not change to settings (last step) except to set location and Finish. And again hit a problem. Probably should have changed settings to not require login locally for now since no login appears to work. I <a href="https://forums.homeseer.com/forum/homeseer-products-services/general-discussion-area/108303-lost-admin-access-help-solved" target="_blank">renamed user file</a></p><p>mv Config/users.cfg Config/users.cfg.bak</p><p>restart and was able to get in with <a href="https://www.homeseer.com/guides/HomeSeer-QuickStart-Guide.pdf" target="_blank">default/default</a>.</p><p>Started looking at setup and first thing I noticed was location was well off. Told it Austin but appears to be Boston. Just under 2000 miles off.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgC9vRWmXEOU860jIET7DX8wXbC_TQy82SorAGjaYarfB32350zvhyvTEXZPgWJ1B6x_1m6Nz-8calHSaKXUhvMGu27MaK46ktELq1j4qmCDGGVqWh8v4xwGYaXsPtupMuKw4oVY2G9vpg/s743/2020-09-26_10-50-30.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="332" data-original-width="743" height="286" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgC9vRWmXEOU860jIET7DX8wXbC_TQy82SorAGjaYarfB32350zvhyvTEXZPgWJ1B6x_1m6Nz-8calHSaKXUhvMGu27MaK46ktELq1j4qmCDGGVqWh8v4xwGYaXsPtupMuKw4oVY2G9vpg/w640-h286/2020-09-26_10-50-30.png" width="640" /></a></div><br /><p>Replaced contents of Config/users.cfg with the the contents from my HS3 copy and all seemed to restore my users which is a good sign.</p><h2 style="text-align: left;">Next bring over my config</h2><p style="text-align: left;">Given the <a href="https://forums.homeseer.com/forum/hs4-products/hs4-software/hs4-pro-beta-releases/1397456-best-method-to-move-from-hs3-windows-to-hs4-linux" target="_blank">various ways suggested</a> I decided to backup both instance folders plus backup config and events via the HS3 web interface at this point and <a href="https://wiki.centos.org/TipsAndTricks/WindowsShares" target="_blank">mount a transfer folder on the CentOS box</a>.</p><p style="text-align: left;"><span style="background-color: #fcff01;"><span style="color: #444444;"><b>Note the Win share name might not work in fstab. If so try the IP address instead.</b></span></span></p><p style="text-align: left;">Trying to restore a backup from HS3 turned out to be an adventure. After a good bit of trial and error I've sorted the backup seems to need to be:</p><p style="text-align: left;"></p><ul style="text-align: left;"><li>named like 9_26_2020-16_17_54.zip</li><li>The timestamp part of the name needs to be newer than the latest backup</li><li>Contain the files Data.zip, Config.zip, scripts.zip and html.zip at top level.</li></ul><p></p><p style="text-align: left;">After uploading a file if something goes wrong there may be no indication other than the list of available backups for restore is unchanged from the last time you tried to restore. </p><p style="text-align: left;">Also you need to restart for the restore to take affect but before you do you will need update <b>Config/settings.ini</b> again.</p><p><b><i>gWebSvrPort=<span style="background-color: #fcff01;">8080</span></i></b></p><p><b><i>gServerAddressBind=<span style="background-color: #fcff01;">10.10.2.197</span></i></b></p><p><span style="background-color: white;">I also had to do the registration bit again.</span></p><h3 style="text-align: left;"><span style="background-color: white;">Plugins</span></h3><p><span style="background-color: white;">Note still no plugins showed as installed. I had to install and enable them one by one. I have quite a few.</span></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrVMmXYz5BFPQDE9W4SYfYP7elNepbz2A_5QXVImBm-nJIek6hQ92A7V10UyNjKdGb5ievcckOybIEacZ-IsH_iDKv5BIY9y2gTjC6qC1d_unL4_ioDemcFxMF2BMMOwkvA6a6MZGTXy4/s1183/2020-09-24_8-46-23.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1183" data-original-width="375" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrVMmXYz5BFPQDE9W4SYfYP7elNepbz2A_5QXVImBm-nJIek6hQ92A7V10UyNjKdGb5ievcckOybIEacZ-IsH_iDKv5BIY9y2gTjC6qC1d_unL4_ioDemcFxMF2BMMOwkvA6a6MZGTXy4/s16000/2020-09-24_8-46-23.png" /></a></div><br /><span style="background-color: white;">I started with Z-Wave (used the standard instead of one of the Linux beta ones. Most went pretty smooth. </span><p></p><p><span style="background-color: white;">Harmony was a bit weird. I had to readd the hubs which created all new objects that will need swapping in on the events.</span></p><p><span style="background-color: white;">The </span>JowiHue plugin did not seem to like my old license but the new, version 4 one, was 60% off so not a biggie. Especially as much use as I get from that one. Does not seem be finding any of my 3 hubs though.</p><p><br /></p><h3 style="text-align: left;"><span style="background-color: white;">Events</span></h3><p><span style="background-color: white;">My events all seem to transfer without having to export and import them. </span></p><p><span style="background-color: white;">But all the ones with scripts needed their paths changed from absolute to just the filename. If any were not in the scripts folder they will need moved there as well. I clicked the import button it said </span>event_groups.json was missing. I started manually changing all 412 of the script actions before I realized the config import filtered those files. <span style="background-color: white;">I made a copy and changed the paths to try and import working through the issues. This sorts the script path change. I renamed my exported json to </span><b>events.hs3.json</b></p><p><span style="background-color: white;"><b><i>sed -e "s?C:/Program Files (x86)/HomeSeer HS3/scripts/??g" events.hs3.json > events.json</i></b></span></p><p>It also looks like some of the places virtual devices were getting got set to no device as well.</p><p>And some other random values seems messed up. For example Here is the export of one event</p><div style="text-align: left;"><b><i><span style="white-space: pre;"> </span>{<br /><span style="white-space: pre;"> </span>"mvarGroupRef": 6088529,<br /><span style="white-space: pre;"> </span>"Enabled": true,<br /><span style="white-space: pre;"> </span>"UserNote": "",<br /><span style="white-space: pre;"> </span>"IOMisc": "",<br /><span style="white-space: pre;"> </span>"Last_Trigger_Time": "2020-09-15T17:04:44.1950438-05:00",<br /><span style="white-space: pre;"> </span>"Retrigger_Delay": 0,<br /><span style="white-space: pre;"> </span>"Triggered": true,<br /><span style="white-space: pre;"> </span>"Triggers": {<br /><span style="white-space: pre;"> </span>"TrigGroups": {<br /><span style="white-space: pre;"> </span>"K0": {<br /><span style="white-space: pre;"> </span>"$type": "System.Collections.Generic.List`1[[Scheduler.Classes.EvTrig_BASE, Scheduler]], mscorlib",<br /><span style="white-space: pre;"> </span>"$values": [<br /><span style="white-space: pre;"> </span>{<br /><span style="white-space: pre;"> </span>"$type": "Scheduler.Classes.EvTrig_DEVICE_VALUE, Scheduler",<br /><span style="white-space: pre;"> </span>"ev_trig_dvRef": 451,<br /><span style="white-space: pre;"> </span>"mvarValue_or_Start": -2147483648.0,<br /><span style="white-space: pre;"> </span>"mvarTriggerSubType": 7,<br /><span style="white-space: pre;"> </span>"ValStart": -2147483648.0,<br /><span style="white-space: pre;"> </span>"ValEnd_Spec": 1.0,<br /><span style="white-space: pre;"> </span>"UIMessage": "",<br /><span style="white-space: pre;"> </span>"HasTriggers": true,<br /><span style="white-space: pre;"> </span>"TriggerSubType": 7,<br /><span style="white-space: pre;"> </span>"SubTriggerCount": 10,<br /><span style="white-space: pre;"> </span>"SubTriggerName": "This device had its value set and is less than...",<br /><span style="white-space: pre;"> </span>"IsTimeTrigger": false,<br /><span style="white-space: pre;"> </span>"TriggerConfigured": true,<br /><span style="white-space: pre;"> </span>"TriggerName": "A Device's Value is...",<br /><span style="white-space: pre;"> </span>"TriggerGroupID": 0,<br /><span style="white-space: pre;"> </span>"evRef": 3488,<br /><span style="white-space: pre;"> </span>"TriggerType": 6,<br /><span style="white-space: pre;"> </span>"iTrigMisc": 524288,<br /><span style="white-space: pre;"> </span>"Condition": false<br /><span style="white-space: pre;"> </span>},<br /><span style="white-space: pre;"> </span>{<br /><span style="white-space: pre;"> </span>"$type": "Scheduler.Classes.EvTrig_COUNTER, Scheduler",<br /><span style="white-space: pre;"> </span>"Inc_Dec_Value": 1.0,<br /><span style="white-space: pre;"> </span>"Trigger_Pos_and_Neg": false,<br /><span style="white-space: pre;"> </span>"Trigger_Every_Value": false,<br /><span style="white-space: pre;"> </span>"Trigger_Exceed": true,<br /><span style="white-space: pre;"> </span>"mvarCounterName": "WasherStatus",<br /><span style="white-space: pre;"> </span>"UIMessage": "",<br /><span style="white-space: pre;"> </span>"HasTriggers": true,<br /><span style="white-space: pre;"> </span>"TriggerSubType": 3,<br /><span style="white-space: pre;"> </span>"SubTriggerCount": 8,<br /><span style="white-space: pre;"> </span>"SubTriggerName": "WasherStatus value has exceeded this:",<br /><span style="white-space: pre;"> </span>"TriggerConfigured": true,<br /><span style="white-space: pre;"> </span>"TriggerName": "A Counter's Value is...",<br /><span style="white-space: pre;"> </span>"Version": 2.0,<br /><span style="white-space: pre;"> </span>"TriggerGroupID": 0,<br /><span style="white-space: pre;"> </span>"evRef": 3488,<br /><span style="white-space: pre;"> </span>"TriggerType": 10,<br /><span style="white-space: pre;"> </span>"iTrigMisc": 524288,<br /><span style="white-space: pre;"> </span>"Condition": true,<br /><span style="white-space: pre;"> </span>"Value_Trigger": 0.0,<br /><span style="white-space: pre;"> </span>"Value_Trigger_Set": true<br /><span style="white-space: pre;"> </span>}<br /><span style="white-space: pre;"> </span>]<br /><span style="white-space: pre;"> </span>}<br /><span style="white-space: pre;"> </span>},<br /><span style="white-space: pre;"> </span>"TrigGroupsComp": null<br /><span style="white-space: pre;"> </span>},<br /><span style="white-space: pre;"> </span>"Actions": {<br /><span style="white-space: pre;"> </span>"mvarActions": {<br /><span style="white-space: pre;"> </span>"K0": {<br /><span style="white-space: pre;"> </span>"$type": "Scheduler.Classes.EvACT_SCRIPT, Scheduler",<br /><span style="white-space: pre;"> </span>"mvarScript": "C:/Program Files (x86)/HomeSeer HS3/scripts/SayIt.vb",<br /><span style="white-space: pre;"> </span>"mvarMethod": "sayString",<br /><span style="white-space: pre;"> </span>"mvarParams": "The Laundry has finished washing",<br /><span style="white-space: pre;"> </span>"script_wait": false,<br /><span style="white-space: pre;"> </span>"script_single_instance": false,<br /><span style="white-space: pre;"> </span>"UIMessage": "",<br /><span style="white-space: pre;"> </span>"ActionName": "Run a Script or Script Command",<br /><span style="white-space: pre;"> </span>"Misc": 64,<br /><span style="white-space: pre;"> </span>"evRef": 3488,<br /><span style="white-space: pre;"> </span>"Action_Order": 0,<br /><span style="white-space: pre;"> </span>"Action_Type": 10,<br /><span style="white-space: pre;"> </span>"ActionAdvancedMode": true,<br /><span style="white-space: pre;"> </span>"ActionConfigured": true,<br /><span style="white-space: pre;"> </span>"Script": "C:/Program Files (x86)/HomeSeer HS3/scripts/SayIt.vb(\"sayString\",\"The Laundry has finished washing\")"<br /><span style="white-space: pre;"> </span>},<br /><span style="white-space: pre;"> </span>"K1": {<br /><span style="white-space: pre;"> </span>"$type": "Scheduler.Classes.EvACT_RUN_EVENT, Scheduler",<br /><span style="white-space: pre;"> </span>"run_event_ref": 9262,<br /><span style="white-space: pre;"> </span>"UIMessage": "",<br /><span style="white-space: pre;"> </span>"ActionName": "Run Another Event",<br /><span style="white-space: pre;"> </span>"Misc": 64,<br /><span style="white-space: pre;"> </span>"evRef": 3488,<br /><span style="white-space: pre;"> </span>"Action_Order": 1,<br /><span style="white-space: pre;"> </span>"Action_Type": 9,<br /><span style="white-space: pre;"> </span>"ActionAdvancedMode": true,<br /><span style="white-space: pre;"> </span>"ActionConfigured": true<br /><span style="white-space: pre;"> </span>},<br /><span style="white-space: pre;"> </span>"K2": {<br /><span style="white-space: pre;"> </span>"$type": "Scheduler.Classes.EvACT_COUNTER, Scheduler",<br /><span style="white-space: pre;"> </span>"CounterAction": 5,<br /><span style="white-space: pre;"> </span>"UIMessage": "",<br /><span style="white-space: pre;"> </span>"ActionName": "Control a Counter",<br /><span style="white-space: pre;"> </span>"Misc": 64,<br /><span style="white-space: pre;"> </span>"evRef": 3488,<br /><span style="white-space: pre;"> </span>"Action_Order": 2,<br /><span style="white-space: pre;"> </span>"Action_Type": 3,<br /><span style="white-space: pre;"> </span>"ActionAdvancedMode": true,<br /><span style="white-space: pre;"> </span>"ActionConfigured": true,<br /><span style="white-space: pre;"> </span>"CounterName": "WasherStatus"<br /><span style="white-space: pre;"> </span>}<br /><span style="white-space: pre;"> </span>}<br /><span style="white-space: pre;"> </span>},<br /><span style="white-space: pre;"> </span>"Version": 1.2,<br /><span style="white-space: pre;"> </span>"evRef": 3488,<br /><span style="white-space: pre;"> </span>"Name": "Clothes done",<br /><span style="white-space: pre;"> </span>"VoiceCommand": "",<br /><span style="white-space: pre;"> </span>"sType": "Alert-white",<br /><span style="white-space: pre;"> </span>"EvGroup": {<br /><span style="white-space: pre;"> </span>"GlobalActions": {<br /><span style="white-space: pre;"> </span>"mvarActions": {<br /><span style="white-space: pre;"> <br /></span><span style="white-space: pre;"> </span>}<br /><span style="white-space: pre;"> </span>},<br /><span style="white-space: pre;"> </span>"GlobalConditions": {<br /><span style="white-space: pre;"> </span>"TrigGroups": {<br /><span style="white-space: pre;"> <br /></span><span style="white-space: pre;"> </span>},<br /><span style="white-space: pre;"> </span>"TrigGroupsComp": null<br /><span style="white-space: pre;"> </span>},<br /><span style="white-space: pre;"> </span>"Version": 1.2,<br /><span style="white-space: pre;"> </span>"Group": "Laundry",<br /><span style="white-space: pre;"> </span>"Ref": 6088529<br /><span style="white-space: pre;"> </span>},<br /><span style="white-space: pre;"> </span>"Misc": 0,<br /><span style="white-space: pre;"> </span>"PlugExtraData": {<br /><span style="white-space: pre;"> <br /></span><span style="white-space: pre;"> </span>}<br /><span style="white-space: pre;"> </span>}</i></b></div><p>Looking at it in HS4 it looks like this and is constantly triggering.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSUj43xcLsbWFe_kKOynWKG_49nzXZe2jWAqrqCdIWPtQhemBgmw01aTlEhui4nSRR9-2IY6W17cqR4wdnEnBWRfzmLQz2Vz6LKazsaeT9uWJO87X6VTDEM0ECrJ3ZiZLbIRcWwcBUfr4/s1111/2020-09-27_16-36-52.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="483" data-original-width="1111" height="276" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSUj43xcLsbWFe_kKOynWKG_49nzXZe2jWAqrqCdIWPtQhemBgmw01aTlEhui4nSRR9-2IY6W17cqR4wdnEnBWRfzmLQz2Vz6LKazsaeT9uWJO87X6VTDEM0ECrJ3ZiZLbIRcWwcBUfr4/w640-h276/2020-09-27_16-36-52.png" width="640" /></a></div>Clicking on edit on the trigger you notice things look more difference than just a face lift.<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivOG45C9VTGWL4eAEz6h2RvJxdxxeJkyHNtl_SY4uznQs_VDUyHcLb_DSSxqVddhxTHSdRV_MYPOEeiiv9BeHT-Gx0JQ5r9gdK4VCyTsqgQwk4FRqM-Mw3fX_LeHjo5FXsimecq-ZtKMc/s1117/2020-09-27_16-38-17.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="829" data-original-width="1117" height="472" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivOG45C9VTGWL4eAEz6h2RvJxdxxeJkyHNtl_SY4uznQs_VDUyHcLb_DSSxqVddhxTHSdRV_MYPOEeiiv9BeHT-Gx0JQ5r9gdK4VCyTsqgQwk4FRqM-Mw3fX_LeHjo5FXsimecq-ZtKMc/w640-h472/2020-09-27_16-38-17.png" width="640" /></a></div>It appears it has changed from treating each data element of a things as a device if not sees them as properties of a thing like most other home automation systems do. While the above looks correct. just clicking save does not fix the issue. You seem to need to go back through a full setup. When working it it looks the same so something is happening under the covers.<div class="separator" style="clear: both; text-align: center;"><br /></div><br /><div><br /><div><br /><p><br /></p><h3 style="text-align: left;">Scripts</h3><p>VB includes were not working.</p><h3 style="text-align: left;">Voice assistants and other 3rd party links</h3><p>As mentioned above the setup hung trying to sort these links so once everything else is working the last step will be sorting Alexa, Google Assistant and IFTTT linkages.</p><h3 style="text-align: left;">Falling back to HS3</h3><p>After spending a couple days on this I needed to fall back to HS3 till I can get enough working HS4 to make it reasonable to so I'm falling back. Fortunately for me that means shutdown HS4 and powering up the old PC. It seems like everything is working but it will take some time to see if that truly is the case.</p><h1 style="text-align: left;">Picking back up</h1><h3 style="text-align: left;">Z-Wave</h3><div style="text-align: left;">The Z-nets only allow one connection and the connections can cross as it tries to sort them. If you have more than one (I have 3), best to turn all the plugins off, reboot each Z-Net and then turn the plugins back on one at a time. </div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg78GSOKQYbroVl-7Gg75RoTPfjy6o1qNhIF9T86rakHyKikWSHGvOpkXgYu5WXHtaoGZBYdEKS4IbjwGUbxoX3MTQk8cMtEqvw3LAw05ZOgd_V7n8rB2n_Ue1HfTu8pGv5wjyZHOgp_KI/s1047/2020-12-27_16-17-40.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="793" data-original-width="1047" height="484" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg78GSOKQYbroVl-7Gg75RoTPfjy6o1qNhIF9T86rakHyKikWSHGvOpkXgYu5WXHtaoGZBYdEKS4IbjwGUbxoX3MTQk8cMtEqvw3LAw05ZOgd_V7n8rB2n_Ue1HfTu8pGv5wjyZHOgp_KI/w640-h484/2020-12-27_16-17-40.png" width="640" /></a></div><br /><div style="text-align: left;"><br /></div><div style="text-align: left;">Preferably in ascending number order. The simplest way to reboot the Z-nets is just to go to the Z-net's web interface and click submit.</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDjRvTGj1Ydo6EqlmdTmqJ_BHqBW_F01fsNOwHFHXYcHhrsY0WcYxd4Nd59pUKlFZUXFZ3iumXr4a_T5mOxJGDpcHvhzIIPsyrj8wZCaMLfwlV_Ll150vboDx8_hw7jGi-wlWPJibiVug/s781/2020-12-27_16-05-20.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="698" data-original-width="781" height="570" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDjRvTGj1Ydo6EqlmdTmqJ_BHqBW_F01fsNOwHFHXYcHhrsY0WcYxd4Nd59pUKlFZUXFZ3iumXr4a_T5mOxJGDpcHvhzIIPsyrj8wZCaMLfwlV_Ll150vboDx8_hw7jGi-wlWPJibiVug/w640-h570/2020-12-27_16-05-20.png" width="640" /></a></div><div><br /></div>Still it seems I needed to a rescan to get motion triggers working again.<br /><div style="text-align: left;"><br /></div><h2 style="text-align: left;">Plugins</h2><div>Noticing some plugins do not seem to ever come out of "start is pending" status</div><h3 style="text-align: left;">Hue / JowiHue</h3><p>Hubs did not show up at first. Did a rescan and they appeared. </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHcn3-cv1ia7iYEcmP6yjxvNfxThVb8SpeCclEt6PlW7iACZ2LUDmOCZEFrMQXUvs85QNSWscmHouKG8ypNaW2D9EvfjW_zJpWWlooR3uCXyVEyF66OGFAdqazKzSqrJvE1ne7vvMazpA/s994/2020-12-27_15-57-24.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="677" data-original-width="994" height="434" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHcn3-cv1ia7iYEcmP6yjxvNfxThVb8SpeCclEt6PlW7iACZ2LUDmOCZEFrMQXUvs85QNSWscmHouKG8ypNaW2D9EvfjW_zJpWWlooR3uCXyVEyF66OGFAdqazKzSqrJvE1ne7vvMazpA/w640-h434/2020-12-27_15-57-24.png" width="640" /></a></div><p>Scenes and animations seem to have been lost in the migration. Needed to recreate them</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFhUJ0N0Gz1kT-O9kc2D4lIStQEmX-ZLSYjwYYDFOfFTrJkcsddF30SfyzWvSlwaRqlQMaC5bM2CsGZXFWWy8XBJLTit-R7XQ5pgCdZOJKX2_E1EkZ8bQrU8-otjnI6SYYGiHhwt0-piE/s1047/2020-12-27_16-24-20.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="793" data-original-width="1047" height="484" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFhUJ0N0Gz1kT-O9kc2D4lIStQEmX-ZLSYjwYYDFOfFTrJkcsddF30SfyzWvSlwaRqlQMaC5bM2CsGZXFWWy8XBJLTit-R7XQ5pgCdZOJKX2_E1EkZ8bQrU8-otjnI6SYYGiHhwt0-piE/w640-h484/2020-12-27_16-24-20.png" width="640" /></a></div><br /><p><br /></p><h3 style="text-align: left;">Harmony</h3><p>Looks like only the first instance is needed now. </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgp2TpVxEtbNzDndNOea7qlvL-C1TCZZgDEKKviLVGFw2OXLnK5ouuaYzEDMBvaInGzLKTCLbNgeYmp0O_La9jQ4b499U69NKOY9KqLurLqU7oEpM45YjGQK4maZV3ue9jp0aZFAMViEAA/s1047/2020-12-27_16-45-12.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="677" data-original-width="1047" height="412" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgp2TpVxEtbNzDndNOea7qlvL-C1TCZZgDEKKviLVGFw2OXLnK5ouuaYzEDMBvaInGzLKTCLbNgeYmp0O_La9jQ4b499U69NKOY9KqLurLqU7oEpM45YjGQK4maZV3ue9jp0aZFAMViEAA/w640-h412/2020-12-27_16-45-12.png" width="640" /></a></div><br /><p><br /></p><p>I also needed to delete and readd one hub before it would connect.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRmqS2qbMnmiv9uiurkcoy4Uzz7iyO2kSh1xnxwtin8KVoMFdSeDzPyJB9q6lWzZQlbJFgTcyArq_FU5SRWPuip_qC_UP9eoDdYCsdpljyOcJaI6qsotEkQldaHYsL8rkLFyYiiI_47NY/s1045/2020-12-27_16-48-13.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="450" data-original-width="1045" height="274" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRmqS2qbMnmiv9uiurkcoy4Uzz7iyO2kSh1xnxwtin8KVoMFdSeDzPyJB9q6lWzZQlbJFgTcyArq_FU5SRWPuip_qC_UP9eoDdYCsdpljyOcJaI6qsotEkQldaHYsL8rkLFyYiiI_47NY/w640-h274/2020-12-27_16-48-13.png" width="640" /></a></div><br /><p><br /></p><h3 style="text-align: left;">Timers</h3><p>Triggers using timers did not convert. As in this in HS3 Windows</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcx86Ik5MHTI4ZuSocZH9eIFjHF4yGRPmvVxnEFrRTB6oi6N4jl1_VCCPcD8-i_CejvsHBLWY-HRNJfVGlidMx7WmR7W7EZw2_AB4H0OltrbZAruaQV3rgrXWVmlydsYCAYGqcs5Fn2Ms/s960/2020-12-27_21-03-33.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="352" data-original-width="960" height="232" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcx86Ik5MHTI4ZuSocZH9eIFjHF4yGRPmvVxnEFrRTB6oi6N4jl1_VCCPcD8-i_CejvsHBLWY-HRNJfVGlidMx7WmR7W7EZw2_AB4H0OltrbZAruaQV3rgrXWVmlydsYCAYGqcs5Fn2Ms/w640-h232/2020-12-27_21-03-33.png" width="640" /></a></div><br /><p></p><p>Got converted to this in HS4 linux.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwx9lekELL_F28hKfoimpqidHAFPXr8dqIa3sPfigqR0AKvAEhzqY1bi9pxGnJ82gxCT7fhZJDLFX-AaIFJf11ySU43wGwJC8G94z2XNDIgj4RBE-aUS4bqOOq0S8Z-B2IFhzbT3hmvDM/s1118/2020-12-27_21-02-48.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="634" data-original-width="1118" height="362" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwx9lekELL_F28hKfoimpqidHAFPXr8dqIa3sPfigqR0AKvAEhzqY1bi9pxGnJ82gxCT7fhZJDLFX-AaIFJf11ySU43wGwJC8G94z2XNDIgj4RBE-aUS4bqOOq0S8Z-B2IFhzbT3hmvDM/w640-h362/2020-12-27_21-02-48.png" width="640" /></a></div><br /><p>Note too the save icon. Change do not autosave like before. You should click the save action after editing a trigger or action.</p><h3 style="text-align: left;">Events</h3><p>Other than mentioned elsewhere I'm seeing events triggered for no obvious reason. </p><h3 style="text-align: left;">Scripts</h3><p>As mentioned above the events needed the paths edited but after that I started see a lot of errors that appeared to indicate issues with includes and imports. Turns out those errors are misleading. For instance when I run my script ChkSensors.vb I see:</p><p><b><i>09:44:07:5322:[Event]->Event Trigger "Monitor Sensor check"</i></b></p><p><b><i>09:44:07:5326:[Event]->Running script in background (Sensor check): ChkSensors.vb("chkSensors")</i></b></p><p><b><i>09:44:08:3512:[Error]->Compiling script ChkSensors.vb: The import 'System.Core' could not be found.</i></b></p><p><b><i>09:44:08:3513:[Error]->Compiling script ChkSensors.vb: Variable declaration without an 'As' clause; Object type assumed.</i></b></p><p><b><i>09:44:08:3514:[Error]->Compiling script ChkSensors.vb: Variable declaration without an 'As' clause; Object type assumed.</i></b></p><p><b><i>09:44:08:3515:[Error]->Compiling script ChkSensors.vb: Variable declaration without an 'As' clause; Object type assumed.</i></b></p><p><b><i>09:44:08:3516:[Error]->Compiling script ChkSensors.vb: Variable declaration without an 'As' clause; Object type assumed.</i></b></p><p><b><i>09:44:08:3517:[Error]->Compiling script ChkSensors.vb: Variable declaration without an 'As' clause; Object type assumed.</i></b></p><p><b><i>09:44:08:3518:[Error]->Compiling script ChkSensors.vb: Variable declaration without an 'As' clause; Object type assumed.</i></b></p><p><b><i>09:44:08:3519:[Error]->Compiling script ChkSensors.vb: Variable declaration without an 'As' clause; Object type assumed.</i></b></p><p><b><i>09:44:08:3519:[Error]->Compiling script ChkSensors.vb: Variable declaration without an 'As' clause; Object type assumed.</i></b></p><p><b><i>09:44:08:3520:[Error]->Compiling script ChkSensors.vb: Variable declaration without an 'As' clause; Object type assumed.</i></b></p><p><b><i>09:44:08:3521:[Error]->Compiling script ChkSensors.vb: Variable declaration without an 'As' clause; Object type assumed.</i></b></p><p><b><i>09:44:08:3522:[Error]->Compiling script ChkSensors.vb: Variable declaration without an 'As' clause; Object type assumed.</i></b></p><p><b><i>09:44:08:3522:[Error]->Compiling script ChkSensors.vb: Variable declaration without an 'As' clause; Object type assumed.</i></b></p><p><b><i>09:44:08:3523:[Error]->Compiling script ChkSensors.vb: Variable declaration without an 'As' clause; Object type assumed.</i></b></p><p><b><i>09:44:08:3524:[Error]->Compiling script ChkSensors.vb: Variable declaration without an 'As' clause; Object type assumed.</i></b></p><p><b><i>09:44:08:3525:[Error]->Compiling script ChkSensors.vb: Variable declaration without an 'As' clause; Object type assumed.</i></b></p><p><b><i>09:44:08:3526:[Error]->Compiling script ChkSensors.vb: Variable declaration without an 'As' clause; Object type assumed.</i></b></p><p><b><i>09:44:08:3527:[Error]->Compiling script ChkSensors.vb: Variable declaration without an 'As' clause; Object type assumed.</i></b></p><p><b><i>09:44:08:3528:[Error]->Compiling script ChkSensors.vb: Variable declaration without an 'As' clause; Object type assumed.</i></b></p><p><b><i>09:44:08:3528:[Error]->Compiling script ChkSensors.vb: 42021</i></b></p><p><b><i>09:44:08:3529:[Error]->Compiling script ChkSensors.vb: 42021</i></b></p><p><b><i>09:44:08:3529:[Error]->Compiling script ChkSensors.vb: 42021</i></b></p><p><b><i>09:44:08:3530:[Error]->Compiling script ChkSensors.vb: 42021</i></b></p><p><b><i>09:44:08:3531:[Error]->Compiling script ChkSensors.vb: Variable declaration without an 'As' clause; Object type assumed.</i></b></p><p><b><i>09:44:08:3531:[Error]->Compiling script ChkSensors.vb: 'lastSaid2969Ref' is not declared. It may be inaccessible due to its protection level.</i></b></p><p><b><i>09:44:08:3532:[Error]->Compiling script ChkSensors.vb: 'lastSaid2969Ref' is not declared. It may be inaccessible due to its protection level.</i></b></p><p><b><i>09:44:08:3533:[Error]->Compiling script ChkSensors.vb: Function without an 'As' clause; Object return type assumed.</i></b></p><p><b><i>09:44:08:3534:[Error]->Compiling script ChkSensors.vb: 'lastSaid2969Ref' is not declared. It may be inaccessible due to its protection level.</i></b></p><p><b><i>09:44:08:3535:[Error]->Compiling script ChkSensors.vb: Function without an 'As' clause; Object return type assumed.</i></b></p><p><b><i>09:44:08:3536:[Error]->Compiling script ChkSensors.vb: 'lastSaid2969Ref' is not declared. It may be inaccessible due to its protection level.</i></b></p><p><b><i>09:44:08:3536:[Error]->Compiling script ChkSensors.vb: 'AnnounceMode981Ref' is not declared. It may be inaccessible due to its protection level.</i></b></p><p><b><i>09:44:08:3537:[Error]->Compiling script ChkSensors.vb: 'AnnounceMode981Ref' is not declared. It may be inaccessible due to its protection level.</i></b></p><p><b><i>09:44:08:3538:[Error]->Compiling script ChkSensors.vb: 'CheckedDeviceCount4605Ref' is not declared. It may be inaccessible due to its protection level.</i></b></p><p><br /></p>But from what I'm reading the issue is a bug with vbnc and arrays. For examples these, though none fix for what I'm seeing: </div><div><ul style="text-align: left;"><li><a href="https://forums.homeseer.com/forum/ultilities-plug-ins/utilities-discussion/device-history-shill/107047-system-core-scripting-error-solved" target="_blank">107047-system-core-scripting-error-solved</a> </li><li><a href="https://github.com/mono/mono/issues?q=" target="_blank">Known mono issues</a> </li><li><a href="https://forums.homeseer.com/forum/ultilities-plug-ins/utilities-discussion/device-history-shill/108753-help-with-graphing-in-hstouch" target="_blank">108753-help-with-graphing-in-hstouch</a></li><li><a href="https://forums.homeseer.com/forum/developer-support/scripts-plug-ins-development-and-libraries/hs3-scripting/1422207-adding-dll-and-scriptingreferences" target="_blank">1422207-adding-dll-and-scriptingreferences</a></li><li><a href="https://forums.homeseer.com/forum/homeseer-products-services/system-software-controllers/hs3touch/hs3touch-android-client/104757-dim-android-display-from-linux-hs3" target="_blank">104757-dim-android-display-from-linux-hs3</a> </li><li><a href="https://forums.homeseer.com/forum/3rd-party-developer-area/general-developer-discussion/jon00/47378-jon00-virtual-device-graphing-utility/page28" target="_blank">47378-jon00-virtual-device-graphing-utility</a> (implies it might be a mono version thing)</li></ul></div><div><div style="text-align: left;">Bottom line "System.Core" is basically an indicator "something" went wrong and the "Variable declaration without an 'As' " are real warnings that should not matter. The "inaccessible due to its protection level" errors are the real issues.<br /><br /></div><div style="text-align: left;">At this point I decided to take a step back and see if I could get HS3 running on Linux to separate the migration to Linux issues from the HS3 to HS4 issues. Unfortunately it looks like at least some of the issues might be the events export as some things were still missing. So it looks like it makes little diff if I go to to HS3 or HS4 as it appears the migration to Linux is most of the issues. So I looked at my Raspberry Pi HS3 test instance which was working to see what version on mono it is using to downgrade my CentOS system to. First I needed to add the mono repo to get at the legacy versions.</div><div style="text-align: left;"><br /></div><div style="text-align: left;"><b><i>yum-config-manager --add-repo http://download.mono-project.com/repo/centos7</i></b></div><div style="text-align: left;"><br /></div><p>Remove the current mono version</p><p><b><i> yum remove mono* libmono*</i></b></p><p><b><i> yum autoremove</i></b></p><p>And install the legacy versions</p><p><b><i>yum install -y mono-complete-5.18.0.240-0.xamarin.2.epel7.x86_64 --nogpgcheck</i></b></p><p><b><i>--nogpgcheck</i></b> is added because the keys were missing when I was doing my install.</p><p>Just for added fun the 5.18.0.240-0 version on the Raspberry Pi does not appear to match up with the same version on CentOS. The version vbc on CentOS seemed too old for the version Homeseer needs from the error </p><p><b><i>Unhandled Exception:</i></b></p><p><b><i>System.TypeLoadException: Could not load type of field 'HSConsole.My.MyProject:m_ComputerObjectProvider' (0) due to: Could not load file or assembly 'Microsoft.VisualBasic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies.</i></b></p><p><b><i>[ERROR] FATAL UNHANDLED EXCEPTION: System.TypeLoadException: Could not load type of field 'HSConsole.My.MyProject:m_ComputerObjectProvider' (0) due to: Could not load file or assembly 'Microsoft.VisualBasic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies.</i></b></p><p>The newest mono-complete from the mono repo installs these versions</p><p>====================================================================================================================================</p><p> Package Arch Version Repository Size</p><p>====================================================================================================================================</p><p>Installing:</p><p> mono-complete x86_64 6.12.0.107-0.xamarin.9.epel7 download.mono-project.com_repo_centos7 3.5 k</p><p>Installing for dependencies:</p><p> ibm-data-db2 x86_64 6.12.0.107-0.xamarin.9.epel7 download.mono-project.com_repo_centos7 39 k</p><p> libmono-2_0-devel x86_64 6.12.0.107-0.xamarin.9.epel7 download.mono-project.com_repo_centos7 52 k</p><p> libmono-llvm0 x86_64 6.12.0.107-0.xamarin.9.epel7 download.mono-project.com_repo_centos7 8.9 M</p><p> libmonoboehm-2_0-devel x86_64 6.12.0.107-0.xamarin.9.epel7 download.mono-project.com_repo_centos7 3.1 k</p><p> libmonosgen-2_0-devel x86_64 6.12.0.107-0.xamarin.9.epel7 download.mono-project.com_repo_centos7 6.3 k</p><p> mono-core x86_64 6.12.0.107-0.xamarin.9.epel7 download.mono-project.com_repo_centos7 34 M</p><p> mono-data x86_64 6.12.0.107-0.xamarin.9.epel7 download.mono-project.com_repo_centos7 4.4 M</p><p> mono-data-oracle x86_64 6.12.0.107-0.xamarin.9.epel7 download.mono-project.com_repo_centos7 80 k</p><p> mono-data-sqlite x86_64 6.12.0.107-0.xamarin.9.epel7 download.mono-project.com_repo_centos7 67 k</p><p> mono-devel x86_64 6.12.0.107-0.xamarin.9.epel7 download.mono-project.com_repo_centos7 25 M</p><p> mono-extras x86_64 6.12.0.107-0.xamarin.9.epel7 download.mono-project.com_repo_centos7 398 k</p><p> mono-llvm-tools x86_64 6.0+mono20190708165219-0.xamarin.1.epel7 download.mono-project.com_repo_centos7 17 M</p><p> mono-locale-extras x86_64 6.12.0.107-0.xamarin.9.epel7 download.mono-project.com_repo_centos7 291 k</p><p> mono-mvc x86_64 6.12.0.107-0.xamarin.9.epel7 download.mono-project.com_repo_centos7 433 k</p><p> mono-reactive x86_64 6.12.0.107-0.xamarin.9.epel7 download.mono-project.com_repo_centos7 332 k</p><p> mono-wcf x86_64 6.12.0.107-0.xamarin.9.epel7 download.mono-project.com_repo_centos7 973 k</p><p> mono-web x86_64 6.12.0.107-0.xamarin.9.epel7 download.mono-project.com_repo_centos7 2.2 M</p><p> mono-winforms x86_64 6.12.0.107-0.xamarin.9.epel7 download.mono-project.com_repo_centos7 1.5 M</p><p> mono-winfxcore x86_64 6.12.0.107-0.xamarin.9.epel7 download.mono-project.com_repo_centos7 263 k</p><p> monodoc-core x86_64 6.12.0.107-0.xamarin.9.epel7 download.mono-project.com_repo_centos7 19 M</p><p> msbuild noarch 1:16.6+xamarinxplat.2020.10.22.18.31-0.xamarin.1.epel7 download.mono-project.com_repo_centos7 10 M</p><p> msbuild-libhostfxr x86_64 3.0.0.2019.04.16.02.13-0.xamarin.4.epel7 download.mono-project.com_repo_centos7 167 k</p><p> msbuild-sdkresolver noarch 1:16.6+xamarinxplat.2020.10.22.18.31-0.xamarin.1.epel7 download.mono-project.com_repo_centos7 49 k</p><p>Updating for dependencies:</p><p> libmono-2_0-1 x86_64 6.12.0.107-0.xamarin.9.epel7 download.mono-project.com_repo_centos7 3.3 k</p><p> libmonoboehm-2_0-1 x86_64 6.12.0.107-0.xamarin.9.epel7 download.mono-project.com_repo_centos7 6.3 M</p><p> libmonosgen-2_0-1 x86_64 6.12.0.107-0.xamarin.9.epel7 download.mono-project.com_repo_centos7 6.8 M</p><p>From the epel repo</p><p>====================================================================================================================================</p><p> Package Arch Version Repository Size</p><p>====================================================================================================================================</p><p>Installing:</p><p> mono-complete x86_64 6.8.0-1.el7 epel 39 k</p><p>Installing for dependencies:</p><p> glib2-devel x86_64 2.56.1-8.el7 updates 454 k</p><p> ibm-data-db2 x86_64 6.8.0-1.el7 epel 75 k</p><p> mono-core x86_64 6.8.0-1.el7 epel 19 M</p><p> mono-data x86_64 6.8.0-1.el7 epel 4.8 M</p><p> mono-data-oracle x86_64 6.8.0-1.el7 epel 116 k</p><p> mono-data-sqlite x86_64 6.8.0-1.el7 epel 103 k</p><p> mono-devel x86_64 6.8.0-1.el7 epel 6.4 M</p><p> mono-extras x86_64 6.8.0-1.el7 epel 463 k</p><p> mono-locale-extras x86_64 6.8.0-1.el7 epel 325 k</p><p> mono-mvc x86_64 6.8.0-1.el7 epel 484 k</p><p> mono-reactive x86_64 6.8.0-1.el7 epel 400 k</p><p> mono-wcf x86_64 6.8.0-1.el7 epel 921 k</p><p> mono-web x86_64 6.8.0-1.el7 epel 2.5 M</p><p> mono-winforms x86_64 6.8.0-1.el7 epel 1.6 M</p><p> mono-winfx x86_64 6.8.0-1.el7 epel 310 k</p><p> monodoc x86_64 6.8.0-1.el7 epel 19 M</p><p><br /></p><p>Transaction Summary</p><p>====================================================================================================================================</p><p>Install 1 Package (+16 Dependent packages)</p><p>But still getting the Exception so added mono-*</p><p>====================================================================================================================================</p><p> Package Arch Version Repository Size</p><p>====================================================================================================================================</p><p>Installing:</p><p> mono-addins x86_64 1.1-3.el7 epel 417 k</p><p> mono-addins-devel x86_64 1.1-3.el7 epel 18 k</p><p> mono-basic x86_64 4.6-3.el7 epel 751 k</p><p> mono-basic-devel x86_64 4.6-3.el7 epel 9.2 k</p><p> mono-cecil x86_64 0.9.6-6.el7 epel 231 k</p><p> mono-cecil-devel x86_64 0.9.6-6.el7 epel 4.7 k</p><p> mono-icon-theme noarch 1:4.10.5-4.el7 base 3.7 M</p><p> mono-mvc-devel x86_64 6.8.0-1.el7 epel 39 k</p><p> mono-reactive-devel x86_64 6.8.0-1.el7 epel 39 k</p><p> mono-reactive-winforms x86_64 6.8.0-1.el7 epel 49 k</p><p> mono-web-devel x86_64 6.8.0-1.el7 epel 39 k</p><p> mono-yui x86_64 1.1.0-7.el7 epel 232 k</p><p> mono-zeroconf x86_64 0.9.0-16.el7 epel 99 k</p><p> mono-zeroconf-devel x86_64 0.9.0-16.el7 epel 24 k</p><p>Installing for dependencies:</p><p> gtk-sharp2 x86_64 2.12.26-4.el7 epel 681 k</p><p> libyui x86_64 3.1.5-1.el7 epel 209 k</p><p> libyui-gtk x86_64 2.44.5-5.el7 epel 203 k</p><p><br /></p><p>Transaction Summary</p><p>====================================================================================================================================</p><p>Install 14 Packages (+3 Dependent packages)</p><p>That sorted the Exception which implies mono-complete is not installing needed dependencies. </p><p>After further troubleshooting is appears the issue I'm seeing comes down to variables defined in in and included script are not getting passed on to a script that includes it. For example my script <a href="https://github.com/avatar42/Homeseer/blob/master/scripts/PushBullet.vb">PushBullet.vb</a> includes <a href="http://SayIt.vb">SayIt.vb</a> which includes <a href="https://github.com/avatar42/Homeseer/blob/master/scripts/Refs.vb">Refs.vb</a>. If I run a method in <a href="http://SayIt.vb">SayIt.vb</a> it just works with no errors but if I run one in <a href="https://github.com/avatar42/Homeseer/blob/master/scripts/PushBullet.vb">PushBullet.vb</a> I get errors like these</p><p><b><i>03:53:29:4362:[Event]->Event Script Edit Edit PushBullet.vb triggered by the event page 'Run' button.</i></b></p><p><b><i>03:53:29:4365:[Event]->Event Trigger "Script Edit Edit PushBullet.vb"</i></b></p><p><b><i>03:53:29:4367:[Event]->Running script in background (Edit PushBullet.vb): PushBullet.vb("SendMsg","Test#test message")</i></b></p><p><b><i>03:53:30:1916:[Error]->Compiling script PushBullet.vb: Visual Basic.Net Compiler version 0.0.0.5943 (Mono 4.6 - tarball)</i></b></p><p><b><i>Copyright (C) 2004-2010 Rolf Bjarne Kvinge. All rights reserved.</i></b></p><p><b><i><br /></i></b></p><p><b><i>/tmp/3zxjcr2a.0.vb (2,16) : warning VBNC40056: The import 'System.Core' could not be found.</i></b></p><p><b><i>/tmp/3zxjcr2a.0.vb (43,14) : warning VBNC42020: Variable declaration without an 'As' clause; Object type assumed.</i></b></p><p><b><i>/tmp/3zxjcr2a.0.vb (44,13) : warning VBNC42020: Variable declaration without an 'As' clause; Object type assumed.</i></b></p><p><b><i>/tmp/3zxjcr2a.0.vb (62,14) : warning VBNC42020: Variable declaration without an 'As' clause; Object type assumed.</i></b></p><p><b><i>/tmp/3zxjcr2a.0.vb (63,12) : warning VBNC42020: Variable declaration without an 'As' clause; Object type assumed.</i></b></p><p><b><i>/tmp/3zxjcr2a.0.vb (84,11) : warning VBNC42020: Variable declaration without an 'As' clause; Object type assumed.</i></b></p><p><b><i>/tmp/3zxjcr2a.0.vb (90,11) : warning VBNC42020: Variable declaration without an 'As' clause; Object type assumed.</i></b></p><p><b><i>/tmp/3zxjcr2a.0.vb (96,11) : warning VBNC42020: Variable declaration without an 'As' clause; Object type assumed.</i></b></p><p><b><i>/tmp/3zxjcr2a.0.vb (102,11) : warning VBNC42020: Variable declaration without an 'As' clause; Object type assumed.</i></b></p><p><b><i>/tmp/3zxjcr2a.0.vb (107,11) : warning VBNC42020: Variable declaration without an 'As' clause; Object type assumed.</i></b></p><p><b><i>/tmp/3zxjcr2a.0.vb (218,15) : warning VBNC42020: Variable declaration without an 'As' clause; Object type assumed.</i></b></p><p><b><i>/tmp/3zxjcr2a.0.vb (219,16) : warning VBNC42020: Variable declaration without an 'As' clause; Object type assumed.</i></b></p><p><b><i>/tmp/3zxjcr2a.0.vb (220,17) : warning VBNC42020: Variable declaration without an 'As' clause; Object type assumed.</i></b></p><p><b><i>/tmp/3zxjcr2a.0.vb (229,25) : warning VBNC42020: Variable declaration without an 'As' clause; Object type assumed.</i></b></p><p><b><i>/tmp/3zxjcr2a.0.vb (296,14) : warning VBNC42020: Variable declaration without an 'As' clause; Object type assumed.</i></b></p><p><b><i>/tmp/3zxjcr2a.0.vb (302,21) : warning VBNC42020: Variable declaration without an 'As' clause; Object type assumed.</i></b></p><p><b><i>/tmp/3zxjcr2a.0.vb (310,14) : warning VBNC42020: Variable declaration without an 'As' clause; Object type assumed.</i></b></p><p><b><i>/tmp/3zxjcr2a.0.vb (318,21) : warning VBNC42020: Variable declaration without an 'As' clause; Object type assumed.</i></b></p><p><b><i>/tmp/3zxjcr2a.0.vb (326,14) : warning VBNC42020: Variable declaration without an 'As' clause; Object type assumed.</i></b></p><p><b><i>/tmp/3zxjcr2a.0.vb (327,10) : warning VBNC42020: Variable declaration without an 'As' clause; Object type assumed.</i></b></p><p><b><i>/tmp/3zxjcr2a.0.vb (327,16) : warning VBNC42020: Variable declaration without an 'As' clause; Object type assumed.</i></b></p><p><b><i>/tmp/3zxjcr2a.0.vb (327,23) : warning VBNC42020: Variable declaration without an 'As' clause; Object type assumed.</i></b></p><p><b><i>/tmp/3zxjcr2a.0.vb (327,32) : warning VBNC42020: Variable declaration without an 'As' clause; Object type assumed.</i></b></p><p><b><i>/tmp/3zxjcr2a.0.vb (328,17) : warning VBNC42020: Variable declaration without an 'As' clause; Object type assumed.</i></b></p><p><b><i>/tmp/3zxjcr2a.0.vb (329,21) : warning VBNC42020: Variable declaration without an 'As' clause; Object type assumed.</i></b></p><p><b><i>/tmp/3zxjcr2a.0.vb (117,46) : error VBNC30451: 'lastSaid2969Ref' is not declared. It may be inaccessible due to its protection level.</i></b></p><p><b><i>/tmp/3zxjcr2a.0.vb (128,68) : error VBNC30451: 'lastSaid2969Ref' is not declared. It may be inaccessible due to its protection level.</i></b></p><p><b><i>/tmp/3zxjcr2a.0.vb (127,13) : warning VBNC42024: Function without an 'As' clause; Object return type assumed.</i></b></p><p><b><i>/tmp/3zxjcr2a.0.vb (125,48) : error VBNC30451: 'lastSaid2969Ref' is not declared. It may be inaccessible due to its protection level.</i></b></p><p><b><i>/tmp/3zxjcr2a.0.vb (124,17) : warning VBNC42024: Function without an 'As' clause; Object return type assumed.</i></b></p><p><b><i>/tmp/3zxjcr2a.0.vb (123,48) : error VBNC30451: 'lastSaid2969Ref' is not declared. It may be inaccessible due to its protection level.</i></b></p><p><b><i>/tmp/3zxjcr2a.0.vb (134,76) : error VBNC30451: 'AnnounceMode981Ref' is not declared. It may be inaccessible due to its protection level.</i></b></p><p><b><i>/tmp/3zxjcr2a.0.vb (135,51) : error VBNC30451: 'AnnounceMode981Ref' is not declared. It may be inaccessible due to its protection level.</i></b></p><p><b><i>/tmp/3zxjcr2a.0.vb (227,34) : error VBNC30451: 'Partition14702Ref' is not declared. It may be inaccessible due to its protection level.</i></b></p><p><b><i>/tmp/3zxjcr2a.0.vb (231,66) : error VBNC30451: 'Partition14702Ref' is not declared. It may be inaccessible due to its protection level.</i></b></p><p><b><i>/tmp/3zxjcr2a.0.vb (297,80) : error VBNC30451: 'AlarmLevel2899Ref' is not declared. It may be inaccessible due to its protection level.</i></b></p><p><b><i>/tmp/3zxjcr2a.0.vb (299,41) : error VBNC30451: 'AlarmLevel2899Ref' is not declared. It may be inaccessible due to its protection level.</i></b></p><p><b><i>/tmp/3zxjcr2a.0.vb (299,54) : error VBNC30451: 'AlarmAway' is not declared. It may be inaccessible due to its protection level.</i></b></p><p><b><i>/tmp/3zxjcr2a.0.vb (301,46) : error VBNC30451: 'AlarmLevel2899Ref' is not declared. It may be inaccessible due to its protection level.</i></b></p><p><b><i>/tmp/3zxjcr2a.0.vb (301,59) : error VBNC30451: 'AlarmHome' is not declared. It may be inaccessible due to its protection level.</i></b></p><p><b><i>vbnc : Command line : error VBNC99999: Unexpected error: Object reference not set to an instance of an object</i></b></p><p><b><i> at vbnc.ElseIfStatement.ResolveStatement (vbnc.ResolveInfo Info) [0x00058] in /builddir/build/BUILD/mono-basic-4.6/vbnc/vbnc/source/Statements/ElseIfStatement.vb:78</i></b></p><p><b><i> at vbnc.Statement.ResolveCode (vbnc.ResolveInfo Info) [0x00000] in /builddir/build/BUILD/mono-basic-4.6/vbnc/vbnc/source/Statements/Statement.vb:53</i></b></p><p><b><i> at vbnc.BaseObjects`1[T].ResolveCode (vbnc.ResolveInfo Info) [0x00054] in /builddir/build/BUILD/mono-basic-4.6/vbnc/vbnc/source/General/BaseObjects`1.vb:63</i></b></p><p><b><i> at vbnc.IfStatement.ResolveStatement (vbnc.ResolveInfo Info) [0x000ac] in /builddir/build/BUILD/mono-basic-4.6/vbnc/vbnc/source/Statements/IfStatement.vb:119</i></b></p><p><b><i> at vbnc.CodeBlock.ResolveCode (vbnc.ResolveInfo Info) [0x000c6] in /builddir/build/BUILD/mono-basic-4.6/vbnc/vbnc/source/Code/CodeBlock.vb:570</i></b></p><p><b><i> at vbnc.MethodBaseDeclaration.ResolveCode (vbnc.ResolveInfo Info) [0x00088] in /builddir/build/BUILD/mono-basic-4.6/vbnc/vbnc/source/General/MethodBaseDeclaration.vb:331</i></b></p><p><b><i> at vbnc.SubDeclaration.ResolveCode (vbnc.ResolveInfo Info) [0x00048] in /builddir/build/BUILD/mono-basic-4.6/vbnc/vbnc/source/Members/SubDeclaration.vb:118</i></b></p><p><b><i> at vbnc.BaseObjects`1[T].ResolveCode (vbnc.ResolveInfo Info) [0x00054] in /builddir/build/BUILD/mono-basic-4.6/vbnc/vbnc/source/General/BaseObjects`1.vb:63</i></b></p><p><b><i> at vbnc.TypeDeclaration.ResolveCode (vbnc.ResolveInfo Info) [0x00081] in /builddir/build/BUILD/mono-basic-4.6/vbnc/vbnc/source/TypeDeclarations/TypeDeclaration.vb:407</i></b></p><p><b><i> at vbnc.ClassDeclaration.ResolveCode (vbnc.ResolveInfo Info) [0x00029] in /builddir/build/BUILD/mono-basic-4.6/vbnc/vbnc/source/TypeDeclarations/ClassDeclaration.vb:140</i></b></p><p><b><i> at vbnc.AssemblyDeclaration.ResolveCode (vbnc.ResolveInfo Info) [0x00040] in /builddir/build/BUILD/mono-basic-4.6/vbnc/vbnc/source/TypeDeclarations/AssemblyDeclaration.vb:159</i></b></p><p><b><i> at vbnc.Compiler.Compile_Resolve () [0x003ae] in /builddir/build/BUILD/mono-basic-4.6/vbnc/vbnc/source/General/Compiler.vb:416</i></b></p><p><b><i> at vbnc.Compiler.Compile () [0x004c6] in /builddir/build/BUILD/mono-basic-4.6/vbnc/vbnc/source/General/Compiler.vb:532</i></b></p><p><b><i>Compilation took 00:00:00.6890000</i></b></p><p>Taking the same scripts back to the Raspberry Pi even the <a href="http://SayIt.vb">SayIt.vb</a> methods got the same "<b>is not declared. It may be inaccessible due to its protection level."</b> errors. Meaning it is not seeing any vars defined in an included file. </p><p>Since CentOS can see vars and method one level up, a quick fix seemed to be to copy <a href="https://github.com/avatar42/Homeseer/blob/master/scripts/Refs.vb">Refs.vb</a> in <a href="http://SayIt.vb">SayIt.vb</a> though that did not sort the <a href="https://github.com/avatar42/Homeseer/blob/master/scripts/Alarm.vb" target="_blank">Alarm.vb</a> script which includes <a href="https://github.com/avatar42/Homeseer/blob/master/scripts/PushBullet.vb">PushBullet.vb</a>. I worked around that by copying the bits of <a href="https://github.com/avatar42/Homeseer/blob/master/scripts/PushBullet.vb">PushBullet.vb</a> it used into it and including <a href="http://SayIt.vb">SayIt.vb</a>. </p><p>But then <a href="https://github.com/avatar42/Homeseer/blob/master/scripts/vesync.vb" target="_blank">vesync.vb</a> tried to run and crashed HS4.</p><p><b><i>=================================================================</i></b></p><p><b><i> Basic Fault Address Reporting</i></b></p><p><b><i>=================================================================</i></b></p><p><b><i>Memory around native instruction pointer (0x7f139c7ac387):0x7f139c7ac377 48 63 d7 48 63 f6 48 63 f9 b8 ea 00 00 00 0f 05 Hc.Hc.Hc........</i></b></p><p><b><i>0x7f139c7ac387 48 3d 00 f0 ff ff 77 1e f3 c3 0f 1f 80 00 00 00 H=....w.........</i></b></p><p><b><i>0x7f139c7ac397 00 85 c9 7f db 89 c8 f7 d8 81 e1 ff ff ff 7f 0f ................</i></b></p><p><b><i>0x7f139c7ac3a7 44 c6 89 c1 eb ca 48 8b 15 9c 0a 39 00 f7 d8 64 D.....H....9...d</i></b></p><p><b><i><br /></i></b></p><p><b><i>=================================================================</i></b></p><p><b><i> Managed Stacktrace:</i></b></p><p><b><i>=================================================================</i></b></p><p><b><i> at <unknown> <0xffffffff></i></b></p><p><b><i> at scriptcode10.VBWrapper:sendCmd <0x000d7></i></b></p><p><b><i> at scriptcode10.VBWrapper:sendOff <0x0010b></i></b></p><p><b><i> at scriptcode10.VBWrapper:reset <0x00037></i></b></p><p><b><i> at scriptcode10.VBWrapper:resetRef <0x0016f></i></b></p><p><b><i> at <Module>:runtime_invoke_void__this___object <0x00094></i></b></p><p><b><i> at <unknown> <0xffffffff></i></b></p><p><b><i> at System.Reflection.RuntimeMethodInfo:InternalInvoke <0x000d0></i></b></p><p><b><i> at System.Reflection.RuntimeMethodInfo:Invoke <0x00123></i></b></p><p><b><i> at System.Reflection.MethodBase:Invoke <0x00045></i></b></p><p><b><i> at Scheduler.clsRunVBNetScript:ExecuteScript <0x00deb></i></b></p><p><b><i> at System.Threading.ThreadHelper:ThreadStart_Context <0x000a5></i></b></p><p><b><i> at System.Threading.ExecutionContext:RunInternal <0x001f1></i></b></p><p><b><i> at System.Threading.ExecutionContext:Run <0x00043></i></b></p><p><b><i> at System.Threading.ExecutionContext:Run <0x0006f></i></b></p><p><b><i> at System.Threading.ThreadHelper:ThreadStart <0x00043></i></b></p><p><b><i> at System.Object:runtime_invoke_void__this__ <0x00085></i></b></p><p><b><i>=================================================================</i></b></p><p><b><i>Connection to HomeSeer lost, exiting</i></b></p><p>So I disabled the <a href="https://github.com/avatar42/Homeseer/blob/master/scripts/vesync.vb" target="_blank">vesync.vb</a> script on the CentOS box and went back to the Pi with the idea trying to debug there without risking crashing my [some what] running system. In an effort to make the Pi test system closer to the CentOS system I upgraded it mono to version 6. That did not seem to change any outcomes.</p><p> <a href="https://forums.homeseer.com/forum/3rd-party-developer-area/general-developer-discussion/1261582-mono-5-x-vb-aspx-compatibility-issue/page2" target="_blank">This gave me some ideas on how to add some debug</a>. After editing /usr/bin/vbnc to this</p><p>#!/bin/bash</p><p># mono vbnc invocation script patched for HS3 aspx compatibility</p><p>logfile=/tmp/$(basename $0)$$.log</p><p>echo "$0 $@" > $logfile</p><p>for x</p><p>do</p><p> echo $x >> $logfile</p><p> if [[ $x =~ ^/tmp/ && -e $x ]]</p><p> then</p><p> (echo "------------"; echo "$x "; cat $x) >> $logfile</p><p> fi</p><p>done</p><p>exec /usr/bin/mono --debug $MONO_OPTIONS /usr/lib/mono/4.5/vbnc.exe "$@" 2>&1 | tee -a $logfile</p><p>This lets you see the options used to compile the script and sync the code lines to stacktrace. The start of the log in this case read:</p><p>/usr/bin/vbnc /quiet /target:library /out:/tmp/gnq3bi3e.dll /r:System.dll /r:System.Core.dll /r:System.Xml.dll /r:System.Data.dll /r:Scheduler.dll /r:HomeSeerAPI.dll /r:Microsoft.VisualBasic.dll /r:System.Data.DataSetExtensions.dll /r:System.Data.Linq.dll /r:System.Xml.Linq.dll /r:HSCF.dll /r:Microsoft.VisualBasic.dll /t:library /tmp/gnq3bi3e.0.vb</p><p>/quiet</p><p>/target:library</p><p>/out:/tmp/gnq3bi3e.dll</p><p>/r:System.dll</p><p>/r:System.Core.dll</p><p>/r:System.Xml.dll</p><p>/r:System.Data.dll</p><p>/r:Scheduler.dll</p><p>/r:HomeSeerAPI.dll</p><p>/r:Microsoft.VisualBasic.dll</p><p>/r:System.Data.DataSetExtensions.dll</p><p>/r:System.Data.Linq.dll</p><p>/r:System.Xml.Linq.dll</p><p>/r:HSCF.dll</p><p>/r:Microsoft.VisualBasic.dll</p><p>/t:library</p><p>/tmp/gnq3bi3e.0.vb</p><p>------------</p><p>/tmp/gnq3bi3e.0.vb</p><p><feff>Imports System</p><p>Imports System.Core</p><p>Imports System.Xml</p><p>Imports System.Data</p><p>Imports System.Linq</p><p>Imports System.Data.Linq</p><p>Imports Microsoft.VisualBasic</p><p>Imports Scheduler</p><p>Imports HomeSeerAPI</p><p>Imports HomeSeerAPI.CAPI</p><p>Imports System.Collections</p><p><br /></p><p>Namespace scriptcode11</p><p>Class VBWrapper </p><p>dim hs as object</p><p>public sub InitHS(newhs as object)</p><p>hs = newhs</p><p>end sub</p><p>'load object refs and speech methods</p><p><br /></p><p>' import headers def</p><p><br /></p><p>' Methods for sending messages to Pushbullet</p><p><br /></p><p>Sub Main(ByVal params As String) </p><p> SendMsg(params)</p><p>End Sub</p><p>You will note the includes are missing since the start of my code ought to be:</p><p>'load object refs and speech methods</p><p>#Include SayIt.vb</p><p><br /></p><p>' import headers def</p><p>#Include Secrets.vb</p><p><br /></p><p>' Methods for sending messages to Pushbullet</p><p><br /></p><p>Sub Main(ByVal params As String) </p><p> SendMsg(params)</p><p>End Sub</p><p>Most documentation says there is no Include support in vb. Which might explain why it does not work in mono though it worked in Windows VB as <a href="https://forums.homeseer.com/forum/homeseer-products-services/system-software-controllers/hs3-hs3pro-software/hs3-hs3pro-discussion/100157-scripts-with-common-subroutine" target="_blank">mentioned here</a> and was working fine for me in my Windows instance. (Unfortunately all the scripts I had previously tried on my Pi test instance did not use includes.) So now I'm looking at how to rewrite without using Includes. It looks like the best solution for me is to change all the <a href="http://SayIt.vb">SayIt.vb</a> method calls to use <a href="https://forums.homeseer.com/forum/developer-support/scripts-plug-ins-development-and-libraries/hs3-scripting/107214-hs-runscriptfunc-question" target="_blank">RunScriptFunc</a> instead.</p><h1 style="text-align: left;">Starting Over going from HS3 on Windows to HS4 on Windows instead.</h1><p>After spending close to 2 weeks trying to sort getting HS4 on Linux to work only to have it crash on me yet again requiring a reboot of the machine to get the plugins working again I decided staying on Windows might make more sense for now. Especially since it appears my scripts will need major rewrites to work on Linux<a href="#" name="winInstall">.</a> <b style="background-color: #fcff01;"><span style="color: #444444;">Note issues below were seen in both Windows and Linux unless otherwise noted.</span></b></p><h2>Basic install</h2></div></div><div>As <a href="https://forums.homeseer.com/forum/homeseer-products-services/system-software-controllers/hs4-hs4pro-software/1413245-how-to-upgrade-to-hs4/page2" target="_blank">suggested here</a> I cloned my Homeseer HS3 folder to a Homeseer HS4 one then installed over that. Sort of a combo of the two options <a href="https://docs.homeseer.com/display/HS4/Windows+and+S6" target="_blank">here</a>. Note you will still need to go through the all config options even though it should know most of the info already.</div><div><br /></div><div>St first glance most of the issues I saw moving to HS4 on Linux are not there. Even Alexa linkage is fine. Note you will need to go into events that call scripts to change the path if running them from the Homeseer HS3 folder is a problem for you. They seem to run fine that way though.</div><div><br /></div><div>Fonts are a bit uneven so you might want to update C:\Program Files (x86)\HomeSeer HS4\html\css\Custom.css to look like this</div><div><div><b>/* Add style elements to this file to customize your HomeSeer Web Interface */</b></div><div><b>/* Any style elements in this file that are a duplicate of one in STYLE.CSS will override STYLE.CSS */</b></div><div><b>.jqDropList {</b></div><div><b> font-family: Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;</b></div><div><b> font-size: 1em;</b></div><div><b>}</b></div></div><div><br /></div><div><h2>Plugins</h2><div>Note you will probably need to tell your firewall to allow the plugins to talk again.</div><h3>Hue / JowiHue</h3></div><div>Everything seems to be like it was with no issues.</div><div><h3>Harmony</h3><p>Still using multiple instance like before unlike on Linux.</p><h2 style="text-align: left;">Events</h2><div>Mostly they seem to have converted fine. Script path might need editing and a few values were not quite right but way better than on Linux. Unclear it this is a Linux upgrade issue or having to export and import events to convert all the Windows paths to Linux ones. I did still had few instances where the conversion still had the HS4 feature as the device like HS3 instead of converting. <a href="#Jon00Event" target="_blank">See Jon00 Event Viewer & Documenter for Homeseer 4 above</a>. Note though some appear to show as broken in Jon00's tool even though they are working.</div><div><br /></div><div>Sometimes device actions do not seem to allow editing of the device and you must remove and replace it instead.</div><h3>Scripts</h3></div><div>Are working fine without mod from HS3 versions. </div></div></div><div><br /></div><h2 style="text-align: left;">Updates:</h2><h3 style="text-align: left;">3/2/2021</h3><div>For some reason my Homeseer 4 server rebooted on 2/28/2021 and after it came back up the events.json file was the same size but filled with blanks. Note the Event view only shows a "was shutdown improperly" error. No errors or warnings for at least an hour before it came back up. Normally this would indicate a loss of power but the unit is on its own 1500 watt UPS which will support it longer than most of my other servers and none of them dropped offline. So odd on multiple levels. </div><div><br /></div><div>I copied the backup file in place and things seemed to be OK. The next day I noticed some events did not seem to be running and I found what was happening was any scripts with includes (almost all of the ons I wrote) called by events were failing. Since this does not stop the event from completing you might not notice unless monitoring the log. This would seem to indicate the .Net framework upgraded to a version that no longer supports includes similar to what I found above on Linux but again no updates were logged for a couple days before the reboot and even then they were for Defender.</div><div><br /></div><div>So I was left scrambling to rewrite all <a href="https://github.com/avatar42/Homeseer/tree/master/scripts" target="_blank">my scripts</a> to not use includes. This mainly meant replacing "included" defines with global variables and "included" method calls with <a href="https://forums.homeseer.com/forum/developer-support/scripts-plug-ins-development-and-libraries/hs3-scripting/107214-hs-runscriptfunc-question" target="_blank">RunScriptFunc</a> calls. </div><div><br /></div><div>Another issue I found was calling hs.SetDeviceString(dv.Ref(Nothing), "", True) yielded an error IL_013e. Trying to set it to a text value instead just changed the error code to IL_0105. A workaround was not quickly found but fortunately in this case it this was in cleanup code for <a href="https://shop.homeseer.com/products/blade-blradar-software-plug-in-for-hs3" target="_blank">BLRadar</a> trial mods so just commenting it out for now was fine.</div><div><br /></div><div>I was doing testing on Raspberry Pi HS3 instance to disrupt as little as possible and do double duty od hopefully vetting changes against both HS3 and Linux. Anyway there still seems to be an issue with Newtonsoft.Json on the Pi instance so probably CentOS as well. I'll need to sort that before attempting the move to Linux again but for now working under HS4 just adding to the todo queue as well.</div>Avatar42http://www.blogger.com/profile/02989695403513365236noreply@blogger.com1tag:blogger.com,1999:blog-4206308026427876681.post-16753787333129885892020-09-19T16:57:00.001-07:002020-09-19T17:10:20.548-07:00Quick VNC setup<p>I started with <a href="https://www.tecmint.com/install-and-configure-vnc-server-in-centos-7/" target="_blank">these instructions</a>. Note the session you get is not what is on the console. It is a separate one like you would get with Windows Terminal Server. This may be a feature or issue given your needs. </p><p>Those instructions boil down to the step below (with added tweaks). Replace <USER> with your user name.</p><p>Log out of any X Windows sessions and log in via ssh</p><p>You may need to clean up these old files / folders. (<a href="https://access.redhat.com/discussions/1149233" target="_blank">See this</a>.) If they exist remove them with <b>rm -fr</b> as in <b>rm -rf /tmp/.X0-lock</b>.</p><p></p><ul style="text-align: left;"><li>/home/<USER>/.vnc</li><li>/tmp/.X*</li></ul><p></p><p>Run these commands as root or add <b><i>sudo </i></b>in front of each. </p><p><b><i>yum groupinstall "GNOME Desktop"</i></b></p><p><b><i>yum install -y tigervnc-server xorg-x11-fonts-Type1</i></b></p><p><b><i>su - <USER></i></b></p><p><b><i>vncpasswd</i></b></p><p><b><i>exit</i></b></p><p><b><i>firewall-cmd --add-port=5901/tcp --permanent</i></b></p><p><b><i>cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service</i></b></p><p><b><i>vi /etc/systemd/system/vncserver@\:1.service</i></b></p><p><span style="background-color: #fff2cc; color: #444444;"><b>Instead of their instructions change the file contents to this</b></span></p><p><span style="background-color: #cccccc;">[Unit]</span></p><p><span style="background-color: #cccccc;">Description=Remote desktop service (VNC)</span></p><p><span style="background-color: #cccccc;">After=syslog.target network.target</span></p><p><span style="background-color: #cccccc;">[Service]</span></p><p><span style="background-color: #cccccc;">Type=simple</span></p><p><span style="background-color: #cccccc;">#Type=forking</span></p><p><span style="background-color: #cccccc;"># Clean any existing files in /tmp/.X11-unix environment</span></p><p><span style="background-color: #cccccc;">ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'</span></p><p><span style="background-color: #cccccc;">ExecStart=/sbin/runuser -l <USER> -c "/usr/bin/vncserver %i -geometry 1920x1080"</span></p><p><span style="background-color: #cccccc;">PIDFile=/home/<USER> /.vnc/%H%i.pid</span></p><p><span style="background-color: #cccccc;">ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'</span></p><p><span style="background-color: #cccccc;">[Install]</span></p><p><span style="background-color: #cccccc;">WantedBy=multi-user.target</span></p><p><b><i>systemctl daemon-reload</i></b></p><p><b><i>systemctl start vncserver@:1</i></b></p><p><b><i>systemctl status vncserver@:1 -l</i></b></p><p>Output should look like </p><p><span style="background-color: #cccccc;">● vncserver@:1.service - Remote desktop service (VNC)</span></p><p><span style="background-color: #cccccc;"> Loaded: loaded (/etc/systemd/system/vncserver@:1.service; enabled; vendor preset: disabled)</span></p><p><span style="background-color: #cccccc;"> Active: inactive (dead) since Sat 2020-09-19 18:29:07 CDT; 6min ago</span></p><p><span style="background-color: #cccccc;"> Process: 12636 ExecStop=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)</span></p><p><span style="background-color: #cccccc;"> Process: 12563 ExecStart=/sbin/runuser -l dea -c /usr/bin/vncserver %i -geometry 1920x1080 (code=exited, status=0/SUCCESS)</span></p><p><span style="background-color: #cccccc;"> Process: 12550 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)</span></p><p><span style="background-color: #cccccc;"> Main PID: 12563 (code=exited, status=0/SUCCESS)</span></p><p><span style="background-color: #cccccc;"><br /></span></p><p><span style="background-color: #cccccc;">Sep 19 18:29:04 asusl.dea42.us systemd[1]: Starting Remote desktop service (VNC)...</span></p><p></p><p><span style="background-color: #cccccc;">Sep 19 18:29:04 asusl.dea42.us systemd[1]: Started Remote desktop service (VNC).</span></p><p><b style="font-style: italic;">reboot </b>(just to be sure it all starts automatically)</p><p>Install a client like <a href="https://www.realvnc.com/en/connect/download/viewer/" target="_blank">RealVNC</a></p><p><span style="background-color: #fff2cc; color: #444444;"><b>Note the above instructions leave out the fact you need add the port 5901 in the connection like:</b></span></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEix4-CsdESJu__fo6IZzEGw-5VMz1DV4T4BRaP1GtUqLIqJe7rgZEJu-v8Qrrkbo2qashCgn8lV1KhjtGitYNYVf6N6zJcRac4AiUySXwV00LNHbtqtSHqy0Kxpuz6k_UmxQpqS-Q6R4BM/s896/2020-09-19_18-53-55.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="645" data-original-width="896" height="460" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEix4-CsdESJu__fo6IZzEGw-5VMz1DV4T4BRaP1GtUqLIqJe7rgZEJu-v8Qrrkbo2qashCgn8lV1KhjtGitYNYVf6N6zJcRac4AiUySXwV00LNHbtqtSHqy0Kxpuz6k_UmxQpqS-Q6R4BM/w640-h460/2020-09-19_18-53-55.png" width="640" /></a></div><br /><p><span style="background-color: #fff2cc;"><span style="color: #444444;"><b>Note too you will probably need to open port 5901 on your clients firewall as well.</b></span></span></p><p><br /></p><p><br /></p>Avatar42http://www.blogger.com/profile/02989695403513365236noreply@blogger.com0tag:blogger.com,1999:blog-4206308026427876681.post-83710498334526557522020-08-15T13:07:00.004-07:002020-08-15T13:15:13.562-07:00Simple automation controlled siren <p> I see posts from time to time wanting a siren controlled by home automation. I tried several "home automation" sirens but they were all feeble. For instance:</p><p><a href="https://smile.amazon.com/gp/product/B01M1NLPKZ" target="_blank">Dome Home Automation DMS01 Wireless Z-Wave Battery-Powered Home Security Siren and Chime, White</a></p><p><a href="https://smile.amazon.com/gp/product/B00PKKM2HO" target="_blank">Aeotec Siren Gen5, Z-Wave Plus, 105dB Siren with Strobe alerts, Plug-in, Backup Battery</a></p><p>What I was looking for was something to encourage any critters that found their way into the shop to leave so needed something <b style="font-style: italic;"><span style="font-size: x-large;">LOUD</span></b>. What I found was the <a href="https://smile.amazon.com/gp/product/B000X4LR64" target="_blank">Honeywell Ademco 748 119db Dual-Tone Siren</a>. </p><div class="separator" style="clear: both; text-align: center;"><a href="https://images-na.ssl-images-amazon.com/images/I/41ymtUra1WL._AC_SL1001_.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="540" data-original-width="484" height="432" src="https://images-na.ssl-images-amazon.com/images/I/41ymtUra1WL._AC_SL1001_.jpg" width="387" /></a></div><p><br /></p><p>You do not want to be in the room with this going off without ear protection. To power it I'm using the <a href="https://smile.amazon.com/gp/product/B00JRX360W" target="_blank">BINZET DC12V 2.5A 30 Watt LED Power Supply Driver Transformer AC 120V-130V to DC 12V 2.5A Output Voltage Convertor LED Strip Low Voltage Powered LED Light Regulator</a>. </p><div class="separator" style="clear: both; text-align: center;"><a href="https://images-na.ssl-images-amazon.com/images/I/61Giag1r%2BBL._AC_SL1000_.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="492" data-original-width="800" height="363" src="https://images-na.ssl-images-amazon.com/images/I/61Giag1r%2BBL._AC_SL1000_.jpg" width="592" /></a></div><p><br /></p><p>All you then need is to stick it into any smart plug you have. The <a href="https://automation.rmrr42.com/2018/11/etekcity-wifi-smart-plug.html">Etekcity WiFi Smart Plugs</a> are a cheap and simple solution for it. The <a href="https://play.google.com/store/apps/details?id=com.etekcity.vesyncplatform&hl=en_US" target="_blank">VeSync app</a> makes it simple to control without automation too.</p><p><br /></p>Avatar42http://www.blogger.com/profile/02989695403513365236noreply@blogger.com0tag:blogger.com,1999:blog-4206308026427876681.post-36327380946833561722020-04-19T16:16:00.000-07:002020-04-19T16:16:43.450-07:00If you are frustrated with Alexa and are thinking Google<h2>
The problem</h2>
<a href="https://automation.rmrr42.com/search/label/Amazon%20Echo">Alexa</a> has not been talking to <a href="https://automation.rmrr42.com/search/label/Homeseer">Homeseer</a> for most of the last 3 days so I started beefing up my backup controls since opening an app or web browser reduces the usefulness of the non automatic stuff a good bit. I already had a <a href="https://smile.amazon.com/gp/product/B0799SF1KC">4 button remote</a> set up for the 4 main voice routines ("Good morning", "Bed time", "Good night" and "Away"). I also have four voice routines backed up with <a href="https://automation.rmrr42.com/search/label/Echo%20Buttons">Echo Buttons</a> for things like returning to streaming video from a security camera event, telling selected streamer to start next episode, reset room etc, that I also wanted to work while <a href="https://automation.rmrr42.com/search/label/Amazon%20Echo">Alexa</a> is in a mood. So I set up spare <a href="https://smile.amazon.com/gp/product/B0799SF1KC">4 button remote</a> to backup those. That was a whole side adventure of its own.<br />
<br />
<h4>
As a "quick" before I did this.</h4>
About mid day I tried to add a <a href="https://smile.amazon.com/gp/product/B0799SF1KC">4 button remote</a> to back stop my 4 <a href="https://automation.rmrr42.com/search/label/Echo%20Buttons">Echo buttons</a>. I found the <a href="https://automation.rmrr42.com/search/label/Z-Net">Z-Net</a> the house (other 3 were fine) was showing as not responding despite clearing being up. Just decided to reboot and found the OS had undone my rollback for the update the causes the system to constantly crash and reboot. (I had been avoiding the Win 7 to Win 10 upgrade till I had time). So had to rollback again. Then decided to make the time to do the upgrade to Win 10. Got that done and port 80 was blocked even though nothing was running on it. <a href="https://stackoverflow.com/questions/1430141/port-80-is-being-used-by-system-pid-4-what-is-that">The usual stuff did not sort it</a>. <a href="https://superuser.com/questions/352017/pid4-using-port-80">Finally found the registry entry to change to sort that</a>, got remote added, labeled and linked to <a href="https://automation.rmrr42.com/search/label/Amazon%20Echo">Alexa</a> events just in time for bed so the <a href="https://automation.rmrr42.com/search/label/Google%20Home">Google</a> update had to wait till the next day.<br />
<br />
<h2>
On to updating <a href="https://automation.rmrr42.com/search/label/Google%20Home">Google Home</a></h2>
<h3>
First the virtual devices I use to trigger events</h3>
One point to start. <a href="https://automation.rmrr42.com/search/label/Google%20Home">Google</a> like <a href="https://automation.rmrr42.com/search/label/Amazon%20Echo">Alexa</a> only sees a small subset of the devices <a href="https://automation.rmrr42.com/search/label/Homeseer">Homeseer</a> does. In <a href="https://automation.rmrr42.com/search/label/Google%20Home">Google</a>'s case it only sees 84 total smart devices. <a href="https://automation.rmrr42.com/search/label/Homeseer">Homeseer</a> alone shows 3227 "devices". Granted in <a href="https://automation.rmrr42.com/search/label/Homeseer">Homeseer</a> a lot of those are multiple data streams on single actual physical device.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjayNF9IyZ7lL7S_IXvGEV9nVG5OmV0f7SaWfpYSNHRkjv5G4JH5RRtVS5cGKhhap4ez9YFBRe-NPdPQQgm6k45HCFkwCLX5TcmMjFksb5DniexB6u6O2eAB4TtOtsNPFydx12Lyc2DxoE/s1600/2020-04-19_17-58-17.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="323" data-original-width="998" height="206" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjayNF9IyZ7lL7S_IXvGEV9nVG5OmV0f7SaWfpYSNHRkjv5G4JH5RRtVS5cGKhhap4ez9YFBRe-NPdPQQgm6k45HCFkwCLX5TcmMjFksb5DniexB6u6O2eAB4TtOtsNPFydx12Lyc2DxoE/s640/2020-04-19_17-58-17.png" width="640" /></a></div>
<br />
<a href="https://automation.rmrr42.com/2019/12/alexa-still-not-entry-level-hub.html">Last I counted Alexa saw 348</a> so still quite a few more than <a href="https://automation.rmrr42.com/search/label/Google%20Home">Google</a>.<br />
<br />
<a href="https://www.the-ambient.com/how-to/add-devices-google-assistant-441">Adding devices looks simple</a>. But the first issue was just finding them. New stuff is getting dumped at the bottom in a "Linked to you" labeled (no room) section with the full name, starting with location 1 and location 2 making it REAL tough to tell them apart.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEis_0bO6DUnkA0ZHhoZO0ZSLQ2JqVR9Qv3y8Fp5kJHlZN6NU1IJpPTSdlwOoxGyE2N71VYRSFE4jN60kAojdHvnG6QQowy3__r1rBs9EpJR2ZCjD0dQp67V81nm4kFuJIIxenYGPD1a9B4/s1600/Capture%252B_2020-04-19-12-48-26.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="850" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEis_0bO6DUnkA0ZHhoZO0ZSLQ2JqVR9Qv3y8Fp5kJHlZN6NU1IJpPTSdlwOoxGyE2N71VYRSFE4jN60kAojdHvnG6QQowy3__r1rBs9EpJR2ZCjD0dQp67V81nm4kFuJIIxenYGPD1a9B4/s400/Capture%252B_2020-04-19-12-48-26.png" width="212" /></a></div>
So the first thing you need to do is rename them and assign them to a room. Even that proved oddly more difficult than it should be. For example.<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjLH1Ikh_4O7hul8qFq8bJQqaH3opqAQrit1Ij5J0bUvKidhsm4spzJb1tvquD05RLOYWMX2FvJ6P6Ukfa-qH5Xblx_EC8uu7DlFaqNPczhx7NqtLh3V6xz8qEN10qAaYsv6gZS9XGcFo/s1600/Capture%252B_2020-04-19-12-56-53.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="850" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjLH1Ikh_4O7hul8qFq8bJQqaH3opqAQrit1Ij5J0bUvKidhsm4spzJb1tvquD05RLOYWMX2FvJ6P6Ukfa-qH5Xblx_EC8uu7DlFaqNPczhx7NqtLh3V6xz8qEN10qAaYsv6gZS9XGcFo/s320/Capture%252B_2020-04-19-12-56-53.png" width="170" /></a></div>
When you try and edit it, the name gets truncated.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0oRfciDyLALmTxUP2A-syLRzIqhe5k5rfRlC_v9egZbGwwN9-Q1ZiM1Hh9ek3ft-185StUqL2_EHBhYtS4fJfK8nzwvTfKdmUXX2kVpbBxe0DkIfkBQavgd8FOv2hQd6AWer7M6feuSE/s1600/Capture%252B_2020-04-19-12-57-18.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="850" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0oRfciDyLALmTxUP2A-syLRzIqhe5k5rfRlC_v9egZbGwwN9-Q1ZiM1Hh9ek3ft-185StUqL2_EHBhYtS4fJfK8nzwvTfKdmUXX2kVpbBxe0DkIfkBQavgd8FOv2hQd6AWer7M6feuSE/s320/Capture%252B_2020-04-19-12-57-18.png" width="170" /></a></div>
<br />
After retyping the whole name just to get the locations removed you want to put it in a "room" so you can find it easier so you tap add to room and you get to this page. I toyed with the idea here of moving all the shop and barn devices to a separate "homes" but figured but not to add complexity.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSIk-CBk6jUO3Mauyc34rf1zIxB2bxXgMiqClKTsJyyL4ndAtVuP6vUSPRaiiYVyLL7NgjpqRvInj56c8XG6M4ga1bJQ0SVBaNCsI1iOBErkYN9PAzQ8E3Np60P1TAzF0wltq160HsVDw/s1600/Capture%252B_2020-04-19-12-57-58.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="850" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSIk-CBk6jUO3Mauyc34rf1zIxB2bxXgMiqClKTsJyyL4ndAtVuP6vUSPRaiiYVyLL7NgjpqRvInj56c8XG6M4ga1bJQ0SVBaNCsI1iOBErkYN9PAzQ8E3Np60P1TAzF0wltq160HsVDw/s320/Capture%252B_2020-04-19-12-57-58.png" width="170" /></a></div>
<br />
Clicking next gets you here, which to me is confusing. All you can do is tap move or quit so I tapped move.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEja-cHnh9QKFmneIk7HGQ0KSCN1UQ1AfGkhublYZ_TQ__i2-ZT3sqTgo7B3wL9-m1Y8OAmki2QAwDyaBLGaaOQ04VNNYSynvzncpW7sqKHIJGS6PgnYS8bYIPL26yTat12mf9-WGPcy3Zo/s1600/Capture%252B_2020-04-19-12-58-10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="850" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEja-cHnh9QKFmneIk7HGQ0KSCN1UQ1AfGkhublYZ_TQ__i2-ZT3sqTgo7B3wL9-m1Y8OAmki2QAwDyaBLGaaOQ04VNNYSynvzncpW7sqKHIJGS6PgnYS8bYIPL26yTat12mf9-WGPcy3Zo/s320/Capture%252B_2020-04-19-12-58-10.png" width="170" /></a></div>
<br />
That gets me to where I expected to be.<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8TRJvaY7_AboRKy7TCY2EjE1BRDo3SLB1A_sw7tISZrc2BPuSReGl9ug4lRe5Ndaln4UJsKHWyFC0pL2HyLB8y4I-hycnmT3A-0Wr2CgzyQpOKixNy-ONryopNzyhHeHmp0JPKZPul58/s1600/Capture%252B_2020-04-19-12-58-26.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1600" data-original-width="850" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8TRJvaY7_AboRKy7TCY2EjE1BRDo3SLB1A_sw7tISZrc2BPuSReGl9ug4lRe5Ndaln4UJsKHWyFC0pL2HyLB8y4I-hycnmT3A-0Wr2CgzyQpOKixNy-ONryopNzyhHeHmp0JPKZPul58/s320/Capture%252B_2020-04-19-12-58-26.png" width="170" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Note I had added an "Alexa" custom room earlier.</td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLLbv3hQ6rfnNsjp4HMi75vzHo2a-oYNwsqFUZdmNbyEb96akAx3qR_2yi25ITPlDD8PzCVpPtAyy8KUIbdjQ25aa2PyvTDWz23ToJbEead6VkiNx56v1NqqlvUcGv4X8XZ-HJSRAxHfM/s1600/Capture%252B_2020-04-19-12-58-38.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="850" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLLbv3hQ6rfnNsjp4HMi75vzHo2a-oYNwsqFUZdmNbyEb96akAx3qR_2yi25ITPlDD8PzCVpPtAyy8KUIbdjQ25aa2PyvTDWz23ToJbEead6VkiNx56v1NqqlvUcGv4X8XZ-HJSRAxHfM/s320/Capture%252B_2020-04-19-12-58-38.png" width="170" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Now this looks better.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXqmHzVmVzVOacvlRvrQEEUgluer3HJcKSU0i9bGfEsK11CwqEYeAZ7GenU6owbSvBn8CfO6lSOX0VM5CeWFuDG_IlVG2XkfUfpb0fJZ15fqrNGKRwamOk28xpJbSt6LovLwvuoTpPK6c/s1600/Capture%252B_2020-04-19-13-07-03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="850" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXqmHzVmVzVOacvlRvrQEEUgluer3HJcKSU0i9bGfEsK11CwqEYeAZ7GenU6owbSvBn8CfO6lSOX0VM5CeWFuDG_IlVG2XkfUfpb0fJZ15fqrNGKRwamOk28xpJbSt6LovLwvuoTpPK6c/s320/Capture%252B_2020-04-19-13-07-03.png" width="170" /></a></div>
<br />
<h3>
Now for the routines</h3>
<h4>
Forget the built ins</h4>
<a href="https://www.tomsguide.com/us/google-home-routine,review-5232.html">Adding or editing a routine looks simple too</a>. First I tried adding the "Good morning trigger" to the "Good Morning" routine. That appears to work till try to save it and you get.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVCRqm9-C1BW5dcL4oDmKCtJMUc_-sI7dlys-R6SSZIMdDXm7ctS4GRQaAAw0RGp8BY1UYvjF_fDVHh4-J06GAZefvoDfWO1Z6FwSg-kf38pYh9qDAnIojQKqRGW-vXG8zViHbde5vg0A/s1600/Capture%252B_2020-04-19-13-05-13.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="850" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVCRqm9-C1BW5dcL4oDmKCtJMUc_-sI7dlys-R6SSZIMdDXm7ctS4GRQaAAw0RGp8BY1UYvjF_fDVHh4-J06GAZefvoDfWO1Z6FwSg-kf38pYh9qDAnIojQKqRGW-vXG8zViHbde5vg0A/s320/Capture%252B_2020-04-19-13-05-13.png" width="170" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
This post "<a href="https://support.google.com/assistant/thread/441212?hl=en">Routines aren't saving</a>" seems to say it is smart home devices that no longer work. I found that hard to believe. Then I tried "Hey Google, Good morning" and it kept running the "Good night" routine so editing the built in did not seem to matter anyway.<br />
<br />
<h4>
Starting from scratch</h4>
As one last option to try I created a custom routine called "Good morning sunshine" which seems to be the magic needed. It replies that "Homeseer could not be reached" but the <a href="https://automation.rmrr42.com/search/label/Homeseer">Homeseer</a> virtual did trip and trigger the event.<br />
<br />
To do that it I created a routine to use instead of using one of the built ins. Then added an action. Note you do not want to tap the "add an action" button which takes you here.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4vfhaKajMNzYE_XzAcHTBmuBdnuayjVwQQy6jHh4lk-ALwFLL4s91apBWRgS_IDxKgwtBlBIoNPsvZkcJkdbh_GIpapBz9g2vzpe9uZbZ05YEpwXE_I7nfA2bK8nH66mUfqoYBtSYmP8/s1600/Capture%252B_2020-04-19-13-02-57.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="850" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4vfhaKajMNzYE_XzAcHTBmuBdnuayjVwQQy6jHh4lk-ALwFLL4s91apBWRgS_IDxKgwtBlBIoNPsvZkcJkdbh_GIpapBz9g2vzpe9uZbZ05YEpwXE_I7nfA2bK8nH66mUfqoYBtSYmP8/s320/Capture%252B_2020-04-19-13-02-57.png" width="170" /></a></div>
<br />
Instead check "Adjust lights, plugs and more" and tap its settings (gear) icon.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEid_TJXNh749nYWQv4TtG6wNfkXJtvx6ONj_FqOyLjz2HiuVRPfG6aQPlSuVip0fzNIaBdQkFawPw_PzFkYB0OPrWYZ2U2RT6zg2QM2Qa5CWLLnGfShZKbSEY9sXEgcPKPtAyRGf9SNAL8/s1600/Capture%252B_2020-04-19-13-54-28.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="850" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEid_TJXNh749nYWQv4TtG6wNfkXJtvx6ONj_FqOyLjz2HiuVRPfG6aQPlSuVip0fzNIaBdQkFawPw_PzFkYB0OPrWYZ2U2RT6zg2QM2Qa5CWLLnGfShZKbSEY9sXEgcPKPtAyRGf9SNAL8/s400/Capture%252B_2020-04-19-13-54-28.png" width="212" /></a></div>
<br />
To further complicate things I had to use the "Home trigger" as a test since the "Good morning trigger" did not show in the list of devices.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicnnkmAT6F4v6jtHZRHT7zxSQk-1aFtIE4aXq2ldE845qldsxQy729nbJNIBDgZPIZPFrBvAck53pf51VIURUM-97Lz-wbKNJjibjtZMZWttZYIWFnZdKgU2ygE38T0HJsJUdZWX7g8GE/s1600/Capture%252B_2020-04-19-13-54-14.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="850" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicnnkmAT6F4v6jtHZRHT7zxSQk-1aFtIE4aXq2ldE845qldsxQy729nbJNIBDgZPIZPFrBvAck53pf51VIURUM-97Lz-wbKNJjibjtZMZWttZYIWFnZdKgU2ygE38T0HJsJUdZWX7g8GE/s320/Capture%252B_2020-04-19-13-54-14.png" width="170" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
I assume because it is showing offline for some reason despite them looking the same in the Homeseer interface. It does of course still show in the main device list.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0T0oYkg5mdzTJ6EHvd73Meyf0W5XfupMXBJbwWnnxdKp-EhSNr5ieusAEIOQ0vnzv6pkXqVL0ulFhdwQJlqBZVPBx8eRTsJ_b65WdlP6fOMf6fSuprWBFQVd8AEPxGXM57LBL2wIAiB8/s1600/Capture%252B_2020-04-19-13-11-00.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="850" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0T0oYkg5mdzTJ6EHvd73Meyf0W5XfupMXBJbwWnnxdKp-EhSNr5ieusAEIOQ0vnzv6pkXqVL0ulFhdwQJlqBZVPBx8eRTsJ_b65WdlP6fOMf6fSuprWBFQVd8AEPxGXM57LBL2wIAiB8/s320/Capture%252B_2020-04-19-13-11-00.png" width="170" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcWQFHXUy390nkoJXs8rYknpNfxAP43vlebwxJXeckaM-8hj5QxnkyRsrJzCA0VQg8Wk_AAdKZLd6Uk-YcDDU1ip-iJP4cwzkDB7zGeRWj_nVLfCKterP7eWIoXu1_joWKL0jKtrtRfrM/s1600/Capture%252B_2020-04-19-13-11-12.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="1600" data-original-width="850" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcWQFHXUy390nkoJXs8rYknpNfxAP43vlebwxJXeckaM-8hj5QxnkyRsrJzCA0VQg8Wk_AAdKZLd6Uk-YcDDU1ip-iJP4cwzkDB7zGeRWj_nVLfCKterP7eWIoXu1_joWKL0jKtrtRfrM/s320/Capture%252B_2020-04-19-13-11-12.png" width="170" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg228bmWQzk4oeM3hVK73Mi78h2lnkLHGF-XKp2NgVCFci0dak7sPmDe_yJOcWg2zMCkrJjRtiWOqOgXAM5BoWNvIsyRjxqOmkWCI1JuMd1b67rKRo-SB7JeR2fC2rh9Usb_bTURAoNojk/s1600/2020-04-19_17-16-02.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="469" data-original-width="1000" height="294" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg228bmWQzk4oeM3hVK73Mi78h2lnkLHGF-XKp2NgVCFci0dak7sPmDe_yJOcWg2zMCkrJjRtiWOqOgXAM5BoWNvIsyRjxqOmkWCI1JuMd1b67rKRo-SB7JeR2fC2rh9Usb_bTURAoNojk/s640/2020-04-19_17-16-02.png" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">In case you need the config to get yours working</td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyqHw4M5LTXIGC7l42j2lLdtpj8RT5LawGcjpCQRpDtRnEEzrToWaXNENq0at0WoQ-2eONZZ-DB-rdR4CTVAAW9TMeOh6DeUu1rUnjisrZQphA5hq-RHje_szhdUVRtGBUImUKIyI2S-4/s1600/2020-04-19_17-16-31.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="907" data-original-width="1009" height="570" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyqHw4M5LTXIGC7l42j2lLdtpj8RT5LawGcjpCQRpDtRnEEzrToWaXNENq0at0WoQ-2eONZZ-DB-rdR4CTVAAW9TMeOh6DeUu1rUnjisrZQphA5hq-RHje_szhdUVRtGBUImUKIyI2S-4/s640/2020-04-19_17-16-31.png" width="640" /></a></div>
<br />
Anyway I could now save the routine. I added a couple other actions match the <a href="https://automation.rmrr42.com/search/label/Amazon%20Echo">Alexa</a> routine.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPkd0HNYGb_T-ycLv2kE2ojoSPZnwA8rADaEI-7zP9Vvh4QiRbjXuy51HxlQEDwD5PODgLdAoUgpSKqasxSzMPsHEfaAnLR9Ma739BFaEIb9MoinVKfcPju-lQx27HKkIfshAKlsyVMgg/s1600/Capture%252B_2020-04-19-14-02-07.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="850" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPkd0HNYGb_T-ycLv2kE2ojoSPZnwA8rADaEI-7zP9Vvh4QiRbjXuy51HxlQEDwD5PODgLdAoUgpSKqasxSzMPsHEfaAnLR9Ma739BFaEIb9MoinVKfcPju-lQx27HKkIfshAKlsyVMgg/s320/Capture%252B_2020-04-19-14-02-07.png" width="170" /></a></div>
<br />
<br />
<br />Avatar42http://www.blogger.com/profile/02989695403513365236noreply@blogger.com0tag:blogger.com,1999:blog-4206308026427876681.post-8930110966293641892020-04-17T11:15:00.001-07:002020-04-17T11:15:16.276-07:00Hat that displays your temperature.This would seem to be a million dollar idea for someone. It is currently 603 on my todo list if no one else does it be for I get to it around mid 2025. The picture below is what I did as a mock up. <a href="https://smile.amazon.com/gp/product/B07SGJ6QQ8">The hat with display is a real thing you can buy</a>. For this mock up I just input what I wanted it to display in the <a href="https://play.google.com/store/apps/details?id=cn.com.tiro.magicdisplay">app</a>. <a href="https://play.google.com/store/apps/details?id=cn.com.tiro.magicdisplay">The app</a> has a ton of options. I stopped it for the pic but the display scrolls in various directions and even has what they call a snow mode. <br />
<br />
This hat has 4 modes:<br />
<br />
▶1、Text Mode: Can display up to 80 English characters<br />
<br />
▶2、 Music Mode: Music Equalizer display, the phone song automatically syncs<br />
<br />
▶3、 Custom Drawing Mode: DIY editing:, draw the animation you want<br />
<br />
▶4、 Animation Mode: 7 fixed animation modes<br />
<br />
Product Features<br />
<br />
☉ 1、Mobile APP Bluetooth connection (1 mobile phone can connect 2 hats)<br />
<br />
☉2、Support language: English, Chinese, German,Spanish, Korean, Russian, Japanese, French, etc.<br />
<br />
☉3、 Detachable: Separate display screen and hat, cotton hat, comfortable to wear, After removing the screen and battery can be washed with water.<br />
<br />
The hat is just Bluetooth device so it should be a minor thing to add this to any tracker app. Optionally it should be pretty trivial to create a hat with a temperature sensor in the hat band though the app makes more sense to me.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDxAw-pafo2OnaVpzZHayjTy5OXtLFg8G-ajKSlotyHqcEpzpW1MzU_XcOyXDQAf2v-za_I-T85Du9Z726fA3ct0Sdkw-4O3osCZDlETRWIslNQ4BuiCzJYvKi_I1tWMrQOpN8aVTIMdk/s1600/20200417_105453.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1200" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDxAw-pafo2OnaVpzZHayjTy5OXtLFg8G-ajKSlotyHqcEpzpW1MzU_XcOyXDQAf2v-za_I-T85Du9Z726fA3ct0Sdkw-4O3osCZDlETRWIslNQ4BuiCzJYvKi_I1tWMrQOpN8aVTIMdk/s640/20200417_105453.jpg" width="480" /></a></div>
<br />Avatar42http://www.blogger.com/profile/02989695403513365236noreply@blogger.com0tag:blogger.com,1999:blog-4206308026427876681.post-90766023556176455712020-03-23T13:31:00.002-07:002020-09-19T17:02:28.940-07:00And the nerds will inherit the Earth?<span style="font-family: inherit;">I'm seeing a lot of posts about people having a hard time with SARS-CoV-2 (CoVid-19) guidelines though it is pretty much SOP for nerds like me. Following the guidelines ought to be fairly straight forward with tech available to us in 2020. For instance:</span><br />
<span style="font-family: inherit;"><br /></span>
<br />
<h2>
<span style="font-family: inherit; font-size: large;">Avoid crowds</span></h2>
<span style="font-family: inherit;">I tend to avoid people like most who lean toward the introverted. I also have a <a href="https://automation.rmrr42.com/2019/05/dakota-mailbox.html">package drop off box at my gate so deliveries</a> they do not even need to come to my door (with alerts and so I can find where the left them) and a <a href="https://securitycam101.rmrr42.com/search/label/Ring">Ring doorbell</a> so I can talk to delivery people if need be but can't get to the door. I also have cameras and sensors that let me see if the thing coming through the gate is a delivery, visitor, wild life or loose livestock and can track them up the driveway but that might be overkill for city folk. But with a long enough driveway it can give time to put on gear if needed too.</span><br />
<span style="font-family: inherit;"><br /></span>
<br />
<h2>
<span style="font-family: inherit; font-size: large;">Work from home if you can.</span></h2>
<span style="font-family: inherit;">I've worked from home since 2013 and off and on long before that doing tech work for every kind of company from start ups to </span>government<span style="font-family: inherit;"> agencies. Even the places that "did not want me to work from home", almost all expected me to use a laptop so I could work from home "off hours". Don't even get me started on why at least 1/3 of people should be working from home most if not all the time. In short there is no </span>technical<span style="font-family: inherit;"> reason people that sit at a computer all day can't work from home.</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">Note musicians are live streaming from homes using online services like </span><a href="http://onlineconcertthing.com/" style="font-family: inherit;">onlineconcertthing.com</a><span style="font-family: inherit;"> or Facebook so they can earn money and you can still see them perform and support them. Even newscasters are starting to work from home. We need to start asking why go to an office instead of why not and make the world better for everyone. Especially all the people that need to get past all that </span>unnecessary<span style="font-family: inherit;"> traffic.</span><br />
<span style="font-family: inherit;"><br /></span>
<br />
<h2>
<span style="font-family: inherit;">Limit trips</span></h2>
<span style="font-family: inherit;">See <b>Avoid crowds</b>. </span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">I mainly get stuff online. Did you know <a href="https://www.samsclub.com/">Sams</a> ships most stuff for the same price as in store? Often way cheaper than Amazon too for food items. The nearest HEB is a 15 minute drive from my gate, much less a Sams so for the stuff I get local I tend to do in batches. </span>And since there is no point in running out for just a couple things <span style="font-family: inherit;">I keep 2 to 4 weeks of supplies on hand generally replenished around 50% used or as needed or happen to be out for something else. </span>Efficiency<span style="font-family: inherit;"> is the key word here. </span><br />
<span style="font-family: inherit;"><br /></span>
<h2>
<span style="font-family: inherit;">Plan ahead.</span></h2>
<span style="font-family: inherit;">As people discover the advantages of delivery, the </span>delivery systems are being stressed. HEB curbside pickup much less delivery is booked up weeks into the future. <a href="https://www.businessinsider.com/coronavirus-amazon-suspends-all-non-essential-shipments-to-warehouses-2020-3">Amazon announced it is blocking all shipments of nonessential products to its warehouses</a>. So plan for what you will need and try to order with plenty of lead time.<br />
<span style="font-family: inherit;"><br /></span>
<br />
<h2>
<span style="font-family: inherit;">Get outside to avoid feeling cooped up but avoid getting close to people.</span></h2>
<span style="font-family: inherit;">Kind of depressing to think of people living in homes that depress them but I have pets and other animals to take care of plus other outdoor stuff needing done. I'm letting my garden go wild this year because I just do not have the time for it but if you don't have a garden (plot or pot) why not start now. Seriously if you are local and need a workout I have lots of rocks, limbs and junk that needs moved about. And getting chased by pissed off wildlife or loose livestock is a great motivator.</span><br />
<br />
<h2>
<span style="font-family: inherit;"><span face=""arial" , "helvetica" , sans-serif">Keep yourself occupied</span></span></h2>
<span style="font-family: inherit;">Unclear how anyone can get bored these days between free online learning and streaming services being added daily. I have more projects than time plus animals to take care of. If Facebook is not eating enough of your time you could always get on Ancestry.com. But it can be a bigger time sink than Facebook so be sure to surface once and a while to let people know you are OK.</span><br />
<span style="font-family: inherit;"><br /></span>
<br />
<h2>
<span style="font-family: inherit;">Wash hands well.</span></h2>
<span style="font-family: inherit;">Seriously we have to tell people this? </span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">I wash my hands a LOT and thoroughly. I have pets and wildlife tends to drop by on top dirty chores so just makes sense given the places and amount of fur I've seen. Unless you live in a sterile environment you should too.</span><br />
<span style="font-family: inherit;"><br /></span>
<br />
<h2>
<span style="font-family: inherit;">Monitor your temperature to know if you are getting sick / safe to be around.</span></h2>
<span style="font-family: inherit;">I monitor my health to what some may see as an excessive degree to find patterns and head off getting sick. But working in IT has taught me you can only spot a pattern with enough data and everything you monitor (this includes you) deviates from the norm / average so just comparing a reading to an average is only useful on the macro level. As in if your temp is 100 then there is little doubt you are sick. But if you temp is 99.0 you might be sick or well depending on YOUR average. You could have a fever and be contagious at 98.0 if your normal (average) is 97.0. <a href="https://automation.rmrr42.com/2020/03/a-quick-note-on-baselines-and-monitoring.html">You need to know YOUR baseline on YOUR equipment.</a> </span><br />
<span style="font-family: inherit;"><br /></span>
<br />
<h2>
<span style="font-family: inherit;">Avoid touching surfaces and your face if you do. </span></h2>
<span style="font-family: inherit;"><b>See wash hands well.</b></span><br />
<span style="font-family: inherit;"><a href="https://automation.rmrr42.com/">Thanks to home automation my home is mostly hands free</a>. Mainly to save time and make life easier, not just because I assume pretty much every open surface has germs (and fur on it (see above)). Does have the added benefit though that I'm touching a lot less stuff.</span><br />
<span style="font-family: inherit;"><br /></span>
<br />
<h2>
<span style="font-family: inherit;">Stay home if you are sick</span></h2>
<span style="font-family: inherit;">This should be common sense and not even an issue if you work from home. But if your company mindset is stuck in the 1900s or your job is not mainly using a computer or phone all day it might be tough. Hopefully one positive we’ll see from this will be companies finally waking up to unnecessary waste and risk (both to employees and the company bottom line) of the 1900s office model and work from home will become the default.</span><br />
<span style="font-family: inherit;"><br /></span>
<br />
<h2>
<span face=""arial" , "helvetica" , sans-serif"><span style="font-family: inherit;">Remember to check on </span>friends<span style="font-family: inherit;"> and family.</span></span></h2>
<span style="font-family: inherit;"><b>This does not mean pop by</b>. Call, Skype or just check in on social media.<br />
</span>Avatar42http://www.blogger.com/profile/02989695403513365236noreply@blogger.com1tag:blogger.com,1999:blog-4206308026427876681.post-8108856972727086792020-03-23T11:22:00.003-07:002020-03-23T11:22:59.801-07:00A quick note on baselines and monitoringPeople in IT generally get the <a href="https://automation.rmrr42.com/search/label/monitoring">importance of monitoring</a> for spotting issues. This is why surveillance systems tend toward overkill on data capture as well. Because looking for a pattern, much less a trend in limited data too often leads to the wrong conclusions.<br />
<br />
The <a href="https://www.cdc.gov/coronavirus/2019-ncov/downloads/COVID-19_CAREKit_ENG.pdf">current CoVid-19 guidelines include taking you temperature twice a day</a>. At first this might seem excessive but here is the deal.<br />
<br />
<ul>
<li>98.6 is a <b>generalized average for humans</b>. But actual people vary a fair bit from that. I remember the first physical I had to have for a job the doctor tried 3 thermometers on me before finally deciding I was fine other than being on the low end of the spectrum. </li>
<li>Then you add to that <b>people's temp varies over the day</b> and <b>thermometers are not near as accurate as most people assume</b>. Take your temp 2 or 3 times in 5 minutes and see for yourself. </li>
</ul>
<br />
<br />
<span style="background-color: yellow;"><span style="color: #444444;">So knowing <b>YOUR</b> normal range with <b>YOUR</b> thermometer is critical to knowing if you actually have a fever. </span></span>Those with allergies probably already know this as often a fever it the main difference between a bad allergy day and having a cold or the flu.<br />
<br />
Personally I use <a href="https://www.mynetdiary.com/">MyNetDiary</a> to log all kinds of health data including how I feel, pills I take, food I eat and even how much water I drink cause when I feel like crap I want to know why. And hopefully how I can work out how to avoid it happening again or at least plan to deal. This can be very useful sorting allergies and controlling weight as well. Being able to see the data in charts really helps in seeing patterns and bad data too.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioThAjBreedy4hGnu2xr4yhyphenhyphenLiaLIMH09zZKXIOnDzKrVEz4gSskP0bEV5E1wm_EIQCfIWrxopX1JP7kTzLriJew6IJ9YZwuPF90qqkWzE1AAgo3mcJI57JOw9QlCqHSBXXeU7tASOzsE/s1600/2020-03-22_10-49-37.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="911" data-original-width="863" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioThAjBreedy4hGnu2xr4yhyphenhyphenLiaLIMH09zZKXIOnDzKrVEz4gSskP0bEV5E1wm_EIQCfIWrxopX1JP7kTzLriJew6IJ9YZwuPF90qqkWzE1AAgo3mcJI57JOw9QlCqHSBXXeU7tASOzsE/s640/2020-03-22_10-49-37.png" width="606" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
Note there are lots of online tracking services I like <a href="https://www.mynetdiary.com/">MyNetDiary</a> because it support custom things like temperature. Note they hide these in the diabetes section for some reason I've never sorted. You will notice above I even track the room temperature at the time I take my temperature just to ensure if there is any variance discovered later that might be accounted for by the room temp. Like I said there really is no such thing as too much data. You can always filter or delete later but you can not go back and get data you did not think mattered at the time.<br />
<br />
For easy of use it is hard to beat the <a href="https://www.amazon.com/Withings-Thermo-Temporal-Thermometer-FSA-Eligible/dp/B072LQFK3R">Withings Thermo</a> Sadly Withings does not show charts for temperature. But then last I checked transcribing into a service like <a href="https://www.mynetdiary.com/">MyNetDiary</a> was the only way to get a chart of your temperature. Maybe after this outbreak that will change. <br />
<br />Avatar42http://www.blogger.com/profile/02989695403513365236noreply@blogger.com0tag:blogger.com,1999:blog-4206308026427876681.post-13966724058007271262020-01-21T09:43:00.000-08:002020-01-21T09:43:06.017-08:00Things to monitor and controlPeople often ask for ideas of what to do next. I say if you can count your devices, you need more.<br />
<h3>
Some of the things I'm doing:</h3>
<br />
<ul>
<li><a href="https://automation.rmrr42.com/search/label/Lighting">Smart bulbs and light switches</a> of course mostly controlled by motion and or contact switches</li>
<li><a href="https://automation.rmrr42.com/search/label/Security">Alarm system</a></li>
<li>TV and other AV gear mainly via <a href="https://automation.rmrr42.com/search/label/Harmony">Harmony hubs</a></li>
<li><a href="https://automation.rmrr42.com/search/label/Amazon%20Echo">Voice assistants</a></li>
<li><a href="https://securitycam101.rmrr42.com/2019/08/my-current-setup.html">61 security cameras (at the moment and not including the Ring doorbell as it is cloud based)</a> linked into HA <a href="https://automation.rmrr42.com/search?q=dakota">motion sensors</a>, alarm system and AV controls to mark video and send triggered cams to main stream video dependent alert and alarm levels.</li>
<li><a href="https://automation.rmrr42.com/search?q=temperature">Indoor and component temperature monitoring</a>, smart thermostat and window AC and fan controls.</li>
<li><a href="https://automation.rmrr42.com/search?q=weather">Weather monitoring</a></li>
<li><a href="https://automation.rmrr42.com/search/label/Rachio">Watering system</a></li>
<li><a href="https://automation.rmrr42.com/search/label/monitoring">Tons of monitoring</a>, as that is the bit that people always seem to forget, Which tells me is something is offline or a battery is low or is signalling replacement as in the case of a UPS. This ranges to things like shows being short on a TiVo which would indicate the cable company knocked the tuner offline with an update again and <a href="https://automation.rmrr42.com/2018/06/use-windows-wmi-and-powershell-to-send.html">over loaded CPUs on PC and updates need applied</a>. <a href="https://github.com/avatar42/MyMonitor">I even wrote a program to make adding things to monitor easier</a>.</li>
</ul>
<br />
<h3>
Still on the to-do list:</h3>
<br />
<ul>
<li>Find smart door locks that can tell me the doors lock status at a reasonable price. The weather is so variable here in central Texas, heat and humidity wise that exterior doors change shape enough that doors tend to need a push or a pull for the dead bolt to align so I've given up on actually being able to lock/unlock them. Wish now I'd wired the dead bolt holes with recessed switches.</li>
<li>Open garage door on command though mainly for the "Goodbye" routine that puts the site into away mode only after checking the alarm is ready to arm. Seen too many glitches to feel good about it opening automatically on return.</li>
<li>Smarter motion recognition. Ultimate goal is to be able to have it tell me what is sees moving and tell me where a pet was last seen. Would prefer a <a href="https://securitycam101.rmrr42.com/search/label/Blue%20Iris">Blue Iris</a> <a href="https://smartsentry.ai/blue-iris/">plugin </a>or similar but might look at a separate system like <a href="https://pjreddie.com/darknet/yolo/">YOLO </a>I can send triggered images to.</li>
<li>Want GPS tracking of pets when practical. Which seems soon.</li>
<li>Of course wild critters are getting to be big deal here which accounts for many of the cameras. For example I recently added 4 just trying to find a <a href="https://www.youtube.com/playlist?list=PLKQt4NWvc9ottnDqhE7sm5qeeFphMWzDF">snake</a> that got in the shop. Lately <a href="https://www.youtube.com/playlist?list=PLKQt4NWvc9ou6XxSRfIM2hpEeI7RLrqD9">feral hogs are the thing</a>.</li>
<li>Well and water softener monitor so know if the well has tripped, a filter has clogged or a pipe is leaking / burst.</li>
</ul>
<h3>
Other stuff some have mentioned but not on my list:</h3>
<div>
<ul>
<li>Smart or controllable blinds.</li>
</ul>
</div>
<div>
<br /></div>
Avatar42http://www.blogger.com/profile/02989695403513365236noreply@blogger.com0tag:blogger.com,1999:blog-4206308026427876681.post-91765908180706105602019-12-20T11:44:00.001-08:002020-01-28T19:29:36.476-08:00Alexa still not an entry level hub replacementI was writing up a response to someone about <a href="https://automation.rmrr42.com/search/label/IFTTT">IFTTT</a> and <a href="https://automation.rmrr42.com/search/label/Amazon%20Echo">Alexa</a> / <a href="https://automation.rmrr42.com/search/label/Wireless%20Tag">Wireless Tag</a> integration which will probably but useful later so I'm saving it here as it reflects on <a href="https://automation.rmrr42.com/search/label/Amazon%20Echo">Alexa</a>'s poor support for sensors. <b style="background-color: yellow;">Note <a href="https://automation.rmrr42.com/search/label/Amazon%20Echo">Alexa</a>'s home automation interface is still better than <a href="https://automation.rmrr42.com/search/label/Google%20Home">Google</a>'s almost non existent one. (See compare below.)</b><br />
<br />
Why go through <a href="https://automation.rmrr42.com/search/label/IFTTT">IFTTT</a> when you can integrate <a href="https://automation.rmrr42.com/search/label/Wireless%20Tag">Wireless Tag</a>s direct with Kumo? As in as in <a href="https://automation.rmrr42.com/2018/10/wanting-to-monitor-your-fridge-freezer.html">my fridge / freezer monitoring setup</a> which updates values as they change in my <a href="https://automation.rmrr42.com/search/label/Homeseer">Homeseer</a> instance which then can trigger any action <a href="https://automation.rmrr42.com/search/label/Homeseer">Homeseer</a> can perform. Which is just about anything. Plus <a href="https://automation.rmrr42.com/2019/05/might-be-time-to-give-up-on-ifttt.html">IFTTT was become very unreliable this year</a>.<br />
<br />
<a href="https://automation.rmrr42.com/search/label/Amazon%20Echo">Alexa</a> <a href="https://store.wirelesstag.net/blogs/news/google-home-and-alexa-smart-home-skill">Wireless Tag integration sort of works</a>. I can ask the temperature of a sensor for example, "Alexa, what is the temperature of the freezer" and it tells me the reading from my regular sensor in the freezer. Though oddly in the device list I only see motion values for the regular tags and what appears to be temperature for the <a href="https://automation.rmrr42.com/2019/05/monitoring-soil-moisture.html">soil moisture</a> tags. (Not all my <a href="https://automation.rmrr42.com/2019/05/monitoring-soil-moisture.html">soil moisture</a> tags are dead.) Again oddly you can't use the sensor values in routines. Though finding anything in the <a href="https://automation.rmrr42.com/search/label/Amazon%20Echo">Alexa</a> device list is almost impossible since it is designed for people the just have a few things. Even stranger:<br />
<br />
<ul>
<li>You can sort the device list in the <a href="https://alexa.amazon.com/spa/index.html#smart-home">web interface</a> but not the android one. </li>
<li>The <a href="https://alexa.amazon.com/spa/index.html#smart-home">web interface</a> does not let you do anything with the devices on the list other than forget the device.</li>
<li>Routine management is missing from the <a href="https://alexa.amazon.com/spa/index.html#smart-home">web interface</a>.</li>
<li>The android list interface does have some groups to narrow down the list but way to few. For example, the only way to see a list of the 12 of my 348 devices <a href="https://automation.rmrr42.com/search/label/Amazon%20Echo">Alexa</a> sees as "sensors" is to try to create a routine with one. </li>
<li>My <a href="https://automation.rmrr42.com/search/label/Homeseer">Homeseer</a> sees 3137 "devices" as I write this. <b style="background-color: yellow;">(Note a "device" is data stream or parent. As in a Hue Sensor would be seen as 5 "devices". A parent and 4 sensors, light level, temperature, motion and battery level.) </b><a href="https://automation.rmrr42.com/search/label/Amazon%20Echo">Alexa</a> only sees 348 of those <b style="background-color: yellow;">(note some of the 348 are <a href="https://automation.rmrr42.com/search/label/Amazon%20Echo">Alexa</a> devices not in the <a href="https://automation.rmrr42.com/search/label/Homeseer">Homeseer</a> count)</b> and only 12 of those as sensors from SmartThings, <a href="https://automation.rmrr42.com/search/label/Wyze">Wyze</a>, <a href="https://securitycam101.rmrr42.com/search/label/Ring">Ring</a> and <a href="https://automation.rmrr42.com/search/label/Hue">Hue</a> so far. Even then for example the <span id="goog_1964648258"></span><a href="https://smile.amazon.com/gp/product/B076MGK22M">Hue<span id="goog_1964648259"></span> sensors report motion, temp and light</a> gut <a href="https://automation.rmrr42.com/search/label/Amazon%20Echo">Alexa</a> only sees motion info.</li>
<li>Lack of complex triggers. For example: if no motion has been detected and door opens, turn on light. If motion has been detected and door opens turn off light. Or if any of room motion sensors are tripped reset occupancy timer. When occupancy timer hits X minutes turn off everything in room.</li>
</ul>
<br />
<br />
When you have 348 devices (that <a href="https://automation.rmrr42.com/search/label/Amazon%20Echo">Alexa</a> sees) like I do, it is almost useless. Amazon <b>REALLY</b> needs to improve their interface so it can scale if they want people to use their routine framework for any logic. So while it would be nice to have <a href="https://automation.rmrr42.com/search/label/Wireless%20Tag">Wireless Tag</a>s usable as sensors in <a href="https://automation.rmrr42.com/search/label/Amazon%20Echo">Alexa</a> to, for instance, announce the fridge is too warm, I do not really see it as big deal till Amazon makes their configuration interface more usable.<br />
<br />
<h3>
To be fair when Alexa is compared to Google's Home:</h3>
<h4>
Cons:</h4>
<br />
<ul>
<li><a href="https://automation.rmrr42.com/search/label/Google%20Home">Google</a> does not even have a web interface so everything must be done via phone or tablet.</li>
<li>Often skills like <a href="https://automation.rmrr42.com/search/label/Harmony">Harmony</a> where with <a href="https://automation.rmrr42.com/search/label/Amazon%20Echo">Alexa</a> you would say "Alexa, turn on Netflix". With <a href="https://automation.rmrr42.com/search/label/Google%20Home">Google</a> that worked then it went to you had to say "Hey Google, Ask <a href="https://automation.rmrr42.com/search/label/Harmony">Harmony</a> to turn on Netflix." and then often tells me it did not recognize me and would not do it. Now it seems to be back to just "turn on" BUT for instance when I say "turn on Hero" (my PC's name) to Alexa is just works. I say "turn on Hero" to <a href="https://automation.rmrr42.com/search/label/Google%20Home">Google</a> it starts playing something from Pandora.</li>
<li>It appears too that at some point <a href="https://automation.rmrr42.com/search/label/Google%20Home">Google Home</a> lost some of the account links I had setup.</li>
</ul>
<br />
<br />
<ul>
<li>Lately the <a href="https://automation.rmrr42.com/search/label/Google%20Home">Googles</a> (I have a Home and 3 minis) seem to say try again in a few seconds a lot.</li>
<li>To discover new devices you say "Alexa, discover devices." You say this to <a href="https://automation.rmrr42.com/search/label/Google%20Home">Google</a> and it finds phones and asks if you want to ring them. Ask "how do I get you to discover devices", you get "I don't understand" and "I found a related how to get Alexa to discover devices"! It is also easy to do from the <a href="https://automation.rmrr42.com/search/label/Amazon%20Echo">Alexa</a> app with a swipe down. Instructions I found online say <a href="https://automation.rmrr42.com/search/label/Google%20Home">Google</a>'s Home should do that too but it appears to do nothing for me.</li>
<li><a href="https://automation.rmrr42.com/search/label/Google%20Home">Google</a> appears to allow one <a href="https://automation.rmrr42.com/search/label/Harmony">Harmony</a> hub to be connected while Alexa allows many. (I have 5 currently)</li>
<li>Adding skills to <a href="https://automation.rmrr42.com/search/label/Google%20Home">Home</a> is an egg hunt compared to <a href="https://automation.rmrr42.com/search/label/Amazon%20Echo">Alexa</a>. I just tried to add the <a href="https://automation.rmrr42.com/search/label/Wyze">Wyze</a> skill for example and I had to search on line to even figure it out. Then while trying to link the account it just exited half way through me entering my login info.</li>
<li><a href="https://automation.rmrr42.com/search/label/Wyze">Wyze</a>, <a href="https://automation.rmrr42.com/search/label/Amazon%20Echo">Alexa</a> sees all the <a href="https://securitycam101.rmrr42.com/search/label/Wyze">cams</a>, motion and contact sensors I have. <a href="https://automation.rmrr42.com/search/label/Google%20Home">Google</a> sees on the cameras and contact sensors.</li>
<li><a href="https://automation.rmrr42.com/search/label/Google%20Home">Google</a> routines still appear to be voice command triggered only while <a href="https://automation.rmrr42.com/search/label/Amazon%20Echo">Alexa</a>'s allow triggering using voice, time, some sensors (see above), location, alarms, echo button presses and "Guard state".</li>
</ul>
<h4>
Pros:</h4>
<ul>
<li>The devices list in <a href="https://automation.rmrr42.com/search/label/Google%20Home">Google</a> does seem to use the room from <a href="https://automation.rmrr42.com/search/label/Homeseer">Homeseer</a>. However I had to add each <a href="https://automation.rmrr42.com/search/label/Wyze">Wyze</a> and <a href="https://automation.rmrr42.com/search/label/Wireless%20Tag">Wireless Tag</a> device to a room during the setup process manually. </li>
</ul>
Avatar42http://www.blogger.com/profile/02989695403513365236noreply@blogger.com0tag:blogger.com,1999:blog-4206308026427876681.post-21867232365201058442019-12-04T08:26:00.001-08:002019-12-27T19:26:23.478-08:00How to get actual help in tech groupsAnother attempt at <a href="https://automation.rmrr42.com/2018/04/answer-to-im-new-what-should-i-get.html">Answer to "I'm new what camera / automation should I get?"</a><br />
<br />
I'm seeing multiple posts a day with people asking vague questions like:<br />
<br />
<ul>
<li>What is the best security camera?</li>
<li>What is the best hub?</li>
<li>What is the best security or camera system?</li>
</ul>
<br />
Most of the responses are not any better. Lots of I use this and love it or I tried this and hated it. With a vague question there can be not good reply other than asking for details. You do not see people asking what is the best vehicle or the best entertainments system? Ok maybe the second one from time to time but the reason you do not see people asking the vague question of what is the best vehicle is they have seem to get what you plan to do with it matters. A bike might work for some and odds are most will end up with some sort of car or SUV but there are many factors to take into account like:<br />
<br />
<ul>
<li>distance you plan to drive </li>
<li>number of passengers you may need to haul</li>
<li>other stuff you may haul or tow</li>
<li>any special needs equipment</li>
<li>your driving habits as in want good pickup or braking</li>
<li>how well the seating accommodates you and or your passengers</li>
<li>safety factors like armor or crash handling</li>
</ul>
<br />
Or in the case of the entertainment system a smallish 720p smart TV with a Netflix app maybe all one person wants while another may want to have a large 4K TV linked to a PC or Roku with a cable like subscription to see the show they may want plus a DVD player or Plex setup for stuff that can not be streamed. Then there is surround sound, voice search and such which some would assume to be include while others deem them frivolious.<br />
<br />
In short you need some basic specs before you can talk brands and models.<br />
<br />
For example if you are looking to add one or more security cameras, are you looking looking to just get notified or want actionable footage. I have multiple posts on just figuring out the specs you need for a camera. Starting with "<a href="https://securitycam101.rmrr42.com/2018/11/what-is-best-camera-for-x.html">What is the best camera for X?</a>"<br />
<br />
A home automation hub like an entertainment or security system is even more subjective with virtually infinite options to work with. It should be obvious that any package "system" will be a starting point at best and only makes sense is it is cheaper than getting the parts you want and can use later separately. The blog where this post is located, <a href="https://automation.rmrr42.com/">Adventures in Home Automation</a>, chronicles stuff I've tried to solve the problems I want to solve. These posts might give you ideas of what you can do to solve yours. Note however this blog only goes back to 2016 after I'd already moved to <a href="https://automation.rmrr42.com/search/label/Homeseer">Homeseer</a> so most of the posts involve it. I started with X10 stuff back in the early 1980s adding <a href="https://automation.rmrr42.com/search?q=timecommander">TimeCommander Plus</a> in the late 1990s then Insteon devices up till 2014 when keeping it all going outweighed the time savings of having it. Though I did not remove the last of it till 2016. Between 2014 when I bought my first modern home automation hub via the SmartThings Kickstarter, and moving to Homeseer I also tried 4 models of Vera hubs and 2 Lowes Iris hubs. The point being I went through a lot of them before finding that worked for me. One of the reasons I went to Homeseer was than I have 3 buildings to cover. My home, shop and barn which need their own network of devices since Z-Wave and Zigbee do not do well over distances. Note I see people claiming they can use them between buildings and even over 100 feet line of sight but I've never seen anything like that myself. I would be VERY sceptical of such claims. Going with Homeseer let me have one interface for the networks in all the buildings. Plus it is made to handle a large number devices unlike many of the popular hubs that are controlled and configured mainly via a phone app. I generally do not suggest it as a first home automation hub though because it is aimed at the market between the basic DIY hubs like Vera and SmartThings and the pro install system like Crestron and Control4. As such it tends to cost more and be a bit harder to setup than the basic DIY hubs. Though some things are actually easier to do in Homeseer than Vera or SmartThings and some things others do better. For instance Home Assistant has a <a href="https://github.com/kevinvincent/ha-wyzesense">plug in to talk directly to a Wyze sense hub</a> that has me thinking of linking a Home Assistant instance to my Homeseer. Another thing to keep in mind it each hub has its way of doing things. Somethings that are point and click with one require programming with another.<br />
<br />
So when it comes to choosing a home automation hub ask yourself:<br />
<br />
<ul>
<li>Am I looking to do automation or <a href="https://automation.rmrr42.com/2017/12/multiple-hubs-or-all-in-one.html">just remote control</a>? Automation is where things happen on their own like walking into a room and the lights come on versus you saying a command or pushing a button. You will often see both called automation and gateways like Hue and Harmony called hubs. There are even grey areas like Echo Plus which has a Zigbee interface and limited automation functionality.</li>
<li>What do you want to control and monitor? Make a spreadsheet of the hubs you are looking at and the things you want to do and fill in the cells with if it will do it and how. But do your research. "Works with" can mean anything from you plug the device in and the hub sees it to you need to build and configure a gateway system to make it work. There will be compromises not matter what you go with. For example <a href="https://docs.google.com/spreadsheets/d/1f-0zzxS2fzzaK1sIyy70E1e4DFgynclWbkwYqZnp0Fg">this is my sheet of the things I've tried</a>.</li>
<li>What skills do you have or want to have? Odds are you are going to have to learn something. Look at some examples to see what it takes to do the things with each. If programming it involved, how easy is it to learn to do. Is there a good community of supporters that can help you if you need it?</li>
<li>The whole cloud versus local debate. Avoiding the cloud is best but sometimes it is the only way or so much easier that you are willing to take the risk, at least for now.</li>
<li>Track record of company. We are just starting the shake out of companies. Look at their history and customer base.</li>
<li>How easy is it to move to another? Probably more of a device thing than hub since there really is no way to move from one brand hub to another yet. Often not even between models of a brand in some cases (SmartThings V1 to V2 for example). Buying devices supported by multiple hubs is always your best bet as is doing things like using a Hue gateway instead of pairing devices directly to the hub. Then if you need to change or replace a hub you can do so much easier.</li>
</ul>
<div>
Lastly remember most of the people posting in groups have only tried one or two things so they really can not compare much and most of the replies will be love X and hate Y. You will need to gather, filter and weigh it all into something usable. Also I would discount anyone saying they have never had a problem. Everything has problems. Especially out on the bleeding edge where a lot of automation is. There are things you can do like avoiding the Internet / cloud services to make things more reliable but even totally local will occasionally go down. Like the guy claiming his WiFi goes 300 feet to his security camera you have to wonder what his frame rate is and how many are getting dropped. Odds are he rarely looks at that camera and just does not notice how much it is missing. Till one day he needs the footage of course but then it will be too late. This analogy an installer told me sums it up perfectly. "I have to explain to my clients that if you have only ever ridden a horse and someone gives you a small compact car, you are gonna think it's awesome purely because you don't know you can get a Range Rover or a Truck for the same money."</div>
<br />
<br />
<br />
<br />Avatar42http://www.blogger.com/profile/02989695403513365236noreply@blogger.com0tag:blogger.com,1999:blog-4206308026427876681.post-56430034352349927522019-09-12T18:33:00.000-07:002019-09-12T18:33:40.478-07:00Winix AM90 Wi-Fi Air Purifier<a href="https://smile.amazon.com/gp/product/B07KQBNM7H">Winix AM90 Wi-Fi Air Purifier, 360sq ft Room Capacity, Amazon Alexa and Dash Replenishment Enabled</a><br />
<br />
I love my 2 <a href="https://smile.amazon.com/gp/product/B004VGIBZK">Winix WAC9500 Ultimate Pet True HEPA Air Cleaner with PlasmaWave Technology </a>filters. Been great for going on 5 years now. Been dry enough lately that the vent that pulls in cooler outside air at night into the computer room is pulling a fair bit of dust too. So I decided to get a third. The WAC9500 is discontinued and none of the current models use the same filters. The <a href="https://smile.amazon.com/Winix-Ultimate-PlasmaWave-Technology-Purifier/dp/B07JXLH58N">Winix HR900 Ultimate Pet True HEPA PlasmaWave Technology Air Purifier, 300 Sq. Ft, White</a> is the follow up to the 9500 but as far as I can see it does not clean the air much better than the AM90. It is even rated for a larger space. So I bought an AM90 which is $100 cheaper and is supposed to work with Alexa. It also uses the filter, <a href="https://smile.amazon.com/Winix-115115-Replacement-Filter-A/dp/B002QUZJAS">Winix 115115 Replacement Filter A for C535, 5300-2, P300, 5300, 5500</a> which I ordered once by accident for my 9500s. The filters the 9500s use, <a href="https://smile.amazon.com/gp/product/B00ESJDGE6">Winix 114190 Replacement Filter B for 9500, U300 Air Purifiers</a> are also more expensive and use a plastic cassette that each replacement comes in and so makes for more plastic waste.<br />
<br />
<h3>
Setup:</h3>
The setup via <a href="https://play.google.com/store/apps/details?id=com.winix.android.smartair.hera">the android app</a> was so bad I almost sent it back. <span style="background-color: yellow;"><b>Note the C545 model needs it own skill and app.</b></span><br />
<br />
To get it to finally finish I had to:<br />
<br />
<ul>
<li>Get the timing right to see the direct WiFi connection. (You have to connect before unit quickly times out)</li>
<li>Have the phone forget the 5Ghz WiFi</li>
<li>Let it use the default city as the location.</li>
</ul>
<br />
<br />
Took me about 5 tries to get all the way through, having to start over from scratch even after I could see it was connected to my network.<br />
<br />
Even trying to change the city later caused the app to completely hang during search. So I ended up leaving it on the default as useless as that is.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiF5jcRquN0Hl2bjvQr7y-0xzjx1TJF95aP7iK1TjwHMFvprYgrTEToe-JW_BNcLc45jmyvlVQIf5itSFJ46fHS9pC_AkUQcPgN8JcFg1A1ssqPRtAn-tlrrmL2GUaVOhCEC9h4_uWWWQI/s1600/Capture%252B_2019-09-12-18-13-39.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="850" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiF5jcRquN0Hl2bjvQr7y-0xzjx1TJF95aP7iK1TjwHMFvprYgrTEToe-JW_BNcLc45jmyvlVQIf5itSFJ46fHS9pC_AkUQcPgN8JcFg1A1ssqPRtAn-tlrrmL2GUaVOhCEC9h4_uWWWQI/s640/Capture%252B_2019-09-12-18-13-39.png" width="340" /></a>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizyptfglURCp1gyt0L8ihv-EZW3X-4ARn1vkJ3pLRnB8PbmkymQFpwgBGuv4Qpf_WuGI8JvUxLvfV0zevFY2-qR9tK077QXMgSAZA7c2e3ImGwJwowfwykAYgrezQ9iMitCDab6F8goGE/s1600/Capture%252B_2019-09-12-18-13-21.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="850" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizyptfglURCp1gyt0L8ihv-EZW3X-4ARn1vkJ3pLRnB8PbmkymQFpwgBGuv4Qpf_WuGI8JvUxLvfV0zevFY2-qR9tK077QXMgSAZA7c2e3ImGwJwowfwykAYgrezQ9iMitCDab6F8goGE/s640/Capture%252B_2019-09-12-18-13-21.png" width="340" /></a></div>
<br />
<br />
<span style="background-color: yellow;"><b>Note the Alexa name entered into the app (as in Bedroom) is what shows in lists in the app though in the web interface it shows as Bedroom Winix Air Purifier. You will probably want a longer name, though you can change in the Alexa app later.</b></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9B6h0j_oK8tdKuylmZ581ztv36n6itO6R62gTeayxTcFFcgP9nXRpIJRT1m1vfTAfOjfWXDOaPRo0piAFxsshucCv30Wlg79ElqxKa1hdmTyglewV9wOyXEesuLU10FrMW_XjoVObb6M/s1600/2019-09-12_16-29-39.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="75" data-original-width="188" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9B6h0j_oK8tdKuylmZ581ztv36n6itO6R62gTeayxTcFFcgP9nXRpIJRT1m1vfTAfOjfWXDOaPRo0piAFxsshucCv30Wlg79ElqxKa1hdmTyglewV9wOyXEesuLU10FrMW_XjoVObb6M/s1600/2019-09-12_16-29-39.jpg" /></a></div>
<br />
<h3>
Alexa integration:</h3>
For Alexa to see the instructions say you have to enable 2 skills<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAD4h_wUZy5oIEbt3P72TzBWJSLhkDMF153HilmvBRghB1uS5XX78USvnyZP9iG9RJLdtzPdhsrKaS8NfZ99GvDuv2s0620IeO9RfvDUP370RR8n9a6IPGi2dqaAdIVg_ectAlhyphenhyphenMlW9I/s1600/Capture%252B_2019-09-12-16-25-04.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="850" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAD4h_wUZy5oIEbt3P72TzBWJSLhkDMF153HilmvBRghB1uS5XX78USvnyZP9iG9RJLdtzPdhsrKaS8NfZ99GvDuv2s0620IeO9RfvDUP370RR8n9a6IPGi2dqaAdIVg_ectAlhyphenhyphenMlW9I/s640/Capture%252B_2019-09-12-16-25-04.png" width="340" /></a></div>
<br />
Since I use a password manager I find linking accounts easier in the web interface. <span style="background-color: yellow;"><b>Be sure to select Approve before clicking submit.</b></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglWksKJ2CjlKG51ha_8nt963V2KXmYx7oCXoIwkDatvrSbg6_0ZaSaF8nonb98Y2Ikky9K4_BNaZ0NTWarECzehyphenhyphenTIZ_6xNo5lkMlxavr3K49PSW73elh1cOBAfOBaSe0sb9moYIfDL6I/s1600/2019-09-12_16-28-47.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="418" data-original-width="747" height="352" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglWksKJ2CjlKG51ha_8nt963V2KXmYx7oCXoIwkDatvrSbg6_0ZaSaF8nonb98Y2Ikky9K4_BNaZ0NTWarECzehyphenhyphenTIZ_6xNo5lkMlxavr3K49PSW73elh1cOBAfOBaSe0sb9moYIfDL6I/s640/2019-09-12_16-28-47.jpg" width="640" /></a></div>
<br />
The Winix Custom Skill is the old "Ask Winix" style.<br />
<br />
The Winix Smart Home Skill is supposed to let you say "Alexa, turn on WINIX", "Alexa, increase WINIX" and "Alexa, decrease WINIX" Though this did not work for me. So I looked to create a routine to alias it. After not seeing it on the list at first ( showed as a a fan named bedroom) I decided to rename it.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNouBmQ5HUhkQ1utDnu8WOjSXlrvqUrZmHtLXxxsQuwiZEOAfwWg3Noq3ImJtr2fA698C1wejGXTU4JExOYloNtuEucQsCW-P9Gc5PoYEhZ6pexMfY2Eiq7_JZGgzYbkl2haoUF6gpxZk/s1600/Capture%252B_2019-09-12-18-12-00.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="850" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNouBmQ5HUhkQ1utDnu8WOjSXlrvqUrZmHtLXxxsQuwiZEOAfwWg3Noq3ImJtr2fA698C1wejGXTU4JExOYloNtuEucQsCW-P9Gc5PoYEhZ6pexMfY2Eiq7_JZGgzYbkl2haoUF6gpxZk/s640/Capture%252B_2019-09-12-18-12-00.png" width="340" /></a></div>
<br />
I tried triggers of "more air" and "increase air" to turn up the cleaner bey neither worked. The less intuitive "full power" did. I then made a matching "half power" routine to set it back to normal.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhl8JUY2AvP3PWP99otOEHWKqxq8jYgeY5LpiglDVjXiQ-HK6U9NfypNqzcO4o_YsNMQ24tXIpcfdIisRDafILR6Af6Own9B1B_BR1gCFhQTv9PTKpBmquU2UL2hld3HfP3JD9_Qs0wdY0/s1600/Capture%252B_2019-09-12-19-52-50.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="850" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhl8JUY2AvP3PWP99otOEHWKqxq8jYgeY5LpiglDVjXiQ-HK6U9NfypNqzcO4o_YsNMQ24tXIpcfdIisRDafILR6Af6Own9B1B_BR1gCFhQTv9PTKpBmquU2UL2hld3HfP3JD9_Qs0wdY0/s640/Capture%252B_2019-09-12-19-52-50.png" width="340" /></a></div>
<br />
Reviews complain about WiFi connectivity so I'll have to update after I've had it online for awhile.<br />
<br />Avatar42http://www.blogger.com/profile/02989695403513365236noreply@blogger.com25tag:blogger.com,1999:blog-4206308026427876681.post-89018164669711214622019-09-01T20:01:00.000-07:002019-09-01T20:01:05.640-07:00Smart bulbs revisited.In <a href="https://automation.rmrr42.com/2018/12/the-right-best-way-to-control-light.html">The right / best way to control a light</a> I discussed how switches vs smart bulbs depends on install. Here I'd like to update with some of the experiences I've have with smart bulbs since then. To summarize here are my note in my <a href="https://docs.google.com/spreadsheets/d/1f-0zzxS2fzzaK1sIyy70E1e4DFgynclWbkwYqZnp0Fg">compare sheet</a>.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBCnktT9ZSmspE7M15_XnLTvaGFoUOmRwDMu05GN3zaiJkmMLXRdOEKJj5vLtT76QHnKYKb4YDRD9O8iNf-skc8x-qXpgJ1TM9lhL289V5nZxatqc_vuGeovnl7gM_sm6stRc2L-WQRbU/s1600/2019-09-01_12-19-47.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="383" data-original-width="1600" height="150" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBCnktT9ZSmspE7M15_XnLTvaGFoUOmRwDMu05GN3zaiJkmMLXRdOEKJj5vLtT76QHnKYKb4YDRD9O8iNf-skc8x-qXpgJ1TM9lhL289V5nZxatqc_vuGeovnl7gM_sm6stRc2L-WQRbU/s640/2019-09-01_12-19-47.jpg" width="640" /></a></div>
<br />
<br />
Note you can get some crazy cheap deals on SYLVANIA / Lightify / Osram stuff right now.<br />
Like <a href="https://smile.amazon.com/gp/product/B073M6274B">this $9 bulb and gateway bundle</a> still on sale. I got a bunch to sample to eval on sale. For less than $75 I got 5 bulbs, a gateway, a motion sensor and 2 dimmers. Awesome deal except only the bulbs worked OK for me. I even bought the <a href="https://smile.amazon.com/gp/product/B01M3OK6J7">Sylvania Smart Home 74099 Sylvania LIGHTIFY Smart Switch 8 Functions/ 4 Buttons, White</a>, still only $10, which did at least seem to work controlling the bulbs but is not seen by <a href="https://automation.rmrr42.com/search/label/Homeseer">Homeseer</a> and so can't be use as a general remote. <a href="https://automation.rmrr42.com/search/label/Homeseer">Homeseer</a> did see the bulbs and motion detector did turn the lights on most of the time it should though seldom off. The dimmers worked for a bit then died. They were not seen by <a href="https://automation.rmrr42.com/search/label/Homeseer">Homeseer</a>. So all in all pretty much a waste of money and time. Too bad give a <a href="https://smile.amazon.com/Sylvania-Smart-Home-74768-SmartThings/dp/B07576J38L">4 pack of white Lightify bulbs</a> is going for as low as $16 onsale versus a <a href="https://smile.amazon.com/gp/product/B073SSK6P8">4 pack of Hues</a> which <a href="https://camelcamelcamel.com/Philips-Hue-Compatible-Assistant-Residents/product/B07DQ3RJS1">go for around $40</a>. Though I did stumble a 6 pack once $50 a couple years back. Which brings us to price.<br />
<br />
I see a lot of posts saying Hue bulbs are too expensive. I think that is mainly because people seem to compare the Hue color bulbs to white version by others. If you compare a 4-pack of white bulbs they cost about the same as <a href="https://camelcamelcamel.com/Sengled-Required-Equivalent-Assistant-SmartThings/product/B072M5RT6L">Sengled Smart LED Soft White A19 Bulb 4-pack</a>. Or <a href="https://camelcamelcamel.com/BA19-08050OMF-12CE26-1C110-Connected-Equivalent-Daylight-Dimmable/product/B01701DPDA">Cree 60W Equivalent Daylight (5000K) A19 Dimmable LED Light Bulb in the (6 Pack)</a> compared at a per bulb price. You even here people going on about the new Wyze bulbs but they are <a href="https://camelcamelcamel.com/Wyze-Adjustable-temperature-brightness-Assistant/product/B07RF9NCDP">about the same price</a> and do not work with anything other than the Wyze app.<br />
<br />
I had planned on using then instead of <a href="https://automation.rmrr42.com/2019/07/transferring-hue-v1-hub-to-v2-after-app.html">upgrading the Hue gateways after Hue basically cut V1 one users off</a>.<br />
<br />
Other than the price I'm liking the Hue motion sensors more and more. <a href="https://automation.rmrr42.com/search/label/Homeseer">Homeseer</a> does not always seem to get non motion event updates from them but otherwise it is nice to have them automatically turn the lights full on and off without need of setting up events. Especially after having to redo all my lighting related events after the <a href="https://automation.rmrr42.com/2019/07/transferring-hue-v1-hub-to-v2-after-app.html">v1 to v2 upgrade</a>.<br />
<br />
The Lifx bulbs seem like a good alternative if you want to avoid getting a hub though the <a href="https://camelcamelcamel.com/LIFX-Generation-Dimmable-Assistant-Microsoft/product/B07FKJ4LDX">white bulbs cost more</a>. And like I've said above, the one I got for eval had a lot of issues. Still the outdoor BR bulbs with IR look interesting but if you do the math, unless you want to light your yard in color, even at the <a href="https://camelcamelcamel.com/LIFX-Infrared-Dimmable-Assistant-Microsoft/product/B01KY02MVA">$50 sale price</a> you can get a <a href="https://smile.amazon.com/gp/product/B07K1T8Z74">Z-Wave switch</a>, 2 LED bulbs and a 2 <a href="https://smile.amazon.com/gp/product/B01G6K407Q">serious IR floods</a> for about the same price. And the IR floods turn themselves on and off as needed automatically. If you want smart flood light bulbs, Hue has new outdoor bulbs. <a href="https://camelcamelcamel.com/Philips-Outdoor-Hue-PAR-38-476820/product/B07D9XL641">2 for $50</a>. Still cheaper to go with <a href="https://smile.amazon.com/Philips-LED-Non-Dimmable-PAR38-25-Degree/dp/B01CAL18VQ">2 LED floods</a> and a switch though.<br />
<br />
<a href="https://camelcamelcamel.com/Kasa-Smart-Wi-Fi-Light-TP-Link/product/B06XKDYSH6">Tp-link (kasa) bulbs cost even more </a>and they require cloud access. I have a couple of their outlets I got on Prime sales for $5. The cloud link fails way too often.<br />
<br />
Even the <a href="https://www.ikea.com/us/en/search/?query=TR%C3%85DFRI+LED+bulb+E26+1000+lumen">TRÅDFRI bulbs are more now</a>.<br />
<br />
Etekcity, while I like their smart plugs for non critical stuff. Very cheap and so they have been more reliable the the TP-link ones despite being cloud based as long as you call their API directly. Going through IFTTT stopped working awhile back. I don't know if they ever fixed it because talking directly was so easy to do. But <a href="https://camelcamelcamel.com/Etekcity-Smart-Light-Dimmable-Equivalent/product/B07MVWJG3T">their bulbs are more than the Hues</a> so why?<br />
<br />
Z-wave bulbs like Aeotec LED Bulb Gen6 Multi-White are even more.<br />
<br />
There are more of course many others, some even cheaper than Hue but one of the main things to remember is what do they works with? So in the long run you will probably end up tossing them unless remote control via your is all you ever want.<br />
<br />
<br />Avatar42http://www.blogger.com/profile/02989695403513365236noreply@blogger.com1tag:blogger.com,1999:blog-4206308026427876681.post-47573039654979339922019-08-16T06:02:00.000-07:002020-07-23T11:16:16.877-07:00Homeseer on a Raspberry Pi 4I mainly got a this as a second instance so I could test <a href="https://github.com/avatar42/MyMonitor">MyMonitor</a> without risking corrupting my main instance monitoring and controlling my house, shop and barn.<br />
<br />
I started with a <a href="https://smile.amazon.com/gp/product/B07V5JTMV9">CanaKit Raspberry Pi 4 Starter Kit - 4GB RAM</a> The <a href="https://www.canakit.com/Media/CanaKit-Raspberry-Pi-Quick-Start-Guide-4.0.pdf">assembly instructions</a> are non existent though. So here is a pic with the heat sinks and fan installed.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxS5LN9a85uy8_4VSwYHclbP9ZUUCJ9FGHS-fI1MKs1VS2Bu9tKb4XLQzZfGGskef2KUvOXCBJDmnkq7kk8_HCXFkHEVmx4WF9TTw5UIeZ99_psxNChulK8w3uueLRFU9HcXdsjcyUsmE/s1600/20190815_153816.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxS5LN9a85uy8_4VSwYHclbP9ZUUCJ9FGHS-fI1MKs1VS2Bu9tKb4XLQzZfGGskef2KUvOXCBJDmnkq7kk8_HCXFkHEVmx4WF9TTw5UIeZ99_psxNChulK8w3uueLRFU9HcXdsjcyUsmE/s640/20190815_153816.jpg" width="640" /></a></div>
<br />
You might also want to get <a href="https://smile.amazon.com/gp/product/B00JDRHQ58">Cable Matters 2-Pack Micro HDMI to HDMI Adapter (HDMI to Micro HDMI Adapter) 6 Inches</a><br />
<br />
It is a bit hard to see in the picture but the red wire of the fan to pin 4 and the black to 6. See chart next to board. The main HDMI port is the one next to the USB C (connected in pic). Once all assembled you can start with the instructions.<br />
<br />
The <a href="https://homeseer.com/guides/HomeSeer-HS3Pi-Guide-rev5.pdf">HomeSeer HS3-Pi Install Guide</a> has instructions for older versions so let me add changes. The image file will not even boot in the Raspberry Pi 4 so you need to start with the option 2 instructions. So use the SD card in the kit and do the basic install of Raspbian and basic config. You probably will want to enable ssh. I also pulled info from <a href="https://forums.homeseer.com/forum/homeseer-products-services/general-discussion-area/how-to-s/1241298-correct-installation-of-hs3-standard-on-raspberry-pi-3">Correct Installation of HS3 Standard on Raspberry Pi 3</a><br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
ssh to hostname<br />
As in<br />
<b><i>ssh pi@HS3-pi4</i></b><br />
<b><i>sudo apt update</i></b><br />
<b><i>sudo apt install mono-complete</i></b><br />
<b><i>sudo apt install mono-vbnc</i></b><br />
<b><i>sudo apt install mono-xsp4</i></b><br />
<br />
After installation, make sure you update the builds. Repeat this pair of commands several times to update all of the dependencies.<br />
<b><i>sudo apt update</i></b><br />
<b><i>sudo apt upgrade</i></b><br />
<br />
Look at the install guide for the tar URL and get it with curl. For me its was<br />
<b><i>curl -O https://homeseer.com/updates3/hs3pi3_070319.tar.gz</i></b><br />
Install HomeSeer: sudo tar xvf hs3_linux_<version>.tar.gz<br />
As in<br />
<b><i>tar xvf hs3pi3_070319.tar.gz</i></b><br />
<br />
The tar script creates the <b>/home/pi/HomeSeer</b> directory.<br />
<br />
Instead of the way he did it in the post above, run (method 4 from <a href="https://www.dexterindustries.com/howto/run-a-program-on-your-raspberry-pi-at-startup/">Five Ways To Run a Program On Your Raspberry Pi At Startup</a>)<br />
<br />
Create a service config to start Homeseer on boot and stop it during shutdown. (Adapted from <a href="https://forums.homeseer.com/forum/homeseer-products-services/general-discussion-area/104400-autostart-homeseer-on-linux">Autostart Homeseer on Linux</a>)<br />
Create the file <b>/lib/systemd/system/homeseer.service</b> and put the following in it.<br />
<b><i style="background-color: #cccccc;">[Unit]</i></b><br />
<b><i style="background-color: #cccccc;">Description=Homeseer Service</i></b><br />
<b><i style="background-color: #cccccc;">ConditionPathExists=/home/pi/HomeSeer/Logs</i></b><br />
<b style="background-color: #cccccc;"><i>After=</i><i>server.service multi-user.ta</i><i>rget</i></b><br />
<b><i style="background-color: #cccccc;"><br /></i></b>
<b><i style="background-color: #cccccc;">[Service]</i></b><br />
<b><i style="background-color: #cccccc;">Type=simple</i></b><br />
<b><i style="background-color: #cccccc;">WorkingDirectory=/home/pi/HomeSeer</i></b><br />
<b><i style="background-color: #cccccc;">ExecStart=/home/pi/HomeSeer/autostart_hs</i></b><br />
<span style="background-color: #cccccc;"><b><i>Restart=always</i></b></span><br />
<b><i style="background-color: #cccccc;"><br /></i></b>
<b><i style="background-color: #cccccc;">[Install]</i></b><br />
<b><i style="background-color: #cccccc;">WantedBy=multi-user.target</i></b><br />
<br />
<b><i>sudo chmod 644 /lib/systemd/system/homeseer.service</i></b><br />
<b><i><br /></i></b>
<b><i>sudo </i></b><b>systemctl daemon-reload</b><br />
<b><i>sudo </i></b><b>systemctl enable homeseer.service</b><br />
<b><i>sudo </i></b><b>systemctl start homeseer.service</b><br />
<br />
<b><i>sudo </i></b><b>systemctl status homeseer.service</b><br />
<b><i><br /></i></b>
If no typos you should see something like this<br />
<span style="background-color: black; color: yellow;">
<b><i>root@HS3-pi4:/home/pi/HomeSeer# systemctl status homeseer.service</i></b><br />
<b><i>● homeseer.service - Homeseer Service</i></b><br />
<b><i> Loaded: loaded (/lib/systemd/system/homeseer.service; enabled; vendor preset: enabled)</i></b><br />
<b><i> Active: active (running) since Fri 2019-08-16 08:35:51 CDT; 6min ago</i></b><br />
<b><i> Main PID: 2210 (autostart_hs)</i></b><br />
<b><i> Tasks: 31 (limit: 4915)</i></b><br />
<b><i> Memory: 32.0M</i></b><br />
<b><i> CGroup: /system.slice/homeseer.service</i></b><br />
<b><i> ├─2210 /bin/sh /home/pi/HomeSeer/autostart_hs</i></b><br />
<b><i> └─2211 mono HSConsole.exe</i></b><br />
</span>
<br />
<b><i><span style="background-color: black; color: yellow;">Aug 16 08:35:51 HS3-pi4 systemd[1]: Started Homeseer Service.</span></i></b><br />
<b><i><br /></i></b>
Homeseer should now start when the system boots.<br />
<br />
If you want to do the init.d method you will need to do this to get the screen command installed<br />
<b><i>sudo apt-get install screen</i></b><br />
<br />
Open a browser and go to the hosts IP. For example mine is on 10.10.1.245 so the URL is<br />
http://10.10.1.245/<br />
The login and password were both <b>default </b>instead of <b>homeseer/hsthsths3 </b>the guide mentions.<br />
That gets us to this screen<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiI2T6WBhjl5jxCXVoWrRvkMkKpSO6SL3R5Ngf3EZte9DNUC8jBoXZcAoKHE5ilG1-lXHK1XExdU1YQnJIOXEmllPG8WW000GtMhmcP9M8KfR_50k1zqfJLaSkF526esHNu0NRAYy8jlgQ/s1600/2019-08-15_21-09-58.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="628" data-original-width="598" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiI2T6WBhjl5jxCXVoWrRvkMkKpSO6SL3R5Ngf3EZte9DNUC8jBoXZcAoKHE5ilG1-lXHK1XExdU1YQnJIOXEmllPG8WW000GtMhmcP9M8KfR_50k1zqfJLaSkF526esHNu0NRAYy8jlgQ/s640/2019-08-15_21-09-58.jpg" width="608" /></a></div>
<br />
<br />
This is where I hit an issue. check_passwd called by this screen gets a Segmentation fault.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6qyiLp1j7a5GRjrQLSSswJHM0KxxIb4KuoULA8mYzTtWQ4Eprt8_Vu8f4I7bFaviuvWfsjm1TiP5pY9FZ-LDfVdku5EoK_5l3zGtwAvobNtgQfjvy5lZ5diaFJIpttI5xse04a1Rmh4w/s1600/2019-08-15_21-27-31.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="192" data-original-width="451" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6qyiLp1j7a5GRjrQLSSswJHM0KxxIb4KuoULA8mYzTtWQ4Eprt8_Vu8f4I7bFaviuvWfsjm1TiP5pY9FZ-LDfVdku5EoK_5l3zGtwAvobNtgQfjvy5lZ5diaFJIpttI5xse04a1Rmh4w/s1600/2019-08-15_21-27-31.jpg" /></a></div>
<br />
This appears to be <a href="https://forums.homeseer.com/forum/homeseer-products-services/system-software-controllers/hs3-hs3pro-software/hs3-pro-beta-releases/84768-what-s-the-linux-tools-password/page4">a known issue</a>. On <a href="https://forums.homeseer.com/forum/homeseer-products-services/system-software-controllers/hs3-hs3pro-software/hs3-pro-beta-releases/84768-what-s-the-linux-tools-password/page4">page 4</a> I found a link to download the ARM version mentioned in the thread. <span style="background-color: yellow;">Note you have to log in to download it.</span> <span style="background-color: yellow;"><b>That was not the issue though.</b> Turns out the actual problem it looks for an linux user named homeseer with the <b>hsthsths3 </b>password. If the user is not found it gets a Segmentation fault. So adding a user with</span><br />
<b><i style="background-color: yellow;">sudo useradd -d /home/homeseer homeseer</i></b><br />
<b><i style="background-color: yellow;">sudo passwd homeseer</i></b><br />
<br />
Once that is sorted, you should now see this<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjom7625EUrdQYWngivrS73NBO0WqMFa0OwKoMch4nCDY6PR5pFHWFESpVFPElx34U0H48_9Xi3HxyQOumbrP_iOPqS4w494MYAQlOvrda-hqBa1oEesdwaO-vx1Za5v6fLu-S8qZyB8uI/s1600/2019-08-16_9-08-49.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="129" data-original-width="1008" height="80" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjom7625EUrdQYWngivrS73NBO0WqMFa0OwKoMch4nCDY6PR5pFHWFESpVFPElx34U0H48_9Xi3HxyQOumbrP_iOPqS4w494MYAQlOvrda-hqBa1oEesdwaO-vx1Za5v6fLu-S8qZyB8uI/s640/2019-08-16_9-08-49.jpg" width="640" /></a></div>
<br />
Clicking the link took me to the registration page<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtL148XkEmCMLT5642WfVJEhqphyphenhyphenfb72YBSLxsRpJkw2wVFYy9ap8m6mWWqZleqMVz6j_1iepgN6PJCPFEdnMN6F5OJk3BOrBWmcbBdS-zs_G8dyF2PsPcs73V0JV5tcXiFY7ngrdmP7A/s1600/2019-08-16_10-56-24.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="262" data-original-width="1012" height="164" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtL148XkEmCMLT5642WfVJEhqphyphenhyphenfb72YBSLxsRpJkw2wVFYy9ap8m6mWWqZleqMVz6j_1iepgN6PJCPFEdnMN6F5OJk3BOrBWmcbBdS-zs_G8dyF2PsPcs73V0JV5tcXiFY7ngrdmP7A/s640/2019-08-16_10-56-24.jpg" width="640" /></a></div>
<br />
<span style="background-color: yellow;">Note the number is your License and the other is the password.</span><br />
Next fill in the user info form<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh36H7H2B98qSqpQVZ0X06XQFDPj4153O4EbHQ9XUSRMtvMh6ZKUMSBvq5xhTaQCzPS-D0EStLFGiW0irz54C9WDf2k0MzbWh-IjWCUrs-wtbYaIeovVDhVZsG7GY159Cy6k09ynsj6BR0/s1600/2019-08-16_14-27-08.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="654" data-original-width="1005" height="412" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh36H7H2B98qSqpQVZ0X06XQFDPj4153O4EbHQ9XUSRMtvMh6ZKUMSBvq5xhTaQCzPS-D0EStLFGiW0irz54C9WDf2k0MzbWh-IjWCUrs-wtbYaIeovVDhVZsG7GY159Cy6k09ynsj6BR0/s640/2019-08-16_14-27-08.jpg" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<span style="background-color: yellow; font-family: inherit;">Note you can ignore this and start adding your devices or restoring from a previous setup if you want.</span><br />
<span style="font-family: inherit;"><br /></span>
<br />
<div class="separator" style="clear: both;">
</div>
<br />
<br />
<h3>
<span style="font-family: inherit;"><b style="background-color: yellow;">Note found another issue. </b></span></h3>
<div class="separator" style="clear: both; text-align: left;">
Lastly go to setup, check for updates and install if found.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjj_72CmRZrKEGpQ5p0UjCf4a9kSgvHcdr81IG8JHBD_LZdTwLZJI63HFbKPNJzbqsbXAlSyyZjyIQlYkMS6Ew45PR1fyesXzuIAX0tn-XtGxDEex2U_p8hOI-geoQ6yeb0XgD6gEWvygE/s1600/2019-08-16_14-33-33.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="286" data-original-width="1015" height="174" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjj_72CmRZrKEGpQ5p0UjCf4a9kSgvHcdr81IG8JHBD_LZdTwLZJI63HFbKPNJzbqsbXAlSyyZjyIQlYkMS6Ew45PR1fyesXzuIAX0tn-XtGxDEex2U_p8hOI-geoQ6yeb0XgD6gEWvygE/s640/2019-08-16_14-33-33.jpg" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<br />
<br />
<span style="font-family: inherit;">Seems when updates try and run the system goes down and you have to manually restart it. <b style="background-color: yellow;">Update: this was a issue with the After line of homeseer.service which I corrected above.</b></span><br />
<span style="font-family: inherit;"><b><i>sudo </i></b><b>systemctl start homeseer.service</b></span><br />
<span style="font-family: inherit;">Also it seems to want me to change the System password again and shows the update did not happen.</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">To help debug this I ended up changing <b>updatehs.sh</b> to this</span><br />
<span style="background-color: #cccccc;">sudo rm hslinux_zees2_3_0_0_$1.tar.gz</span><br />
<span style="background-color: #cccccc;">sudo wget -o install.log http://homeseer.com/updates3/hslinux_zees2_3_0_0_$1.tar.gz</span><br />
<span style="background-color: #cccccc;">sudo tar xavf hslinux_zees2_3_0_0_$1.tar.gz 2>&1 >> install.log</span><br />
<span style="background-color: #cccccc;">sudo chmod +x install.sh</span><br />
<span style="background-color: #cccccc;">sudo ./install.sh 2>&1 2>&1 >> install.log</span><br />
<br />
<span style="font-family: inherit;">and ran it from the command line. This time the update seemed to take. I'm thinking the issue is it starts the update before the system has fully shutdown. From the first few tries I can see it is running updatehs.sh and is extracting the tar like it should. So failing to overwrite a file in use would seem the only </span>explanation<span style="font-family: inherit;">. Status shows it appears to be calling systemd to shut it down but not to start it back up. But then when I ran from the command line Homeseer was already down. The other scripts start with a 20 second wait. So I created a reports folder</span><br />
<b><i>mkdir /home/pi/HomeSeer/html/reports</i></b><br />
<span style="font-family: inherit;">(So you can then get the latest update log at </span><a href="http://10.10.1.245/reports/install.log">http://HOST_IP/reports/install.log</a>)<br />
<span style="font-family: inherit;">and changed </span><b>updatehs.sh</b> to this<br />
<span style="background-color: #cccccc;">#!/bin/bash</span><br />
<span style="background-color: #cccccc;"><br /></span>
<span style="background-color: #cccccc;">counter=20</span><br />
<span style="background-color: #cccccc;">while [ $counter -gt 0 ]</span><br />
<span style="background-color: #cccccc;">do</span><br />
<span style="background-color: #cccccc;"> sleep 1</span><br />
<span style="background-color: #cccccc;"> counter=$(($counter - 1))</span><br />
<span style="background-color: #cccccc;">done</span><br />
<span style="background-color: #cccccc;">sudo rm hslinux_zees2_3_0_0_$1.tar.gz</span><br />
<span style="background-color: #cccccc;">sudo wget -o /home/pi/HomeSeer/html/reports/install.log http://homeseer.com/updates3/hslinux_zees2_3_0_0_$1.tar.gz</span><br />
<span style="background-color: #cccccc;">sudo tar xavf hslinux_zees2_3_0_0_$1.tar.gz 2>&1 >> /home/pi/HomeSeer/html/reports/install.log</span><br />
<span style="background-color: #cccccc;">sudo chmod +x install.sh</span><br />
<span style="background-color: #cccccc;">sudo ./install.sh 2>&1 >> /home/pi/HomeSeer/html/reports/install.log</span><br />
<span style="background-color: #cccccc;">systemctl start homeseer.service 2>&1 >> /home/pi/HomeSeer/html/reports/install.log</span><br />
<span style="background-color: #cccccc;">systemctl status homeseer.service -l 2>&1 >> /home/pi/HomeSeer/html/reports/install.log</span><br />
This seems to work OK but I can't test it form the web interface till the next update comes through.<br />
<span style="background-color: yellow;">Note the update you get says it is for the Zee.</span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDjdWcD4m_UMqzjaIG6FXG6l1vWZkEBzL_9dzf5ugA2oiktsrikRPBWsbBlVXA_ysykIpYAn-QK7FPyI88zZkqDk3xO98QeU7CcDz-rqGxwgZJH7JNpzUvinAwATQnR24KvTsf2Wdc6Uw/s1600/2019-08-17_15-03-37.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="312" data-original-width="1004" height="194" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDjdWcD4m_UMqzjaIG6FXG6l1vWZkEBzL_9dzf5ugA2oiktsrikRPBWsbBlVXA_ysykIpYAn-QK7FPyI88zZkqDk3xO98QeU7CcDz-rqGxwgZJH7JNpzUvinAwATQnR24KvTsf2Wdc6Uw/s640/2019-08-17_15-03-37.jpg" width="640" /></a></div>
<br />
To finally sort the System password issue I went and changed the homeseer password back to the default <b>hsthsths3</b> from the command line<br />
<b><i>sudo passwd homeseer</i></b><br />
Then submitted the change password form with <b>hsthsths3 </b>in the first field and my selected new password in the others.<br />
<h3>
Other info</h3>
<h4>
Speech</h4>
You will see these error in status<br />
<span style="background-color: black; color: yellow;">Aug 17 13:22:51 HS3-pi4 autostart_hs[6101]: /home/pi/HomeSeer/./speak.sh: 2: /home/pi/HomeSeer/./speak.sh: flite: not found</span><br />
I'm not using speech on mine but if you want to, you might want to start <a href="https://www.raspberrypi.org/forums/viewtopic.php?t=161762">here</a>. I tried <a href="https://learn.adafruit.com/speech-synthesis-on-the-raspberry-pi/speak-easier-flite">this which is a newer version</a> but it did not seem to work for me. Though I'm not getting any sounds from other stuff either like YouTube videos so the issue is probably the Pi4. Tried <a href="https://www.raspberrypi.org/forums/viewtopic.php?t=10960">this to fix the sounds</a> but did not help.<br />
<br />
<h4>
Samba</h4>
If you want to mount to or from a Windows PC. Good for copying over images and scripts for example. Based on <a href="https://www.raspberrypi.org/documentation/remote-access/samba.md">this post</a>.<br />
<b><i>sudo apt-get update</i></b><br />
<b><i>sudo apt-get install samba samba-common-bin smbclient cifs-utils</i></b><br />
mount my main Homeseer on 10.10.1.45 on my test instance with user dea's permissions.<br />
<b><i>sudo mkdir /HS3</i></b><br />
<b><i>sudo mount.cifs "//10.10.1.45/HomeSeer HS3" /HS3 -o user=dea</i></b><br />
copy over missing image files<br />
<b><i>cd /HS3/html/</i></b><br />
<b><i>find ./images/ -type f -print | cpio -pvmd /home/pi/HomeSeer/html</i></b><br />
Copy over missing scripts<br />
<b><i>cd /HS3</i></b><br />
<b><i>find ./scripts/ -type f -print | cpio -pvmd /home/pi/HomeSeer</i></b><br />
<br />
<br />Avatar42http://www.blogger.com/profile/02989695403513365236noreply@blogger.com5tag:blogger.com,1999:blog-4206308026427876681.post-6359796265312097112019-08-11T08:31:00.002-07:002019-08-11T08:33:23.124-07:00My first home automation system.Technically my first home automation hub was a <a href="https://www.eng.auburn.edu/~doug/x10.html">CP-290</a> clear back in 1980 but my first real hub that supported both programmed events and more than just <a href="https://en.wikipedia.org/wiki/X10_(industry_standard)">X10 </a>was the <a href="http://www.jdstechnologies.com/download/timecommander/tcmanual.pdf?fbclid=IwAR3Abrisvc8YqjPIhAaghsgeES7TkiCxGSEAbYSZUUhyIybbJ4-prn1zQy8">TimeCommander Plus</a>. In Aug of 2016 I finally took it off line and post the following to Facebook. It popped up in my memory feed today so I thought I should add it here. I never did retask it. Instead I've used <a href="https://automation.rmrr42.com/2019/05/dakota-mailbox.html">door sensors with dry contacts</a> and an <a href="http://honeywell%20vista%2020p/">alarm panel</a> linked into my Homeseer system. Links and photo caption added.<br />
<br />
Retired a bit of history the other day. This is my old <a href="http://www.jdstechnologies.com/download/timecommander/tcmanual.pdf?fbclid=IwAR3Abrisvc8YqjPIhAaghsgeES7TkiCxGSEAbYSZUUhyIybbJ4-prn1zQy8">TimeCommander Plus</a> which was my home control at the old house for a decade and was later retasked as an alarm system in the new house. I finally let it go and replaced it with several Z-wave devices when the last Windows XP PC gave out since it was going to be a major rewrite to get it going on Windows 10 or Linux. It was almost state of the art in the late 1990s when I bought it and still works. Though these days there is just too much interference from other devices for <a href="https://en.wikipedia.org/wiki/X10_(industry_standard)">X10 </a>stuff to be usable. I might still make the effort to retask this yet again seeing as how current home controllers do not seem to see the point of wired inputs and outputs. I have not found anything that has close to the 16 digital inputs, 8 analog inputs and 8 digital outputs this has.<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEja-CTr4rDpyMrehq4H0IezJfbnO2C-R2nK84c36y_cLwTBc5Pc0al0tTWqLTQFtJRDcnWsydnukYDUv_44oDZ1BwHC7nmq57LL5xwXylyH8t9g2zfWEUvqjdnoanVFH5hVPbpjCAr_Q2I/s1600/20160721_121920.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img alt="TimeCommander Plus with addons." border="0" data-original-height="1600" data-original-width="900" height="1067" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEja-CTr4rDpyMrehq4H0IezJfbnO2C-R2nK84c36y_cLwTBc5Pc0al0tTWqLTQFtJRDcnWsydnukYDUv_44oDZ1BwHC7nmq57LL5xwXylyH8t9g2zfWEUvqjdnoanVFH5hVPbpjCAr_Q2I/s640/20160721_121920.jpg" title="TimeCommander Plus with addons." width="600" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">TimeCommander Plus with addons. The relay was for a delay system to slow hold output from the rain fall monitor it was connected to long enough so polling would not miss triggers. The extra terminals made wiring up power to all the alarm sensors form a central power source easier.</td></tr>
</tbody></table>
Avatar42http://www.blogger.com/profile/02989695403513365236noreply@blogger.com0tag:blogger.com,1999:blog-4206308026427876681.post-23746068441108548472019-07-29T11:36:00.003-07:002021-02-16T14:22:44.372-08:00Installing Linux has become fun again<h3>
What happened</h3>
Been a "fun" week. The mom board in my main CentOS PC died.<br />
<br />
Based on past experience I grabbed a older PC I'd been using to test deploy options for my co-hosted servers and swapped in the drives and would it not boot. Swapped back and found it too had taken this time to die. Found a slightly better PC online and got it and matching memory rush shipped. FedEx delivered it to the local fire station instead of my house. By the time FedEx got back to me about where it was I'd already called the local Frys and had them coming with and even better, and more expensive, PC. All that to give you an idea the fun level I was at when I started trying to use the new PCs to recover from my initial server failure.<br />
<br />
<h3>
So I had 2 PCs to work with </h3>
<b>Refurbished: Acer Desktop Aspire TC TC-780-UR11 Intel Core i7 7th Gen 7700 (3.60 GHz) - 8 GB DDR4 - 1 TB HDD - Windows 10 Home</b><br />
<br />
And<br />
<b>Dell Inspiron 3670 Desktop PC with Intel Core i7 Processor - 8GB Memory - 16GB Optane Memory + 1TB HD - Windows 10</b><br />
<br />
Plus memory that should work in either.<br />
<b>Crucial 32GB (2 x 16GB) 288-Pin DDR4 SDRAM DDR4 2400 (PC4 19200) Desktop Memory Model CT2K16G4DFD824A</b><br />
<br />
Each came with an 8 GB SIMM so one would think I was set to have a 32 GB in one and 16 GB in the other.<br />
<br />
<h3>
First off I wanted to get the data backed up which was its own adventure.</h3>
<div>
<a href="https://askubuntu.com/questions/110226/how-do-you-mount-a-lvm-patition-that-has-the-same-vg-name-as-my-current-partitio">Based on these instructions</a></div>
<div>
<br /></div>
<div>
The steps boiled down to:</div>
<div>
get the volume group id with</div>
<div>
<b><i>vgdisplay</i></b></div>
<div>
In this case <b>AQjjAr-C4Lg-O3qX-Y0RN-hsme-IqFf-h4PrAC</b></div>
<div>
Since both the host system and the one I was wanting to back up were both centos I had to rename the second one to something else. I used <b>centos2</b><br />
<b><i>vgrename -v AQjjAr-C4Lg-O3qX-Y0RN-hsme-IqFf-h4PrAC centos2</i></b><br />
You will probably need to make it active<br />
<b><i>vgscan</i></b><br />
<b><i>vgchange -ay</i></b><br />
Make a mount point. I used <b>/asusl</b> (the hostname)<br />
<b><i>mkdir /asusl</i></b><br />
Mount root and home<br />
<b><i>mount /dev/centos2/root /asusl</i></b><br />
<b><i>mount /dev/centos2/home /asusl/home</i></b><br />
Backup to with something similar to this. Where <b>/Syn12/Backup</b> is my mounted back drive and <b>AsusL </b>is the folder for this host.<br />
<b><i>cd /asusl</i></b><br />
<b><i>find . -type f -print | grep -v "/dev/"| grep -v "/.cache/" | grep -v "/.minishift/" | cpio -pvmd /Syn12/Backup/AsusL/ 2>&1 | grep -v "newer" 2>&1 > /Syn12/Backup/AsusL/cpio.out</i></b><br />
<br />
<h3>
Putting it back</h3>
Now to rename it back you need to put in a system without a vg named centos. This probably means the target PC booted from a "Live" CentOS image.<br />
<br />
But this only works if that PC you are putting the drive into is an older one. Because as I found out ....</div>
<h3>
Things sure have changed</h3>
But it seems UEFI has changed a bit since the newest model Linux PC I have was made. They have added <a href="https://www.dell.com/support/article/us/en/04/sln297060/xps-13-9343-how-to-install-ubuntu-developer-edition-14-04-on-a-dell-pc-configured-for-the-unified-extensible-firmware-interface-uefi-bios?lang=en">all kinds of safe guards to the Dell BIOS</a> which block booting from anything. Add to that it seems there are also <a href="https://access.redhat.com/discussions/3522901">issues with the video chips in the Dell</a>. Then too there seems to be <a href="https://askubuntu.com/questions/146469/kernel-panic-machine-check-processor-context-corrupt-after-install">issues with SpeedStep and TurboMode</a> which the <a href="https://www.reddit.com/r/intel/comments/7h02gd/so_when_will_asus_allow_us_to_disable_intel_turbo/">the Acer does not seem to let you disable</a>. Which means the Acer probably can't be used. So I gave up on it and focused on the Dell. Oh and some have reported issues RAID / disk drivers which might be why I never got any image to boot from the DVD.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdL7Nf2K_SlHEmVt4FIdYxBrHa3LMPu9DS8sc1a26HbrTL4EmdyZdKXHBYJb5FEU3qMV7LO0Ly4FBDFwvbYVHLO3NfsmN0DGyRwmwUzEZPPMQtKQ14rPea0Q9SK29SdCBXFrYMQKWlt_4/s1600/20190722_215140.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdL7Nf2K_SlHEmVt4FIdYxBrHa3LMPu9DS8sc1a26HbrTL4EmdyZdKXHBYJb5FEU3qMV7LO0Ly4FBDFwvbYVHLO3NfsmN0DGyRwmwUzEZPPMQtKQ14rPea0Q9SK29SdCBXFrYMQKWlt_4/s640/20190722_215140.jpg" width="640" /></a></div>
I had to <a href="https://wiki.centos.org/HowTos/InstallFromUSBkey">"burn" those same images to USB sticks with Win32 Disk Imager</a> to get them to boot and run.<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjojbWTRaMF-khLDLYLvSXBKHXcMlvstOCwB-KxrMNZF-6OVPrR3LbFDcnbSO3U7iCAx6YFRA3GE6Li78TFy-VNzypRsrYS9B5cPh8pwAMyvr8ImGCuDV45ll6XzNtAlc-CyJEfTprype0/s1600/20190722_215438.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="335" data-original-width="482" height="444" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjojbWTRaMF-khLDLYLvSXBKHXcMlvstOCwB-KxrMNZF-6OVPrR3LbFDcnbSO3U7iCAx6YFRA3GE6Li78TFy-VNzypRsrYS9B5cPh8pwAMyvr8ImGCuDV45ll6XzNtAlc-CyJEfTprype0/s640/20190722_215438.jpg" width="640" /></a></div>
<br />
<br />
After trying all kinds of suggested options, I finally got it to load the install program and even install onto the drive by disabling UEFI support. But then the Dell would not boot from the HD. A bit more fiddling I got it to boot from USB with UEFI enabled (with some errors) but it could not see the HD. BIOS did see it but would not let me added it to the secure boot list. The PC will only boot from the files in this list. An entry looks like this.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeWQVbJKuNCVeDr5zNZDxNGfZ3XXryPAD6Hwx5NPHqNFiEVF5ut4cIY_ehtObwUg5zu2riey3dB_u3ddK-_2_x3CirgBDTTOdPUOnVFHhSqvYqShZGb0GnOElA8kB9xvphCTGw8JFMr8Y/s1600/20190722_211814.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeWQVbJKuNCVeDr5zNZDxNGfZ3XXryPAD6Hwx5NPHqNFiEVF5ut4cIY_ehtObwUg5zu2riey3dB_u3ddK-_2_x3CirgBDTTOdPUOnVFHhSqvYqShZGb0GnOElA8kB9xvphCTGw8JFMr8Y/s640/20190722_211814.jpg" width="640" /></a></div>
<br />
<br />
And you can't add any "legacy" internal devices to the list. The last magic bit was to turn off "RAID mode". Since there is really only room for one spinning drive in the system I'm not sure why it was on much less has any effect.<br />
<br />
<h3>
More issues</h3>
So at first I tried the HD from the spare PC to see it there might be something I was missing or some way to "repair" the actual drive. Once I sorted the above it seemed to install OK but I still had the issue it did not seem to want to let me add the HD boot file to mistake it for the one on the smaller drive. Granted I could maybe hack it by going through some more girations to clone the boot partition from the small drive onto the large drive but this many days in it seemed like good time after bad. So I decided to go for broke and reinstall on the large drive. It is backed up after all. Though I'll still need to setup apps. Not only that, but install the 32 GB of memory and the <a href="https://www.cnet.com/products/zotac-geforce-8400gs-graphics-card-gf-8400-gs-512-mb-series/">ZOTAC GeForce 8400GS graphics card - GF 8400 GS - 512 MB</a> from the old server. But the system would not even boot with the video card in there. Not sure if it is a power supply issue (which appears to only be 240 watts and proprietary) or that it is an X16 card (the specs do not say it is an x16 slot though it is the right size and <a href="https://www.dell.com/community/Inspiron-Desktops/Inspiron-3670-PSU-and-storage/td-p/6091312">some have posted that they got X16s to work</a>). So I stuck in an old GTX720 I had. (I do not plan to do any serious graphics on there anyway.) That at least booted. However the CentOS 7.6 installer could not start X on it. I did not want to install in text mode and then maybe not have the graphics drivers installed so I keep tweaking. I finally had to go into BIOS settings with the cable connected to the GTX card and set it to use the motherboard's Intel 630 as the primary and move the cable while it rebooted. Once installed though X does appear to use the GTX OK once I set the primary video back to auto. So probably yet another driver issue.<br />
<br />
<h3>
Below are the settings I ended up with.</h3>
<div>
<span style="background-color: yellow;"><b>Note some of these need to be changed one at a time and in order. For instance you can not disable legacy ROMS till legacy boot has been disabled and options saved. Alert will pop up if you try telling you where the conflict is.</b></span></div>
<div>
<br /></div>
<div>
SpeedStep disabled</div>
<div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2gJuI19hP196RWnvOC_9CfFw_Tx6WwgWx-hp9IIsO7-2hKyC7aUOXqBRAhs55SXXRIq1k4pwCkC8JqlByvEAl_cVoN0kPrKGMJNLVBKnk5Mu67RuAcWKPBJb7fLBytx161wbDqLWPK90/s1600/20190722_212135.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2gJuI19hP196RWnvOC_9CfFw_Tx6WwgWx-hp9IIsO7-2hKyC7aUOXqBRAhs55SXXRIq1k4pwCkC8JqlByvEAl_cVoN0kPrKGMJNLVBKnk5Mu67RuAcWKPBJb7fLBytx161wbDqLWPK90/s640/20190722_212135.jpg" width="640" /></a></div>
<br />
Secure boot enabled<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjc-MO79pRGqxrhoCEuIiMT0xmmxXC61qehyphenhyphenBAPXb4PMMndJtkD7uMnGEOzhAZdWSHjtCtBlclwMS61YliEvYSjLYhOQNPFthN5c2ceIVoR2j_NO-WqZl4zQ4n_1yUeQdjQotNLeDQBOtM/s1600/20190722_211956.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjc-MO79pRGqxrhoCEuIiMT0xmmxXC61qehyphenhyphenBAPXb4PMMndJtkD7uMnGEOzhAZdWSHjtCtBlclwMS61YliEvYSjLYhOQNPFthN5c2ceIVoR2j_NO-WqZl4zQ4n_1yUeQdjQotNLeDQBOtM/s640/20190722_211956.jpg" width="640" /></a></div>
<br />
PTT off (unselected)<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizJKT-S64d9XsxhbKAbZUeQLaITbfFftq2SONkUikMm2itNQ3FVRiSIkkfGxtrbxGeEbmTIVVos6G07XyVW4NcmnzP9pFAleffjHlURO6LYMK9GyhNT5Haq_cOZdKtyGRZx98R4n9Rnjo/s1600/20190722_211916.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizJKT-S64d9XsxhbKAbZUeQLaITbfFftq2SONkUikMm2itNQ3FVRiSIkkfGxtrbxGeEbmTIVVos6G07XyVW4NcmnzP9pFAleffjHlURO6LYMK9GyhNT5Haq_cOZdKtyGRZx98R4n9Rnjo/s640/20190722_211916.jpg" width="640" /></a></div>
<br />
Disable legacy stuff<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYeZRbwHtgnB8j7hfHphxqRvoLp8pxMO8W8Ywa00iaP9_mQ4icoEJryI5TDC0UkZduqAneGGHzRni7DX2LARhNBfBOTOct6earJiSdbbMzZxaOejurMTf0mAOwBv8l_fd59-Y4Yk4sbNU/s1600/20190722_211841_HDR.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYeZRbwHtgnB8j7hfHphxqRvoLp8pxMO8W8Ywa00iaP9_mQ4icoEJryI5TDC0UkZduqAneGGHzRni7DX2LARhNBfBOTOct6earJiSdbbMzZxaOejurMTf0mAOwBv8l_fd59-Y4Yk4sbNU/s640/20190722_211841_HDR.jpg" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmftOYeWEBQgk_Iip8hG0Dp9jhAZ_T901Hdg6SO-nLjjTh0levfTDhYlUjwM9rHNR1QdXZGncE1bpKcbhOhTlBruGJMra6P-SEnAdQb9oGf9Rc6JoxGzPxkz6ZGym2sBzH_BTPXK0o3YU/s1600/20190722_211755.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmftOYeWEBQgk_Iip8hG0Dp9jhAZ_T901Hdg6SO-nLjjTh0levfTDhYlUjwM9rHNR1QdXZGncE1bpKcbhOhTlBruGJMra6P-SEnAdQb9oGf9Rc6JoxGzPxkz6ZGym2sBzH_BTPXK0o3YU/s640/20190722_211755.jpg" width="640" /></a></div>
<br />
<br /></div>
<h3>
Now to reinstall the other stuff that was on there:</h3>
<h4>
<a href="https://automation.rmrr42.com/2018/05/ups-monitoring.html">apcupsd</a></h4>
<h4>
<a href="https://hostadvice.com/how-to/how-to-install-lamp-stack-on-centos-7/">Install basic LAMP stack</a></h4>
<div>
Note I found I also needed to open the ports after this to get to the web server from another PC. Commands for this are:</div>
<div>
<div>
<b><i>firewall-cmd --zone=public --add-port=80/tcp --permanent</i></b></div>
<div>
<b><i>firewall-cmd --zone=public --add-port=443/tcp --permanent</i></b></div>
<div>
<b><i>firewall-cmd --reload</i></b></div>
</div>
<h4>
<a href="https://doxfer.webmin.com/Webmin/Installation">Webadmin</a></h4>
<div>
installed modules userAdmin, samba, apache, mysql, exports-nfs4, fetchmail, firewalld, </div>
<div>
<br /></div>
<div>
<h4>
<a href="https://www.thegeekdiary.com/centos-rhel-how-to-configure-ntp-server-and-client/">NTP server</a> </h4>
<h4>
<span style="font-weight: normal;">to keep time check requests local and synced to same source.</span></h4>
<h4>
<a href="http://www.weewx.com/docs/redhat.htm">Weewx</a> </h4>
</div>
Followed the instructions and copied over my old web pages and data which seemed to have broken httpd. Tried to repair by installing packages as httpd said they were missing:<br />
<b><i>sudo yum install mod_session -y</i></b><br />
<b><i>sudo </i></b><b><i>yum install mod_form</i></b><b><i> -y</i></b><br />
<b><i>sudo yum install mod_auth_gssapi -y</i></b><br />
<b><i>sudo yum install mod_auth_kerb -y</i></b><br />
<b><i>sudo yum install mod_nss -y</i></b><br />
<b><i>sudo yum install python-pip mod_wsgi -y</i></b><br />
<br />
<a href="https://www.linode.com/docs/security/ssl/create-a-self-signed-tls-certificate/">Create and install a self signed cert</a><br />
Commented out iRedMail, RoundCube and AwsStats stuff and got http up again. This time with TLS support.<br />
<br />
Then removed Weewx and started with fresh install because something was still missing. It appeared part of the app was looking for Python 2 stuff and other bit Python 3. Did a manual reconfig and was up and running.<br />
<span style="background-color: yellow;">Note when you run </span><br />
<i style="background-color: yellow;"><b>sudo wee_config --reconfigure</b></i><br />
<span style="background-color: yellow;">be careful. The backspace key gets recorded and shows on the web pages as an unknown character.</span><br />
<br />
Looked at the instructions on migrating my DB and template customizations from the old version I was on to the current one looked like a week's worth of work. Did not think it would have changed that much.<br />
<br />
Using the WeeWX Customization Guide I added add the soil moisture station though it is on its last legs. To do that I needed to edit my <b>/etc/weewx/skins/Seasons/skin.conf </b> and <b>/etc/weewx/skins/Seasons/index.html.tmpl</b>. Seasons it the default template now.<div><br /></div><div><b><span style="background-color: #fcff01; color: #444444;">NOTE if the clock is even 1 ms slower than the console WeeWx may ignore data. Though this is usually only an issue on Raspberry Pis.</span></b><br />
<br />
Might wait on the rest of this too. I was about to try <a href="https://shinobi.video/">Shinobi's NVR</a> on that system before it cratered. Got a few things ahead of that in the queue now.<br />
<h4>
<a href="https://docs.iredmail.org/install.iredmail.on.rhel.html">Install iRedMail</a></h4>
<h4>
<a href="https://docs.iredmail.org/install.iredmail.on.rhel.html"><br /></a>RoundCube mail</h4>
<h4>
<br />Install AwsStats </h4>
<div>
<br /></div><h2 style="text-align: left;">More Gotchas</h2><h3 style="text-align: left;">Not enough space for "grub2 to embed core.img"</h3><div>I found all kinds of bad advice for this one. Mainly saying core.img needs to be light behind the boot record. I was getting this trying to setup a second drive. The issue was Windows 10 (installed on first drive) had marked the second drive GPT. Going into Windows and switching it to MBR sorted it.</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_qUaYc9N_ULN9RB0e_z6quLAspa-wTe2XOhJMUc8ifhupLd-rQ-pY_kFUQOiyPEbQeQNCT3NPPoyh2MJWYg-Gg8z4BCW9UHcQkrDOdScfNQaZKqvlRmnsCZCjIuREiNvN4jPKsaTqnIQ/s986/2020-12-17_11-03-13.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="708" data-original-width="986" height="460" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_qUaYc9N_ULN9RB0e_z6quLAspa-wTe2XOhJMUc8ifhupLd-rQ-pY_kFUQOiyPEbQeQNCT3NPPoyh2MJWYg-Gg8z4BCW9UHcQkrDOdScfNQaZKqvlRmnsCZCjIuREiNvN4jPKsaTqnIQ/w640-h460/2020-12-17_11-03-13.png" width="640" /></a></div><br /><div><br /></div><h3 style="text-align: left;">Can't boot from CentOS USB newer Asus motherboard.</h3><div>When installing on a new custom build with an Asus motherboard I found the above Dell hoops were different on the Asus. Easier but diff. For the Asus you need to go into the BIOS settings and set the partition USB partition to boot from. In my case it seemed I needed to use the one (of three) that did NOT have UEFI in the description. </div><div><br /></div><div>Here are some <a href="https://forums.unraid.net/topic/85369-boot-from-usb-om-asus-tuf-gaming-plus-mb/" target="_blank">screenshots of the Asus interface</a>. </div><div><br /></div>
<h3 style="text-align: left;">CentOS 8 losing support</h3><div>
For the new build I was going to put on CentOS 8 on it but in an odd turn of events <a href="https://www.phoronix.com/scan.php?page=news_item&px=CentOS-8-Ending-For-Stream" target="_blank">Red Hat is dropping support for CentOS 8 but continuing support for CentOS 7</a>.<br />
<br /></div></div>Avatar42http://www.blogger.com/profile/02989695403513365236noreply@blogger.com0tag:blogger.com,1999:blog-4206308026427876681.post-83298577086890091902019-07-27T18:11:00.002-07:002019-08-26T12:02:33.298-07:00Transferring Hue v1 hub to v2 after the app split.<span style="background-color: yellow;"><b>Note I'm using hub here though it is better described as a bridge or gateway. Since it is most often called a hub I'm using that here.</b></span><br />
<br />
Wish I'd got more screen grabs but the app seemed so touchy I did not want to risk trying so I just snap pics with my other phone (on 3rd try while standing on a ladder in the dimly lit barn).<br />
<br />
So first you had to reconnect all your v1 hubs to the new v1 only app after they stripped support for them from the main app. If like me, you interface with your Hues via third parties like Homeseer, Harmony, Alexa, Google Home ect. you might have not even noticed till you, again like me, went to add something. The <a href="https://huehomelighting.com/how-to-transfer-new-philips-hue-bridge/">instructions on line</a> and <a href="https://www.youtube.com/watch?v=TCCHR8UBd3c">this video</a> look straight forward but also out of date since each app only sees a version of hub. You will notice the comments on that video mention the transfer option is gone now and not solutions have been posted. (I'll add a link to this post).<br />
<br />
<h2>
So here is what worked for me.</h2>
<div>
After doing all this below for the first hub I discovered it only works if you have multiple v1 hubs! I'd already connected 2 of my v1s because I changed my mind about which I was going to do first. Fortunately I have 3 v1 hubs so no biggie. If you only have one to transfer you might want to <a href="https://www.google.com/shopping/product/17044530326822964622?q=hue+hub+v1">pick up a used one for the transfer</a>. They are going for about $30 as I write this. Alternatively you could move each device one at a time. All depends on the number of devices you have and what your time is worth to you.<br />
<br />
<h3>
<span style="background-color: yellow;">Update you might not need a second v1 hub!</span></h3>
</div>
<div>
<span style="background-color: yellow;">While transfering my 3rd Hue v1 to v2 I still got the transfer message when readding the v1 to the v1 app even though at the time it did not see the "spare v1 hub". So you might want to try the below without a second v1 hub first if you would need to buy one.</span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcQ8S1QiVuUAnjACZQ6z1peIFwoI1m7-bHkGc1T_GzXUBNmSQOicWc17fzGmZZvQPRJpZ2DhHyiw4rd_6Mx6iZiuFGdmXThEoCNPU0uSp2Q7Txe1XqZ-EOTYV5bJ4s10DPXEOIuXwDog4/s1600/20190728_180537.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1200" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcQ8S1QiVuUAnjACZQ6z1peIFwoI1m7-bHkGc1T_GzXUBNmSQOicWc17fzGmZZvQPRJpZ2DhHyiw4rd_6Mx6iZiuFGdmXThEoCNPU0uSp2Q7Txe1XqZ-EOTYV5bJ4s10DPXEOIuXwDog4/s640/20190728_180537.jpg" width="480" /></a></div>
<span style="background-color: yellow;"><br /></span></div>
<h3>
Before you start</h3>
If you have third party logic (could be calls routines,events, scenes actions ect.) using the devices on you Hue v1 hub(s) make sure you note where they are used. You might need this later on as some apps will delete the references to this objects in the logic. For example this was just one of mine.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjg2CzT5bDjrvj3KESHdBbz9SmjZ3tfrEbJbWYff0_5OFpz7kiD0-I9SJMfwHgJjPM-2md0EkRJS6Wrb-ZE7GxjXcgFjS6B93WZg74b3NugGm07GRlWV7sGsbedbjOvRi0sZ5Jd85mrdPw/s1600/2019-07-27_19-15-38.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="901" data-original-width="1001" height="572" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjg2CzT5bDjrvj3KESHdBbz9SmjZ3tfrEbJbWYff0_5OFpz7kiD0-I9SJMfwHgJjPM-2md0EkRJS6Wrb-ZE7GxjXcgFjS6B93WZg74b3NugGm07GRlWV7sGsbedbjOvRi0sZ5Jd85mrdPw/s640/2019-07-27_19-15-38.jpg" width="640" /></a></div>
<br />
You might want to make a note of the IP addresses of your hubs too in case you need them.<br />
<h3>
Making the transfer</h3>
Make sure you have both the Hue v1 and v2 apps on your phone.<br />
Take your phone, a small paper clip or pin and the new v2 hub to where the v1 hub you want to transfer is as you will need to press the buttons on the hubs.<br />
Connect your phone to the same network the hubs will be on.<br />
If needed add at least 2 v1 hubs to the v1 only app.<br />
<span style="background-color: yellow;"><b>Do NOT add the v2 to the v2 app yet.</b></span><br />
Put the v2 hub on the same network<br />
Do another search for new hubs in the v1 app.<br />
It will say it found a v2 hub and give you an option to download the v2 app.<br />
Ignore that and you should see a transfer option even though the v2 hub does not show.<br />
Note you may need to <a href="https://www.the-ambient.com/how-to/reset-philips-hue-1565">reset the v2 hub</a>. If so instructions should pop up to show you show but the leave out you need to hold the rest till the lights blink. Any lights devices linked to this hub will be disconnected.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0jFkmpZn_EqzK-ZZtV3FF-DJaC7EClMIdqgeWwEWMX1247hIZdFEk2n_5-4c1G8i09QTcq9U9W5eyBF3GQttoEI6tdAS1sel47UaDSESt1_Xcuo_CTT9jbXh7Pc_6t3H8f3yN-ybrUVI/s1600/20190727_202155_HDR.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1200" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0jFkmpZn_EqzK-ZZtV3FF-DJaC7EClMIdqgeWwEWMX1247hIZdFEk2n_5-4c1G8i09QTcq9U9W5eyBF3GQttoEI6tdAS1sel47UaDSESt1_Xcuo_CTT9jbXh7Pc_6t3H8f3yN-ybrUVI/s640/20190727_202155_HDR.jpg" width="480" /></a></div>
<br />
Next it wants you to reset the v1 hub.<br />
Then you are done<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7PaAa0-6zBmyq2GmcwuvUcI7J1JaNs5t1e9219dQkBENswoFz0rCEZbdRG-qvP8jsnadVJ9SbkSoTSDujsI8s6KF-l4drV_dNdXa7gxCfT1CnTtEKC5XMF3eOCnI_igmh0ZvXOCFp2LA/s1600/20190728_185036_HDR.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1200" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7PaAa0-6zBmyq2GmcwuvUcI7J1JaNs5t1e9219dQkBENswoFz0rCEZbdRG-qvP8jsnadVJ9SbkSoTSDujsI8s6KF-l4drV_dNdXa7gxCfT1CnTtEKC5XMF3eOCnI_igmh0ZvXOCFp2LA/s640/20190728_185036_HDR.jpg" width="480" /></a></div>
<br />
<h3>
Clean up</h3>
After the transfer is complete add the hub to the new Hue app.<br />
If you had devices linked to the v2 hub you will now want to readd them. Search probably will not find them so you will probably want to use the <a href="https://huetips.com/help/bulb-connectivity/">serial number</a>.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzFq4SGlJeXScbMVHkaxagL3H7N7SkJd-kiKebE40GTWP64LqkLo_BpdyjMkyhQgMfpoj913DVl-DMjl2vFGLUzoF1jt-i0EHeDJN8CUFiYVNppufALOQ7WEWmJG5bONuTllNz053Yk7g/s1600/Capture%252B_2019-07-29-12-19-31.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="850" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzFq4SGlJeXScbMVHkaxagL3H7N7SkJd-kiKebE40GTWP64LqkLo_BpdyjMkyhQgMfpoj913DVl-DMjl2vFGLUzoF1jt-i0EHeDJN8CUFiYVNppufALOQ7WEWmJG5bONuTllNz053Yk7g/s640/Capture%252B_2019-07-29-12-19-31.png" width="340" /></a></div>
I later found <a href="https://forums.homeseer.com/forum/lighting-primary-technology-plug-ins/lighting-primary-technology-discussion/jowihue-w-vuyk/1277362-bridge-not-finding-lights">this post describing how you can use a Hue dimmer to reset the bulb so you can scan for it</a>.<br />
<br />
You will probably need to add the new v2 hub to all the third party interfaces. Remember this means you will need to again press the button on the Hue hub and have access to the interface you are linking too.<br />
<br />
Adding the new hub to third party interfaces will probably create all new device instances in those apps which will need to swapped into any logic using those devices. In my case this was more of an issue with Alexa than Homeseer.<br />
<br />
<h3>
Update 8/26/2019:</h3>
For added fun Hue pushed out an update that broke Homeseer (and probably other) integration. The developer of the Homeseer JowiHue plugin has scrambled to deal with the change being released early. Note the 2.0.4.6 beta plugin to get things working again seems to dup all your groups and the bulbs now only seem to turn on but not off so you will need to waste time cleaning up and redoing any JowiHue device events. <a href="https://forums.homeseer.com/forum/lighting-primary-technology-plug-ins/lighting-primary-technology-discussion/jowihue-w-vuyk?s=5b618a225f4176806b71fea74d8a334b&f=1227">See the support forum for details</a>.<br />
<br />Avatar42http://www.blogger.com/profile/02989695403513365236noreply@blogger.com1tag:blogger.com,1999:blog-4206308026427876681.post-29877300703235438062019-07-13T10:44:00.001-07:002019-07-13T10:44:51.176-07:00If you think your device is spying on you, then you are missing the point.Why does this keep coming up? No one buying a <a href="https://smile.amazon.com/Wyze-Indoor-Wireless-Camera-Vision/dp/B076H3SRXG">$25 cam</a> or <a href="https://smile.amazon.com/All-new-Echo-Dot-3rd-Gen/dp/B0792KTHKJ">< $50 voice assistant </a>is a hot ad target. Much less a blackmail target. Just think about it for a second and it is obvious. It all comes down to ROI. Processing audio much less video to the point of getting data points out of it is costly. Note devices are getting more powerful all the time. <a href="https://9to5google.com/2019/07/09/google-home-faster-smart-commands/">Processing is moving from the cloud to the device</a>. So not long from now it might be cost effective to pull ad data from every word heard by a speaker but right now it is not. Note too even with local recog the assistant needs a wake word / phrase to know it is being talked to to pull that voice from the stream of other voices (like a TV or radio) surrounding it.<br />
<br />
Streaming audio, <a href="https://www.bandwidthplace.com/netflix-streaming-bandwidth-use-a-speed-test-to-optimize-article/">much less video</a>, 24/7 is going to get noticed. Lots of people have looked at the traffic on these devices and found nothing unexpected. Note <a href="https://forums.wyzecam.com/t/this-is-not-secure/24412/4">Wyze used to use servers in China but people complained about it right away and they switched to US servers</a>. But in the posts I mainly see it is "someone told me that it was doing X." Or some sort of vague thing like I talked about this thing and then saw an ad for it. Usually something not all that unusual for them to see an ad for.<br />
<br />
However IF the makers of these devices were going to do something malicious the odds are MUCH more likely they would be <a href="https://technode.com/2019/07/08/china-is-the-worlds-largest-source-of-ddos-attacks-but-its-share-is-falling/">used as bots for attacking REAL targets</a>. <a href="https://www.nytimes.com/2019/07/07/us/florida-ransom-hack.html">As in companies and agencies</a>. Either for extortion or brute forcing access. An even greater worry ought to be that these <a href="https://www.iotforall.com/5-worst-iot-hacking-vulnerabilities/">cheap devices probably are not that secure and might be pulled into a third parties botnet</a>. Either way unless it is activated you would not expect to see any significant traffic. Note though, while you might be a "real" target, there are lots of script kiddies out there that might just use you to learn on and or try stuff out before going after a real target. They hit my websites and bang against my home firewall all the time. And since they do not know what they are doing they can REALLY screw things up if they get access.<br />
<br />
That said if you give a damn about your data security you ought to have decent network gear that lets you monitor traffic and put your IoT on a network isolated from data you care about. Allow no inbound traffic and on the IoT network only allow outbound traffic as need. As a rule cameras should talk to nothing outside your network other than any cloud storage they might be linked to. On your data network you should be using a DNS that at minimum filters known bad actors. That is just life in the 21st century. Like door locks in the 20th.<br />
<br />
Or just hope for the best and not worry about it. There is NO point in worrying about something without doing something about it much less doing any research. After all I hear some people still happily leave their doors unlocked.Avatar42http://www.blogger.com/profile/02989695403513365236noreply@blogger.com0tag:blogger.com,1999:blog-4206308026427876681.post-26398667935710159422019-06-28T17:26:00.001-07:002019-06-28T17:26:30.066-07:00Alexa vs Google revisited.As so many of these this started as a reply to a question on a Facebook group. In this case what is up the Google Assistant and <a href="https://automation.rmrr42.com/search/label/Homeseer">Homeseer</a>? After a rather lengthy response I thought I should flesh it out even more an post it here. I'm just comparing my experience living with them nt side by side features. In my opinion both Amazon and Google are trying to push hard into siloed home automation which is just wrong. <a href="https://automation.rmrr42.com/2017/12/multiple-hubs-or-all-in-one.html">Interoperability is the future and local control is a must.</a> <a href="https://techcrunch.com/2019/03/12/googles-new-voice-recognition-system-works-instantly-and-offline-if-you-have-a-pixel/">Expect to see local (cloud independent) voice assistants REAL soon.</a><br />
<br />
I find I'm using <a href="https://automation.rmrr42.com/search/label/Google%20Home">Google Home</a> less and less. Mainly I use Home when <a href="https://automation.rmrr42.com/search/label/Amazon%20Echo">Alexa </a>is one of her moods (had another badly weighted update pushed) but things seem to have peaked with <a href="https://automation.rmrr42.com/search/label/Google%20Home">Google Home</a>.<br />
For an example it used to be "tell Harmony to turn on TiVo."<br />
Then is was just "turn on TiVo"<br />
But then "Turn on TiVo" got you "Do you want to use Harmony for that?" "Yes". In diff voice "Turning on TiVo".<br />
Then "Turn on TiVo" got you "Do you want to use Harmony for that?" "Yes." "I don't recognize your voice."<br />
Now back to "Tell Harmony to turn on TiVo." and half the time it says it does not recognize my voice. Which is even more irksome considering how often it responds to someone on the TV or a podcast just saying Google without even the hey. Not to mention all the times I'm not sure what triggered it.<br />
<br />
Sorry but having to remember which thing this week to ask to turn something on or off on top of the name for the thing I had to give it so it did not sounds like something else, is just is not going to get you market share. Especially if it keeps telling me it will not do stuff cause it does not recognize my voice. Granted maybe if I spent more time tweaking it I could improve it a bit but that kind of misses the point of it and I've not had to mess with <a href="https://automation.rmrr42.com/search/label/Amazon%20Echo">Alexa </a>other than adding devices and alias TV to TiVo after one especially bad update. Though I have to admit recently I added my "Good morning" "routine" so instead of just telling Homeseer to put the house in day mode it also tells me some fun fact and the weather.<br />
<br />
I should note too Google is more likely to false trigger and to just not respond than <a href="https://automation.rmrr42.com/search/label/Amazon%20Echo">Alexa </a>if it does not know what to do. So it might be having trouble listening when you think it is down. Though <a href="https://automation.rmrr42.com/search/label/Amazon%20Echo">Alexa </a>is getting more like Home in that respect. I keep the notification sounds on so I know when they think they heard something but ignored it. Which is why I just do not get people that complain about <a href="https://automation.rmrr42.com/search/label/Amazon%20Echo">Alexa </a>saying OK. But then I work in IT so I kind of expect a certain amount of errors. Like saying "thank you" to end a follow on sequence it just makes sense from a programmer's mindset.<br />
<br />
Anyway contrast the above with <a href="https://automation.rmrr42.com/search/label/Amazon%20Echo">Alexa </a>will generally get a voice command at least by the third try if I have not triggered it some other way before that. Some responses just make you go huh? Like the other yesterday when I said "<a href="https://automation.rmrr42.com/search/label/Amazon%20Echo">Alexa </a>, turn on video", a command to switch my main video stream from the triggered security cams back to what I was watching and unpause. Her response, "I can not find a device named lamp." Then too I started putting <a href="https://automation.rmrr42.com/search/label/Echo%20Buttons">Echo buttons</a> about as backups / quicker response for things like sending OK / Select to the device currently playing video or signalling the house to go into away mode. They light up green instead of saying OK so you know the command got through. Used to have an Echo button for TiVo skip too before they made that automatic. Planning on getting some more Prime day. Note you can only pair 4 to an <a href="https://automation.rmrr42.com/search/label/Amazon%20Echo">Alexa </a>and they are only reliable to around 20 feet though a wall. At 2 for $14 (on sale price) hard to beat for when you just need an easy to hit button. Like advancing to the next show while washing dishes with the volume up. Both seem able to pick your voice out of impressive levels of room noise but you can only expect so much.<br />
<br />
Note too<a href="https://automation.rmrr42.com/2019/05/might-be-time-to-give-up-on-ifttt.html"> IFTTT has been having a ton of issues with Homeseer, among others, lately.</a> So I wonder sometimes which end it is truly on. Or if maybe something in the middle is the iffy bit. Which why you always have back methods for every trigger no matter the interface. Even the local ones.Avatar42http://www.blogger.com/profile/02989695403513365236noreply@blogger.com0tag:blogger.com,1999:blog-4206308026427876681.post-35498037464885124302019-06-13T06:26:00.001-07:002019-06-13T10:23:58.328-07:00Answer to what can I do with X?Another post I'm seeing a lot lately, especially with Wyze adding sensors and bulbs to their line up, is what can I do with X? This of course is backward thinking, trying to find a problem for a solution. You don't hear about a great plastic surgeon and then start asking people what you ought to get fixed. You go looking for a plastic surgeon when you think surgery is the fix for a problem you have. In the same way you dive into home automation to make some aspect of your life easier that is troubling you. Odds are you are not going to be happy with the outcome of finding a problem for your solution. But you a good solution to a problem is always a joy.<br />
<br />
So the first thing you want to do is come up with a list of things you would like to fix / make easier in your life. Don't worry about if there is something out there to do it or how hard you think it might be. That comes later. Also go overboard here. You will probably find automation is out there is more capable than you thought. For example you might be thinking you would like to be able to turn lights on and off with your voice but wouldn't really like those lights to turn of when you enter and off when you leave all own their own and only use voice control as a backup? The cost difference between remote / voice control and automation is not that much when you are talking more than a couple things.<br />
<br />
Prioritize that list.<br />
<br />
Next do some research to find what options you have to automate each of those options. Be sure to note costs and needed skills for each option. (Some options might require coding or even hardware modification though most probably will not.) Also lean toward local control, works without talking to a cloud service, where possible.<br />
<br />
Now see which hubs and devices (that work together) solved the most problems for YOU in the easiest way. There will probably be compromises to be made at this point. Note you want to lean toward devices that work with the most hubs so you are less likely to need to replace them later when you upgrade. And yes you will need to upgrade or abandon your setup at some point. That is just the state of the world. See <a href="https://automation.rmrr42.com/2019/05/is-cloud-over.html">Is the cloud over?</a> for just some of the examples of services and devices that have gone away recently. Also drives home why you want to avoid cloud services for your logic whenever possible since there have been many more outages than shutdowns.<br />
<br />
Lastly make a plan how start and grow. Odds are you will need a logic hub (as in SmartThings, Wink, Vera, Hubitat or Homeseer not gateway hubs like Hue. Lightify or Google Home) to start even if you plan to start with just remote / voice control unless you are OK with starting over later. Depending on the logic hub you start with this might be a significant outlay in money and or time. So go for the highest priority problem on your list you think you can tackle. Note however you might want to start with an easier one if that top one requires you to learn new skills or depends on equipment needed for other solutions as well. You want to avoid having to recode, repair or replace if possible. For example if controlling lights if top priority you might want to start with a Hue gateway and bulbs and a basic voice assistant. Then you could add all the Hue devices to a logic hub without having to repair all the devices directly as you would have had to do if you bought one of the voice assistants with a built in gateway. If you had gone with "works with" bulbs or switches you would probably need to replace them when you upgrade to logic hub.Avatar42http://www.blogger.com/profile/02989695403513365236noreply@blogger.com0