Comments (78)
Thanks for taking your time to fix the migration and for a great software.
The documentation for installing Airiana are confusing:
-Update the latlong.json file with your position to enable the forcast for your position.
I says the user must update latlong.json file, but I do not find the file.
-edit the ip-config file.
I think it should be renamed to ipconfig file in the Airiana folder.
from airiana.
Hi, actually I was unaware, thought I had recovered from strange path handling backwards compat issues when removing the use of pathlib, I was misstaken, A fix is up now which runs on my unit, give it a spin. =) commit: c127b35
from airiana.
Hi, good to see we're making some progress. It looks like there is some kind of communications issue with the IAM, I found a bug where a zero len string response is considered as a passing communication test that is now fixed as of commit 24d3d32. Can you verify that the IAM module can accept connections and is responding? A note on using the log files; they are not executable use "cat RAM/err"
and "cat RAM/error_rate
" to see content.
I added a simple RTU/TCP test to request.py to simplify testing, sudo ./request.py
now give a printout of the initial setup and subsequent selftest of communication to indicate if it is to use the savecair address space or the old legacy one. You can use it to test communication with your unit. commit c5ba153
note that if you manually change the name of the directory you will need to remove the systemd files and update all static paths; run the install script again with the clean argument sudo python3 install.py clean
to reset some static paths and replace the systemd files (its in my backlog to make all paths relative).
Regarding control, you will be able to control the unit from your LAN it is only WAN access that is limited, it can be done but needs some port fwd magic other than just exposing port 80.
from airiana.
Nice, progress, I can recomend using the mqtt option to integrate with homeAssistant, gives out more entities.
however, it seems the it does not set new fanspeed values, I’ll see if I can add some more verbosity to the log. I just see that it tries to set a new fanspeed but it fails for some reason.
from airiana.
How do you send the json file with mqtt publish to home assistant from the raspberry pc? My Home assistant pc have Eclipse Mosquitto broker already.
I added this in my crontab file:
* * * * * mosquitto_pub -t airiana -f Airiana/RAM/air.out
as mosquitto is running on my pi I have not defined the broker only the topic and file where the json data is.
here's my homeAssistant configuration:
configuration.txt
I was not allowed to attach it with .yaml extension hence the .txt
from airiana.
I have a new commit up with some retry logic on TCP writes. commit: fbaf77a
from airiana.
added fixes for cmd.py and air.out, seems I broke the json prints last night. commit : f1b44c7
also found a bug in the write function that is a probable cause of the fanspeed set to be failing
from airiana.
When in summer mode the exchanger will stop after a little while. You can see exchanger mode flip from 5 to 0.
Something is up with offset to zero should only print once.
//
from airiana.
Great to hear things are working, yes I had to do some changes to the graph, not sure why but the border was hiding the temperature legend. I had not changed anything so I suspect some dependencies in matplotlib to be the cause.
from airiana.
Not sure about the cause of this but it seems the extract temp is 0 again. This will explain RH above 100% if temp outside is higher than 0. The log ends on the 22:nd and it looks strange at the end with regards to the extract temp. Maybe you can run ./backup.py to get the last 25hrs from RAM into the data.log file before posting to have it include the latest data. Airiana does this intermittently to save on SD-card writes and it is kind of wierd I agree.
from airiana.
tnx for reporting now fixed properly, was a mistake on my part.
from airiana.
Hi, data type is correct as it works most of the time, any issues with sign bit will be seen if extract temp would be lower than 0 and then as a twos complement. However I had some ideas reading thru the modbusTCP documentation on what would happen if there is a loss of connection mid the communication cycle. Did not howver become any smarter but added Auto close festure on the connection to reconnect after each request along with some more error prints. New commit up…
from airiana.
i just found an edge case where this might apply, where if the IAM will supply 2 consecutive zero values it may lock further extract temp updates, as this is what we are seeing try the latest commit. Note that i found an error in the shutdown fnction aswell so recomended is a ”kill” on the process to properly get it to restart.
from airiana.
You may absolutly lower the baud rate, I run 19200, and as the IAM uses TCP onetime connections no high speed comm is needed, I’d estimate around 10request/s, slower is always more robust. I did anpther commit with a larger tolerance for bad temp data may save the correct samples that got reported as errors. Lets break this bug, try to lower the baudrate and lets see if we get less bad values.
from airiana.
Good to hear you found the culprit. Lets keep it running a few days to be sure before I remove to much debug code. I’ll read up on eco mode to see what it does.
from airiana.
done, the power consumed calc avail as printout and in json data as "electricPowerTotal" give it a spin.
I will look into the other request as time is available.
from airiana.
Corrected the caculation it was wrong and note that the power unit is in Wh
from airiana.
Started work on a full python3 migration, thanks for taking the time to add issues about the fact that the os baseline now has left py2.7 behind.
from airiana.
If you'd like to test stuff out while I debug. there is a branch avail called python3-migration. This should work fully on python3 only systems. =)
from airiana.
Great. I am going to install python3-migration this weekend.
from airiana.
Install
The install.py give error when setting up "Enabling uart" and "setup symlinkts between RAM and ./public"
https://gist.github.com/overas/05ac67904b2903c544ec13d1a69f5f5b
Configuration:
-edit /etc/systemd/system/airiana.service, add "TCP" to commandline option.
[Service] ExecStart=/usr/bin/python3 /home/pi/airiana/airiana-core.py daemon ping humidity TCP
and
-edit the ipconfig file.
{"ip":"10.0.0.xxx", "port":502}
Usage:
The airiana service do not start up because
https://gist.github.com/overas/fb967094c36d876ebe317ed88374651b
https://gist.github.com/overas/d01e35f34bb7d7f2ce66267bc51d353f
from airiana.
seems it does not create the files due to a permission issue, I updated the service files in the repo to execute as root user instead of pi, you can manually edit the user in file /etc/systemd/system/airiana.service
and /etc/systemd/system/controller.service
.
manual execution of the core is also available for testing by using sudo ./airiana-core.py
unitll I can figure out how to close the gap with regards to not having the ram drive mount with root ownership.
from airiana.
Thanks. I going to try execute as root.
from airiana.
Thanks for your work to migrate to Python3. This is a status update with the newest git update. I think you know about this, but starting as root gives errors:
`pi@airiana:~/Airiana-python3-migration $ sudo ./airiana-core.py
Traceback (most recent call last):
File "/home/pi/Airiana-python3-migration/./airiana-core.py", line 20, in
os.chdir(path)
NotADirectoryError: [Errno 20] Not a directory: '/home/pi/Airiana-python3-migration/airiana-core.py'
`
`pi@airiana:~/Airiana-python3-migration $ sudo service airiana status
● airiana.service - Airiana Core executive
Loaded: loaded (/etc/systemd/system/airiana.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Sat 2022-03-05 15:26:26 CET; 2s ago
Process: 868 ExecStart=/usr/bin/python3 /home/pi/airiana/airiana-core.py daemon ping humidity TCP (code=exited, status=2)
Main PID: 868 (code=exited, status=2)
CPU: 77ms
Mar 05 15:26:26 airiana systemd[1]: airiana.service: Scheduled restart job, restart counter is at 5.
Mar 05 15:26:26 airiana systemd[1]: Stopped Airiana Core executive.
Mar 05 15:26:26 airiana systemd[1]: airiana.service: Start request repeated too quickly.
Mar 05 15:26:26 airiana systemd[1]: airiana.service: Failed with result 'exit-code'.
Mar 05 15:26:26 airiana systemd[1]: Failed to start Airiana Core executive.
`
from airiana.
Airiana webpage is now running.
First the the webpage was not running. I got some warning about path not found in line 3 in ip-replace.sh. I renamed the downloaded git zipfolder from "Airiana-python3-migration" to "airiana". Then the webpage worked.
I did the install again "sudo python ./install.py" in the airiana folder. The RAM folder was created without error. So it seems the correct name worked for the install script also.
The webpage is only for local access. How can I get remote access to the webpage from my LAN?
*No access allowed outside of local domain.
from airiana.
Started with a fresh install raspbian desktop. Downloading Airiana-python3-migration and unzipping. The folder is not renamed. Installed airiana with sudo ./request.py
Edited ipconfig with {"ip":"10.0.0.107", "port":505} and airiana.service
with "TCP".
pi@airiana:~/Airiana-python3-migration $ ./restart
● airiana.service - Airiana Core executive
Loaded: loaded (/etc/systemd/system/airiana.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2022-03-10 18:27:46 CET; 88ms ago
Main PID: 3000
Tasks: 1 (limit: 4915)
CPU: 83ms
CGroup: /system.slice/airiana.service
Mar 10 18:27:46 airiana systemd[1]: Started Airiana Core executive.
Mar 10 18:27:46 airiana python3[3000]: /usr/bin/python3: can't open file '/home/pi/airiana/airiana-core.py': [Errno 2] No such file or directory
Mar 10 18:27:46 airiana systemd[1]: airiana.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Mar 10 18:27:46 airiana systemd[1]: airiana.service: Failed with result 'exit-code'.
sh: 1: disown: not found
pi@airiana:~/Airiana-python3-migration $
The airiana service is not starting. Starting with sudo ./airiana-core.py
pi@airiana:~/Airiana-python3-migration $ sudo ./airiana-core.py
./ip-replace.sh: line 3: cd: /home/pi/airiana/public/: No such file or directory
Communication started on device Serial0;
Trying to Run on host: airiana , for 60sec;
Reporting system start;
Using RTU backend;
request object created: RTU ;
Running Comm test;
pi@airiana:/Airiana-python3-migration $ ^C/Airiana-python3-migration $ cat ./RAM/err
pi@airiana:
Using /dev/serial0
read error high rate,
possible no comms with unit error rate over 90%
read error high rate,
possible no comms with unit error rate over 90%
read error high rate,
possible no comms with unit error rate over 90%
read error high rate,
possible no comms with unit error rate over 90%
read error high rate,
possible no comms with unit error rate over 90%
pi@airiana:~/Airiana-python3-migration $
pi@airiana:/Airiana-python3-migration $ cat RAM/error_rate/Airiana-python3-migration $
-6.132610392555334e-08 0.01
pi@airiana:
pi@airiana:~/Airiana-python3-migration $ sudo python request.py
Communication started on device Serial0;
Using RTU backend;
request object created: RTU ;
Running Comm test;
pi@airiana:~/Airiana-python3-migration $
Do not now if it helps, but I use TCP port 505 with Home Assistant:
modbus:
- type: tcp
host: 10.0.0.107
port: 502
name: "VTR500"
Here is a link to the IAM access module I use. https://makitech.no/ventilasjon/boligaggregater/tilbehor-til-boligaggregater/internett-tilgangsmodul-for-SAVECair-aggregater#intro
from airiana.
First I'd like to thank you for helping me with debugging this, it turned out to be quite the handful to migrate, but necessary
I'm a little bit confused on what exactly happened here, seems you start with RTU and with incorrect paths. anything saying RTU should be bad in your case. we want the request class to talk TCP with the IAM.
paths are made correct when you exec the install.py
script
If you test with sudo ./airiana-core.py,
remember to add TCP as an argument. sudo ./airiana-core.py TCP
I suggest this install procedure
git clone https://github.com/BeamCtrl/Airiana.git
cd Airiana
git checkout python3-migration
sudo python3 install.py clean
( this command when used with clean removes the systemd files and reinstalls them after path replacements to match install path you will however need to re edit and add the TCP argument to core execution)- edit "/etc/systemd/system/airiana.service" add TCP to arguments
- add your TCP config, please check if port 502 or 505 is the correct one, saw you used both above.
- test with
./request.py
, you should see
pi@airiana:~/airiana $ ./request.py
Communication started on device Serial0;
Using RTU backend;
request object created: RTU ;Running Comm test;
Testing Non-savecair address 101:0;
Testing savecair address 12543:222;
Comm test: True ;Using TCP backend
Reading ip configuration file for IAM access {"ip":"localhost", "port":505}
request object created: TCP ;
Running Comm test;
TCP read error on addrs: 101
Testing Non-savecair address 101:;
TCP read error on addrs: 12543
Testing savecair address 12543:;
Comm test: False ;
But with the TCP Comm test passing, I have it connected thru RTU.
- ./restart
from airiana.
Thanks for your kind words. I started with a fresh raspbian desktop install and then after configure and update the operativsystem followed your procedure for installing Airiana.
Then I tested the communication with IAM (ip 10.0.0.107) with the tcp port 505 and 502 with request.py. I sorry to say that both test was not sucessfull.
pi@airiana:~/Airiana $ sudo python3 request.py
Communication started on device Serial0;
Using RTU backend;
request object created: RTU ;
Running Comm test;
Traceback (most recent call last):
File "/home/pi/Airiana/request.py", line 168, in modbusregister
self.response = self.client.read_register(
File "/usr/local/lib/python3.9/dist-packages/minimalmodbus.py", line 480, in read_register
returnvalue = self._generic_command(
File "/usr/local/lib/python3.9/dist-packages/minimalmodbus.py", line 1245, in _generic_command
payload_from_slave = self._perform_command(functioncode, payload_to_slave)
File "/usr/local/lib/python3.9/dist-packages/minimalmodbus.py", line 1322, in _perform_command
response_bytes = self._communicate(request_bytes, number_of_bytes_to_read)
File "/usr/local/lib/python3.9/dist-packages/minimalmodbus.py", line 1490, in _communicate
raise NoResponseError("No communication with the instrument (no answer)")
minimalmodbus.NoResponseError: No communication with the instrument (no answer)
---Repeats many times: Traceback (most recent call last), then it logs:
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/pi/Airiana/request.py", line 168, in modbusregister
self.response = self.client.read_register(
File "/usr/local/lib/python3.9/dist-packages/minimalmodbus.py", line 480, in read_register
returnvalue = self._generic_command(
File "/usr/local/lib/python3.9/dist-packages/minimalmodbus.py", line 1245, in _generic_command
payload_from_slave = self._perform_command(functioncode, payload_to_slave)
File "/usr/local/lib/python3.9/dist-packages/minimalmodbus.py", line 1322, in _perform_command
response_bytes = self._communicate(request_bytes, number_of_bytes_to_read)
File "/usr/local/lib/python3.9/dist-packages/minimalmodbus.py", line 1460, in _communicate
answer = self.serial.read(number_of_bytes_to_read)
File "/usr/lib/python3/dist-packages/serial/serialposix.py", line 577, in read
raise SerialException(
serial.serialutil.SerialException: device reports readiness to read but returned no data (device disconnected or multiple access on port?)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/pi/Airiana/request.py", line 246, in
req.setup(unit, "RTU")
File "/home/pi/Airiana/request.py", line 76, in setup
test = self.comm_test()
File "/home/pi/Airiana/request.py", line 82, in comm_test
self.modbusregister(101, 0) # Read non savecair flow address
File "/home/pi/Airiana/request.py", line 178, in modbusregister
self.modbusregister(address, decimals)
File "/home/pi/Airiana/request.py", line 178, in modbusregister
self.modbusregister(address, decimals)
File "/home/pi/Airiana/request.py", line 178, in modbusregister
self.modbusregister(address, decimals)
[Previous line repeated 41 more times]
File "/home/pi/Airiana/request.py", line 168, in modbusregister
self.response = self.client.read_register(
File "/usr/local/lib/python3.9/dist-packages/minimalmodbus.py", line 480, in read_register
returnvalue = self._generic_command(
File "/usr/local/lib/python3.9/dist-packages/minimalmodbus.py", line 1245, in _generic_command
payload_from_slave = self._perform_command(functioncode, payload_to_slave)
File "/usr/local/lib/python3.9/dist-packages/minimalmodbus.py", line 1322, in _perform_command
response_bytes = self._communicate(request_bytes, number_of_bytes_to_read)
File "/usr/local/lib/python3.9/dist-packages/minimalmodbus.py", line 1399, in _communicate
self.serial.reset_input_buffer()
File "/usr/lib/python3/dist-packages/serial/serialposix.py", line 661, in reset_input_buffer
termios.tcflush(self.fd, termios.TCIFLUSH)
termios.error: (5, 'Input/output error')
pi@airiana:~/Airiana $
pi@airiana:/Airiana $ cat ./RAM/request.log/Airiana $
Testing Non-savecair address 101:
Testing savecair address 12543:
Request object Failed communications test.
st.
pi@airiana:
pi@airiana:~/Airiana $ cat ./RAM/err
dError: [Errno 2] No such file or directory: 'latlong.json'
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 21 100 21 0 0 54 0 --:--:-- --:--:-- --:--:-- 54
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 937 100 937 0 0 9464 0 --:--:-- --:--:-- --:--:-- 9464
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0curl: (6) Could not resolve host: api.apility.net
Savecair unit set
Traceback (most recent call last):
File "/home/pi/Airiana/./forcast2.0.py", line 56, in
f = open("latlong.json")
FileNotFoundError: [Errno 2] No such file or directory: 'latlong.json'
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 21 100 21 0 0 54 0 --:--:-- --:--:-- --:--:-- 54
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 937 100 937 0 0 9464 0 --:--:-- --:--:-- --:--:-- 9561
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0curl: (6) Could not resolve host: api.apility.net
Traceback (most recent call last):
File "/home/pi/Airiana/airiana-core.py", line 1963, in
device.get_forcast()
File "/home/pi/Airiana/airiana-core.py", line 1665, in get_forcast
self.forcast[2] = float(forcast[1])
ValueError: could not convert string to float: 'None\n'
Using /dev/serial0
System started Fri Mar 11 19:03:06 2022
Traceback (most recent call last):
File "/home/pi/Airiana/./forcast2.0.py", line 56, in
f = open("latlong.json")
FileNotFoundError: [Errno 2] No such file or directory: 'latlong.json'
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 21 100 21 0 0 59 0 --:--:-- --:--:-- --:--:-- 59
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 937 100 937 0 0 10184 0 --:--:-- --:--:-- --:--:-- 10296
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0curl: (6) Could not resolve host: api.apility.net
Savecair unit set
It seems the webpage is alive and working.
pi@airiana:~/Airiana $ ./restart
● airiana.service - Airiana Core executive
Loaded: loaded (/etc/systemd/system/airiana.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2022-03-11 19:07:26 CET; 969ms ago
Main PID: 10188 (python3)
Tasks: 9 (limit: 4915)
CPU: 1.169s
CGroup: /system.slice/airiana.service
├─10188 /usr/bin/python3 /home/pi/Airiana/airiana-core.py daemon ping humidity TCP
├─10219 /bin/sh -c ./forcast2.0.py pressure
├─10220 /usr/bin/python3 ./forcast2.0.py pressure
├─10221 sudo python3 ./public/httpsrv.py
├─10222 python3 ./public/httpsrv.py
├─10223 sh -c ./geoloc.py
├─10224 /usr/bin/python3 ./geoloc.py
├─10225 /bin/sh -c curl 'https://api.ipify.org?format=json'
└─10226 curl https://api.ipify.org?format=json
Mar 11 19:07:26 airiana airiana-core.py[10188]: file is /home/pi/Airiana/airiana-core.py
Mar 11 19:07:26 airiana airiana-core.py[10188]: changing to /home/pi/Airiana/
Mar 11 19:07:26 airiana sudo[10201]: root : PWD=/home/pi/Airiana ; USER=root ; COMMAND=/usr/bin/pkill -f httpsrv.py
Mar 11 19:07:26 airiana sudo[10201]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=0)
Mar 11 19:07:26 airiana sudo[10201]: pam_unix(sudo:session): session closed for user root
Mar 11 19:07:26 airiana sudo[10215]: root : PWD=/home/pi/Airiana ; USER=root ; COMMAND=/usr/bin/pkill -f httpsrv2.py
Mar 11 19:07:26 airiana sudo[10215]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=0)
Mar 11 19:07:27 airiana sudo[10215]: pam_unix(sudo:session): session closed for user root
Mar 11 19:07:27 airiana sudo[10221]: root : PWD=/home/pi/Airiana ; USER=root ; COMMAND=/usr/bin/python3 ./public/httpsrv.py
Mar 11 19:07:27 airiana sudo[10221]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=0)
sh: 1: disown: not found
from airiana.
I think I was a little quick with the feedback. The communication with the IAM works now after changing the port to 502. When using tcp 505 the airiana service fails.
pi@airiana:/Airiana $ cat ./RAM/request.log/Airiana $
Testing Non-savecair address 101:0
Testing savecair address 12543:222
Request object Passed communications test.
pi@airiana:
The webinterface (airiana controller) is active, but when I push the buttons "Fanspeed Low", High or Normal nothing happens. I have tried the other buttons and nothink happens with them either.
pi@airiana:~/Airiana $ service controller status
● controller.service - Airiana Controller TCP(http) --> UDP server
Loaded: loaded (/etc/systemd/system/controller.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2022-03-11 18:35:39 CET; 1h 43min ago
Main PID: 362 (python3)
Tasks: 2 (limit: 4915)
CPU: 1.586s
CGroup: /system.slice/controller.service
└─362 /usr/bin/python3 /home/pi/Airiana/public/controller.py
Mar 11 18:35:39 airiana systemd[1]: Started Airiana Controller TCP(http) --> UDP server.
Mar 11 19:00:00 airiana systemd[1]: /etc/systemd/system/controller.service:4: Unknown key name 'Type' in section '>
Mar 11 19:00:00 airiana sys
pi@airiana:~/Airiana $ service airiana status
● airiana.service - Airiana Core executive
Loaded: loaded (/etc/systemd/system/airiana.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2022-03-11 20:20:22 CET; 2s ago
Main PID: 23462 (python3)
Tasks: 4 (limit: 4915)
CPU: 1.404s
CGroup: /system.slice/airiana.service
├─23462 /usr/bin/python3 /home/pi/Airiana/airiana-core.py daemon ping humidity TCP
├─23497 sudo python3 ./public/httpsrv.py
└─23498 python3 ./public/httpsrv.py
Mar 11 20:20:23 airiana airiana-core.py[23462]: file is /home/pi/Airiana/airiana-core.py
Mar 11 20:20:23 airiana airiana-core.py[23462]: changing to /home/pi/Airiana/
Mar 11 20:20:23 airiana sudo[23479]: root : PWD=/home/pi/Airiana ; USER=root ; COMMAND=/usr/bin/pkill -f https>
Mar 11 20:20:23 airiana sudo[23479]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=0)
Mar 11 20:20:23 airiana sudo[23479]: pam_unix(sudo:session): session closed for user root
Mar 11 20:20:23 airiana sudo[23493]: root : PWD=/home/pi/Airiana ; USER=root ; COMMAND=/usr/bin/pkill -f https>
Mar 11 20:20:23 airiana sudo[23493]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=0)
Mar 11 20:20:23 airiana sudo[23493]: pam_unix(sudo:session): session closed for user root
Mar 11 20:20:23 airiana sudo[23497]: root : PWD=/home/pi/Airiana ; USER=root ; COMMAND=/usr/bin/python3 ./publ>
Mar 11 20:20:23 airiana sudo[23497]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=0)
pi@airiana:~/Airiana $
pi@airiana:~/Airiana $ cat ./RAM/err
Dload Upload Total Spent Left Speed
100 21 100 21 0 0 57 0 --:--:-- --:--:-- --:--:-- 57
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 937 100 937 0 0 9464 0 --:--:-- --:--:-- --:--:-- 9561
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0curl: (6) Could not resolve host: api.apility.net
Traceback (most recent call last):
File "/home/pi/Airiana/airiana-core.py", line 1963, in
device.get_forcast()
File "/home/pi/Airiana/airiana-core.py", line 1665, in get_forcast
self.forcast[2] = float(forcast[1])
ValueError: could not convert string to float: 'None\n'
Using /dev/serial0
System started Fri Mar 11 20:20:39 2022
Traceback (most recent call last):
File "/home/pi/Airiana/./forcast2.0.py", line 56, in
f = open("latlong.json")
FileNotFoundError: [Errno 2] No such file or directory: 'latlong.json'
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 21 100 21 0 0 52 0 --:--:-- --:--:-- --:--:-- 52
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 937 100 937 0 0 9760 0 --:--:-- --:--:-- --:--:-- 9760
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0curl: (6) Could not resolve host: api.apility.net
Savecair unit set
from airiana.
Can you paste the output from ./watch
or the content of ./RAM/out?
you can get low level controll by ./cmd.py
, it bypasses the http server for controlls.
Looking at the errors above, has it created a latlong.json file with your position?
from airiana.
Output from ./watch and ./RAM/out
pi@airiana:~/Airiana $ cat ./RAM/out
Reporting system start;
Using TCP backend
Reading ip configuration file for IAM access {"ip":"10.0.0.107", "port":502}
request object created: TCP ;
Running Comm test;
Testing Non-savecair address 101:0;
Testing savecair address 12543:224;
Comm test: True ;
value error for pressure
TCP read error on addrs: 12543
Going in for first PASS;
First PASS;
Updating fanspeeds;
pi@airiana:~/Airiana $
Airiana has not created a latlong.json file.
I start up ./cmd.py and use the menu
Sat Mar 12 11:12:14 2022 CTRL-C to exit,
1: Toggle Auto Monitoring 6:
2: Toggle fanspeed 7: Toggle pressure diff
3: Print all device attributes 8: Run fans for 120min at Max
4: Display link settings 9:
5: show/update values 10: Toggle shower mode
enter commands:
^Cpi@airiana:~/Airiana $
Nothing happens with the systemair VTR500 fans when I choose 10: "Toggle shower mode" or 8: "Run fans for 120 min at Max"
from airiana.
We’re closing in… you have confirmed comms. It is crashibg because it tries to geolocate and failing. As such it does not manage go get the forecast for your pos. Pull the latest, I added a new source of geo location data that should find you.
from airiana.
The fix for geolocate solved the crashing of the Airiana service. I have now a latlong.json with latlong location
{"lat":"58.34046","long":"8.59337"}
and Airiana read the data from the vtr500
The buttons for Fanspeed Low, Normal and High and Forced Ventilation do not work. When I push them the fan do not changed speed. Auto on/off works. I do not know if Winter/Summer mode works because the Airiana do not give any output i the terminal window.
pi@airiana:~/Airiana $ cat ./RAM/err
to: None Sat Mar 12 17:38:26 2022
('127.0.0.1', 45002):99 at Sat Mar 12 17:38:58 2022
Changing fanspeed to:3 Sat Mar 12 17:38:58 2022
Incorrectly set fanspeed 2 to 3 Sat Mar 12 17:38:59 2022
('127.0.0.1', 39404):98 at Sat Mar 12 17:39:33 2022
('127.0.0.1', 52031):0 at Sat Mar 12 17:39:55 2022
cycle exchanger to: None Sat Mar 12 17:39:55 2022
('127.0.0.1', 57376):0 at Sat Mar 12 17:41:01 2022
cycle exchanger to: None Sat Mar 12 17:41:01 2022
Traceback (most recent call last):
File "/home/pi/Airiana/./grapher.py", line 136, in
ax.set_xlim(min(time[-day:-1]), max(time[-day:-1]))
ValueError: min() arg is an empty sequence
Using /dev/serial0
System started Sat Mar 12 17:48:16 2022
Savecair unit set
/usr/lib/python3/dist-packages/numpy/core/fromnumeric.py:3372: RuntimeWarning: Mean of empty slice.
return _methods._mean(a, axis=axis, dtype=dtype,
/usr/lib/python3/dist-packages/numpy/core/_methods.py:170: RuntimeWarning: invalid value encountered in double_scalars
ret = ret.dtype.type(ret / rcount)
Traceback (most recent call last):
File "/home/pi/Airiana/./grapher.py", line 133, in
ax.set_ylim(int(min(inlet)) - 1, int(max(extract + inlet + exhaust + supply + outside)) + 2)
ValueError: min() arg is an empty sequence
Pressure difference set to: 10% Sat Mar 12 17:48:27 2022
Using /dev/serial0
System started Sat Mar 12 17:50:53 2022
Savecair unit set
/usr/lib/python3/dist-packages/numpy/core/fromnumeric.py:3372: RuntimeWarning: Mean of empty slice.
return _methods._mean(a, axis=axis, dtype=dtype,
/usr/lib/python3/dist-packages/numpy/core/_methods.py:170: RuntimeWarning: invalid value encountered in double_scalars
ret = ret.dtype.type(ret / rcount)
Traceback (most recent call last):
File "/home/pi/Airiana/./grapher.py", line 133, in
ax.set_ylim(int(min(inlet)) - 1, int(max(extract + inlet + exhaust + supply + outside)) + 2)
ValueError: min() arg is an empty sequence
Pressure difference set to: 10% Sat Mar 12 17:51:04 2022
Using /dev/serial0
System started Sat Mar 12 17:53:54 2022
Savecair unit set
/usr/lib/python3/dist-packages/numpy/core/fromnumeric.py:3372: RuntimeWarning: Mean of empty slice.
return _methods._mean(a, axis=axis, dtype=dtype,
/usr/lib/python3/dist-packages/numpy/core/_methods.py:170: RuntimeWarning: invalid value encountered in double_scalars
ret = ret.dtype.type(ret / rcount)
Traceback (most recent call last):
File "/home/pi/Airiana/./grapher.py", line 133, in
ax.set_ylim(int(min(inlet)) - 1, int(max(extract + inlet + exhaust + supply + outside)) + 2)
ValueError: min() arg is an empty sequence
Pressure difference set to: 10% Sat Mar 12 17:54:03 2022
Using /dev/serial0
System started Sat Mar 12 17:54:16 2022
Savecair unit set
/usr/lib/python3/dist-packages/numpy/core/fromnumeric.py:3372: RuntimeWarning: Mean of empty slice.
return _methods._mean(a, axis=axis, dtype=dtype,
/usr/lib/python3/dist-packages/numpy/core/_methods.py:170: RuntimeWarning: invalid value encountered in double_scalars
ret = ret.dtype.type(ret / rcount)
Traceback (most recent call last):
File "/home/pi/Airiana/./grapher.py", line 133, in
ax.set_ylim(int(min(inlet)) - 1, int(max(extract + inlet + exhaust + supply + outside)) + 2)
ValueError: min() arg is an empty sequence
Pressure difference set to: 10% Sat Mar 12 17:54:28 2022
Traceback (most recent call last):
File "/home/pi/Airiana/./grapher.py", line 136, in
ax.set_xlim(min(time[-day:-1]), max(time[-day:-1]))
ValueError: min() arg is an empty sequence
Changing fanspeed to:1 Sat Mar 12 18:04:18 2022
Incorrectly set fanspeed 2 to 1 Sat Mar 12 18:04:19 2022
Dynamic fanspeed 1 with RH Sat Mar 12 18:04:20 2022
('127.0.0.1', 51656):11 at Sat Mar 12 18:05:26 2022
('127.0.0.1', 57354):1 at Sat Mar 12 18:05:54 2022
('127.0.0.1', 40303):1 at Sat Mar 12 18:06:07 2022
Changing fanspeed to:1 Sat Mar 12 18:06:10 2022
Incorrectly set fanspeed 2 to 1 Sat Mar 12 18:06:11 2022
Dynamic fanspeed 1 with RH Sat Mar 12 18:06:11 2022
('127.0.0.1', 51656):2 at Sat Mar 12 18:06:23 2022
Changing fanspeed to:3 Sat Mar 12 18:06:23 2022
Incorrectly set fanspeed 2 to 3 Sat Mar 12 18:06:23 2022
('127.0.0.1', 51656):2 at Sat Mar 12 18:06:43 2022
Changing fanspeed to:3 Sat Mar 12 18:06:43 2022
Incorrectly set fanspeed 2 to 3 Sat Mar 12 18:06:44 2022
('127.0.0.1', 51656):3 at Sat Mar 12 18:06:56 2022
('127.0.0.1', 56389):4 at Sat Mar 12 18:07:26 2022
('127.0.0.1', 54707):10 at Sat Mar 12 18:08:17 2022
/home/pi/Airiana/./grapher.py:136: UserWarning: Attempting to set identical left == right == 737.5183515548706 results in singular transformations; automatically expanding.
ax.set_xlim(min(time[-day:-1]), max(time[-day:-1]))
/home/pi/Airiana/./grapher.py:158: UserWarning: Attempting to set identical left == right == 737.5183515548706 results in singular transformations; automatically expanding.
ax.set_xlim(min(time[-day:-1]), max(time[-day:-1]))
Changing fanspeed to:1 Sat Mar 12 18:16:49 2022
Incorrectly set fanspeed 2 to 1 Sat Mar 12 18:16:49 2022
Dynamic fanspeed 1 with RH Sat Mar 12 18:16:50 2022
('127.0.0.1', 40849):99 at Sat Mar 12 18:26:15 2022
Changing fanspeed to:3 Sat Mar 12 18:26:15 2022
Incorrectly set fanspeed 2 to 3 Sat Mar 12 18:26:16 2022
('127.0.0.1', 60618):98 at Sat Mar 12 18:26:22 2022
('127.0.0.1', 45212):97 at Sat Mar 12 18:26:28 2022
Changing fanspeed to:1 Sat Mar 12 18:26:28 2022
Incorrectly set fanspeed 2 to 1 Sat Mar 12 18:26:29 2022
('127.0.0.1', 36448):8 at Sat Mar 12 18:26:34 2022
Vent timer started at: Sat Mar 12 18:26:34 2022
Changing fanspeed to:3 Sat Mar 12 18:26:34 2022
Incorrectly set fanspeed 2 to 3 Sat Mar 12 18:26:34 2022
('127.0.0.1', 43404):1 at Sat Mar 12 18:26:53 2022
Changing fanspeed to:1 Sat Mar 12 18:26:57 2022
Incorrectly set fanspeed 2 to 1 Sat Mar 12 18:26:58 2022
Dynamic fanspeed 1 with RH Sat Mar 12 18:26:58 2022
('127.0.0.1', 37899):0 at Sat Mar 12 18:27:00 2022
cycle exchanger to: None Sat Mar 12 18:27:00 2022
('127.0.0.1', 47938):1 at Sat Mar 12 18:27:12 2022
pi@airiana:~/Airiana $
When using ./cmd.py and choose "2: Toggle fanspeed" or "10: Toggle shower mode" or "8: Run fans for 120 min at Max" nothing happens.
When I choose "3: Print all device attributes" the program crash with output:
break
Traceback (most recent call last):
File "/home/pi/Airiana/./cmd.py", line 33, in
raw_input("press enter to resume")
NameError: name 'raw_input' is not defined
pi@airiana:~/Airiana $
The home assistant integration works, but I must change the port from port":8234 to port":8123 in the "ha-token" file. I get three sensor in Home Assistant. Is this correct?
from airiana.
How do you send the json file with mqtt publish to home assistant from the raspberry pc? My Home assistant pc have Eclipse Mosquitto broker already.
from airiana.
I think the commit did not help.
pi@airiana:~/Airiana $ cat ./RAM/err
Using /dev/serial0
System started Sat Mar 12 23:37:55 2022
Savecair unit set
/usr/lib/python3/dist-packages/numpy/core/fromnumeric.py:3372: RuntimeWarning: Mean of empty slice.
return _methods._mean(a, axis=axis, dtype=dtype,
/usr/lib/python3/dist-packages/numpy/core/_methods.py:170: RuntimeWarning: invalid value encountered in double_scalars
ret = ret.dtype.type(ret / rcount)
Pressure difference set to: 10% Sat Mar 12 23:38:11 2022
('127.0.0.1', 47240):99 at Sat Mar 12 23:38:48 2022
Changing fanspeed to:3 Sat Mar 12 23:38:48 2022
Incorrectly set fanspeed 2 to 3 Sat Mar 12 23:38:48 2022
('127.0.0.1', 44198):97 at Sat Mar 12 23:39:06 2022
Changing fanspeed to:1 Sat Mar 12 23:39:06 2022
Incorrectly set fanspeed 2 to 1 Sat Mar 12 23:39:07 2022
('127.0.0.1', 56706):98 at Sat Mar 12 23:39:21 2022
('127.0.0.1', 55638):8 at Sat Mar 12 23:39:30 2022
Vent timer started at: Sat Mar 12 23:39:30 2022
Changing fanspeed to:3 Sat Mar 12 23:39:30 2022
Incorrectly set fanspeed 2 to 3 Sat Mar 12 23:39:31 2022
pi@airiana:~/Airiana $
from airiana.
new commit up that tries to readout the set data and if failing to set, retries. commit 8a12e7e
from airiana.
Updated to the new commit, but setting the fanspeed from webinterface or ./cmd.py do not work.
pi@airiana:~/Airiana $ cat ./RAM/err
Using /dev/serial0
System started Sun Mar 13 14:16:48 2022
Savecair unit set
/usr/lib/python3/dist-packages/numpy/core/fromnumeric.py:3372: RuntimeWarning: Mean of empty slice.
return _methods._mean(a, axis=axis, dtype=dtype,
/usr/lib/python3/dist-packages/numpy/core/_methods.py:170: RuntimeWarning: invalid value encountered in double_scalars
ret = ret.dtype.type(ret / rcount)
Pressure difference set to: 10% Sun Mar 13 14:17:42 2022
('127.0.0.1', 49437):99 at Sun Mar 13 14:19:23 2022
Changing fanspeed to:3 Sun Mar 13 14:19:23 2022
Incorrectly set fanspeed 2 to 3 Sun Mar 13 14:19:29 2022
('127.0.0.1', 43724):97 at Sun Mar 13 14:21:14 2022
Changing fanspeed to:1 Sun Mar 13 14:21:14 2022
Incorrectly set fanspeed 2 to 1 Sun Mar 13 14:21:20 2022
('127.0.0.1', 59061):98 at Sun Mar 13 14:21:25 2022
('127.0.0.1', 53462):8 at Sun Mar 13 14:21:43 2022
Vent timer started at: Sun Mar 13 14:21:43 2022
Changing fanspeed to:3 Sun Mar 13 14:21:43 2022
Incorrectly set fanspeed 2 to 3 Sun Mar 13 14:21:49 2022
('127.0.0.1', 40396):2 at Sun Mar 13 14:22:38 2022
Changing fanspeed to:3 Sun Mar 13 14:22:38 2022
Incorrectly set fanspeed 2 to 3 Sun Mar 13 14:22:44 2022
('127.0.0.1', 40396):10 at Sun Mar 13 14:22:50 2022
('127.0.0.1', 40396):1 at Sun Mar 13 14:23:05 2022
Changing fanspeed to:1 Sun Mar 13 14:23:08 2022
Incorrectly set fanspeed 2 to 1 Sun Mar 13 14:23:14 2022
Dynamic fanspeed 1 without RH Sun Mar 13 14:23:14 2022
pi@airiana:~/Airiana $
from airiana.
I am trying to setup mqtt publish to home assistant, but my air.out file is empty (no json data). I have restarted airiana, but the air.out do not get input data. Two days ago the air.out was filled with json data.
pi@airiana:~/Airiana $ cat ./RAM/air.out
pi@airiana:~/Airiana $
from airiana.
The json print and the fanspeed set is working now. Great work. I am going to test airiana now and report if I find more problems. Thanks again.
from airiana.
I do not know if these info/warning/errors in /RAM/err are things you need to fix, but here they are. When I push the "[Winter/Summer Mode]" button nothing seems to happen. How can I verify the Winter mode is enabled?
pi@airiana:~/Airiana $ cat ./RAM/err
Using /dev/serial0
System started Mon Mar 14 16:47:38 2022
Savecair unit set
Pressure difference set to: 10% Mon Mar 14 16:47:53 2022
json-writer error []
Changing fanspeed to:1 Mon Mar 14 16:57:45 2022
Dynamic fanspeed 1 with RH Mon Mar 14 16:57:46 2022
Extract flow offset to: 0 Mon Mar 14 16:58:52 2022
Extract flow offset to: 0 Mon Mar 14 17:01:20 2022
Extract flow offset to: 0 Mon Mar 14 17:02:33 2022
Extract flow offset to: 0 Mon Mar 14 17:05:00 2022
Extract flow offset to: 0 Mon Mar 14 17:06:16 2022
Extract flow offset to: 0 Mon Mar 14 17:07:29 2022
Extract flow offset to: 0 Mon Mar 14 17:08:44 2022
Extract flow offset to: 0 Mon Mar 14 17:11:11 2022
Extract flow offset to: 0 Mon Mar 14 17:16:05 2022
Extract flow offset to: 0 Mon Mar 14 17:18:32 2022
Extract flow offset to: 0 Mon Mar 14 17:19:46 2022
Extract flow offset to: 0 Mon Mar 14 17:23:30 2022
Extract flow offset to: 0 Mon Mar 14 17:24:43 2022
Extract flow offset to: 0 Mon Mar 14 17:27:10 2022
Extract flow offset to: 0 Mon Mar 14 17:29:37 2022
Extract flow offset to: 0 Mon Mar 14 17:33:18 2022
Extract flow offset to: 0 Mon Mar 14 17:34:32 2022
Extract flow offset to: 0 Mon Mar 14 17:35:47 2022
Extract flow offset to: 0 Mon Mar 14 17:37:01 2022
Extract flow offset to: 0 Mon Mar 14 17:39:27 2022
Extract flow offset to: 0 Mon Mar 14 17:40:43 2022
Extract flow offset to: 0 Mon Mar 14 17:44:23 2022
Extract flow offset to: 0 Mon Mar 14 17:49:18 2022
Extract flow offset to: 0 Mon Mar 14 17:50:31 2022
Starting coefAI test @ 17C Mon Mar 14 17:57:50 2022
Changing fanspeed to:3 Mon Mar 14 17:57:50 2022
Changing fanspeed to:2 Mon Mar 14 18:07:55 2022
Dynamic fanspeed 2 with long dt from 3 Mon Mar 14 18:07:56 2022
Changing fanspeed to:1 Mon Mar 14 18:08:01 2022
/usr/lib/python3/dist-packages/numpy/core/fromnumeric.py:3372: RuntimeWarning: Mean of empty slice.
return _methods._mean(a, axis=axis, dtype=dtype,
/usr/lib/python3/dist-packages/numpy/core/_methods.py:170: RuntimeWarning: invalid value encountered in double_scalars
ret = ret.dtype.type(ret / rcount)
Extract flow offset to: 0 Mon Mar 14 18:08:53 2022
Extract flow offset to: 0 Mon Mar 14 18:13:46 2022
Extract flow offset to: 0 Mon Mar 14 18:17:29 2022
Extract flow offset to: 0 Mon Mar 14 18:21:08 2022
Extract flow offset to: 0 Mon Mar 14 18:22:23 2022
Extract flow offset to: 0 Mon Mar 14 18:23:37 2022
Extract flow offset to: 0 Mon Mar 14 18:24:53 2022
Extract flow offset to: 0 Mon Mar 14 18:26:07 2022
Extract flow offset to: 0 Mon Mar 14 18:27:21 2022
Extract flow offset to: 0 Mon Mar 14 18:28:35 2022
unable to ping, network error Mon Mar 14 18:32:55 2022
Extract flow offset to: 0 Mon Mar 14 18:34:45 2022
Extract flow offset to: 0 Mon Mar 14 18:37:11 2022
Extract flow offset to: 0 Mon Mar 14 18:43:18 2022
Extract flow offset to: 0 Mon Mar 14 18:44:33 2022
Extract flow offset to: 0 Mon Mar 14 18:46:59 2022
Extract flow offset to: 0 Mon Mar 14 18:48:14 2022
Extract flow offset to: 0 Mon Mar 14 18:51:55 2022
Extract flow offset to: 0 Mon Mar 14 18:53:10 2022
Extract flow offset to: 0 Mon Mar 14 18:56:50 2022
Extract flow offset to: 0 Mon Mar 14 18:59:18 2022
Extract flow offset to: 0 Mon Mar 14 19:00:31 2022
Extract flow offset to: 0 Mon Mar 14 19:02:59 2022
Extract flow offset to: 0 Mon Mar 14 19:05:26 2022
Extract flow offset to: 0 Mon Mar 14 19:07:52 2022
Extract flow offset to: 0 Mon Mar 14 19:10:21 2022
Extract flow offset to: 0 Mon Mar 14 19:11:35 2022
Extract flow offset to: 0 Mon Mar 14 19:12:48 2022
Extract flow offset to: 0 Mon Mar 14 19:14:03 2022
Extract flow offset to: 0 Mon Mar 14 19:16:29 2022
Extract flow offset to: 0 Mon Mar 14 19:20:11 2022
Extract flow offset to: 0 Mon Mar 14 19:21:24 2022
Extract flow offset to: 0 Mon Mar 14 19:23:52 2022
Extract flow offset to: 0 Mon Mar 14 19:25:05 2022
Extract flow offset to: 0 Mon Mar 14 19:26:23 2022
Extract flow offset to: 0 Mon Mar 14 19:32:29 2022
Extract flow offset to: 0 Mon Mar 14 19:34:56 2022
Extract flow offset to: 0 Mon Mar 14 19:36:11 2022
Extract flow offset to: 0 Mon Mar 14 19:38:38 2022
Extract flow offset to: 0 Mon Mar 14 19:42:17 2022
Extract flow offset to: 0 Mon Mar 14 19:43:33 2022
('127.0.0.1', 59152):0 at Mon Mar 14 19:44:54 2022
cycle exchanger to: None Mon Mar 14 19:44:54 2022
('127.0.0.1', 35745):1 at Mon Mar 14 19:45:19 2022
('127.0.0.1', 58293):1 at Mon Mar 14 19:45:32 2022
cycle exchanger to: 5 Mon Mar 14 19:45:36 2022
1.Exchange set to 5. extract is less than target-1C Mon Mar 14 19:45:36 2022
Extract flow offset to: 0 Mon Mar 14 19:47:14 2022
Extract flow offset to: 0 Mon Mar 14 19:49:41 2022
Extract flow offset to: 0 Mon Mar 14 19:50:55 2022
Extract flow offset to: 0 Mon Mar 14 19:52:10 2022
Extract flow offset to: 0 Mon Mar 14 19:54:37 2022
Extract flow offset to: 0 Mon Mar 14 19:55:50 2022
Extract flow offset to: 0 Mon Mar 14 19:57:05 2022
Extract flow offset to: 0 Mon Mar 14 19:58:19 2022
Extract flow offset to: 0 Mon Mar 14 19:59:32 2022
unable to ping, network error Mon Mar 14 20:00:33 2022
pi@airiana:~/Airiana $
from airiana.
Updated to 52e34ed and everything works fine. I get a error about "json-writer error []" when the airiana service start up, but forecast.json and air.out are updated with data so I think is only a startup error.
I have a question about forced ventilation. I tried to use the service "RESTful Command: force_vent" in HA to force more air when fire up the fireplace. How can I controll the time the fan is on and how can I change back to auto? Is it better to use the service "RESTful Command: vent_high" with a time delay and then use "RESTful Command: vent_low" for stopping the fan.
`
pi@airiana:~/Airiana/RAM $ cat err
Using /dev/serial0
System started Wed Apr 6 13:40:15 2022
Savecair unit set
Pressure difference set to: 10% Wed Apr 6 13:40:28 2022
json-writer error []
('127.0.0.1', 50634):99 at Wed Apr 6 13:44:09 2022
Changing fanspeed to:3 Wed Apr 6 13:44:09 2022
('127.0.0.1', 40824):1 at Wed Apr 6 13:44:45 2022
('127.0.0.1', 59135):1 at Wed Apr 6 13:44:58 2022
Changing fanspeed to:2 Wed Apr 6 13:45:01 2022
Dynamic fanspeed 2 with long dt from 3 Wed Apr 6 13:45:02 2022
pi@airiana:~/Airiana/RAM $
`
from airiana.
Has something changed with the temperature picture in the webpage? The picture has on the left side black bars which is not pretty.
from airiana.
Have you updated? The black bars looks like there are temp values in the thousands, the bars being temp levels stacked on top of each other, the graph looks strange in general. Pull latest and see if there is a change
from airiana.
there may also be an extra button available just for you. hope it works well to light a fire in the fireplace with minimal smoke going in.
to explain the forced vent, its actually just a timer, turns off auto for 120min and sets fanspeed lvl 3.
fire start mode sets a positive pressure ratio, this should push air up the chimney when starting, keeps positive pressure for 10minutes before returning to auto.
give it a try and lets evaluate.
from airiana.
I started with a fresh install like you adviced here: #22 (comment).
But the airiana service do not start up and the log says the user pi do not have permission to create data.log, forecast.txt, err. https://gist.github.com/overas/7c9b49e999d9ec7efe4618b2c77c6f4e.
I then replaced the user pi in /etc/systemd/system/airiana.service with root and the service start up. The files is also created.
I do not see any new button for fireplace in the webpage. Should this work as a rest_command also in HA?
from airiana.
from airiana.
I saw the new icon now after I refresh the webpage. The fire start button works as expected.
Fire start at: Thu Apr 7 21:17:28 2022
Pressure difference set to: -10% Thu Apr 7 21:17:28 2022
Pressure difference set to: 10% Thu Apr 7 21:26:15 2022
Changing fanspeed to:1 Thu Apr 7 21:27:45 2022
Changing fanspeed to:3 Thu Apr 7 21:27:47 2022
cycle exchanger to: 0 Thu Apr 7 21:28:59 2022
Exchange set to 0 supply>target Thu Apr 7 21:29:00 2022
cycle exchanger to: 5 Thu Apr 7 21:29:00 2022
1.Exchange set to 5. extract is less than target-1C Thu Apr 7 21:29:00 2022
Has something changed with the temperature picture in the webpage?
After I did a fresh install of Airiana the temperature picture is now correct.
from airiana.
After I did a fresh install of Airiana the temperature picture is now correct.
The problem with the temperature picture has come back. The picture has also gray horizontal stripes in the background.
from airiana.
I think the problem is with the data. I looks as you are getting data in at around a few hundred Celcius. Can you attach or look in the data file "data.log" for entries around this date use this converter on the timestamps to find where this happened. If you pull the latest I revised the scaling procesure of the graph to make it readable if this happens again.
from airiana.
Sorry for late reply. I attach the "data.log" file. I think it is easier if you look at it. The graph is normal now, but I hope you can find it out.
from airiana.
had a look thru of your data file, it seems that the systemair unit is reporting temperatures in excess of 4000C at a few points. The grey lines are the 1C step lines that get pushed together. I'm not sure why you are getting "hell-level" temperatures sometimes,
from airiana.
Thanks for your reply. Today in the nighttime I had the same insane temperatures for the inlet temperature. I am going to try the new fix you made today.
from airiana.
Now I think I have a problem with the humidity. It seems the calculated outside humidity is out of range. After a shower the fan do not go from low to high anymore.
from airiana.
something is very strange with your sensor data, the indoor temperature seems to have flat lined at 0.0C, this causes the humidity calculations to err. however the shower mode should still kick in as this is only dependent on the humidity sensor and that data looks intact. Have you tried rebooting the whole systemair unit?
from airiana.
added some fixes aswell, hopefull that this will take care of the flow offset printouts in the error log
from airiana.
Thanks again. I rebooted the VTR500 and the IAM and it seems this has helped. The graphs look correct now with outside temperature 8.9 degree and a humidity 30 % at 06:57.
from airiana.
however the shower mode should still kick in as this is only dependent on the humidity sensor and that data looks intact
The "Shower detections" is not working. After a shower the fans do not go from Low to High. I can not remember which commit made the problem, but it has worked. The reboot of the IAM and the fan has not helped either.
The calculated outside humidity is way off in the picture. It seems the data is to high so the graph starts to go above 100 %.
I have also in the err log a few times:
`Write error, no tries left on register:1403 None
:30:04 2022
I have now restarted Airiana service so the data.log do not have much data. I am going to attach the data.log later
from airiana.
Here are the data.log after running ./backup.py and the err file. I get a lot of:
`unable to ping, network error Fri Apr 29 11:11:08 2022
in the err file. Can this explain the missing relative humidity?
`
Airiana-data.log
RAM-data.log
err.txt
from airiana.
From the HA history graph it looks like the relative humidity is above 100 % two times.
from airiana.
Yes this happens when your unit starts to report zero values on extract temperature, very unclear why it shifts sometimes.
from airiana.
After a restart of the airiana service the values is back again to normal.
from airiana.
I am trying to do a fresh install of Airiana following your advice here: #22 (comment)
I know get an error with install.py
pi@airiana:~/Airiana $ sudo python3 install.py clean
Traceback (most recent call last):
File "/home/pi/Airiana/install.py", line 19, in <module>
user_id = pwd.pwuid()
AttributeError: module 'pwd' has no attribute 'pwuid'
pi@airiana:~/Airiana $
from airiana.
fix to pwuid is up,
just to explain some of your questions above, unable to ping means that the unit is not able to contact the internet and do a DNS lookup, "no internet connection".
The reason that the RH is above 100 is due to the fact that when it is receiving 0C as indoor temp, it calculates what the outside max possible RH level is expressed as a relation to the indoor temp. If the outdoor is higher than 0C this will result in a above 100% RH as the 0C would generate condensation if outside air were to move inside.
from airiana.
fix to pwuid is up,
The fix do not work for me.
pi@airiana:~/Airiana $ whoami
pi
pi@airiana:~/Airiana $ sudo python3 install.py clean
Traceback (most recent call last):
File "/home/pi/Airiana/install.py", line 19, in <module>
user_id = pwd.getpwuid()
TypeError: pwd.getpwuid() takes exactly one argument (0 given)
from airiana.
The reason that the RH is above 100 is due to the fact that when it is receiving 0C as indoor temp, it calculates what the outside max possible RH level is expressed as a relation to the indoor temp. If the outdoor is higher than 0C this will result in a above 100% RH as the 0C would generate condensation if outside air were to move inside.
Is this something you can fix in Airiana? Or is it something wrong with my fan or IAM?
Today my wife and I have showered twice. Airiana do not sense the high moisture in the bathroom and the fan does not change to high to lower the humidity.
from airiana.
I think Airiana configured my VTR500 fan to have airflow "Low" and "Temperature" 24 degree now. I want to have airflow Normal. How can I configure Airiana to use Normal as default?
I have tried Fanspeed Normal but it change back to Low.
from airiana.
quite the challange, I'm reluctant to blame hardware, I have however been unable to find a reasonable cause within the airiana code to explain the Zero temp issue. While reading above, did it clear the issue both by resetting the VTR unit or restarting airiana. if both are valid it must be something within the comms layer but I have no possibility to test this.
The shower issue is happening due to the zero temp causing the exchanger setting to turn on and off repetedly, It will detect that it is cold inside(0.0C) and then see that it is already at set temp for the supply line which will turn off the exchanger, this will set a hold off timer for all sensing for 10 min. this hold off timer causes airiana to not activate the shower mode.
To get to normal vent lvl you will need to toggle system auto to off and press the norm fanspeed button. this will however turn off all automated features.
When all is working as intended Airiana will use the norm setting when it reaches a high differential of the humidity, It will change the low flow settings dynamically to get a steady state for current humidity load of the indoor climate. So default for airiana is low if all metrics match up while dynamically changing this level when needed.
from airiana.
Noted that since we are getting the proper RH values I may be able to work around the shower issue but it will take a little time to figure out the actual implications of changing the logic. It may impact other things.
from airiana.
Sorry for late reply. I have been testing Home Assistant modbus sensor integration for trying to find out why the unit starts to report zero values from the extract temperature. This do not happen as a sensor in HA.
But I had problems with IAM reporting in the HA log it was busy. I have tried changing the ethernet cabel and not using a switch and using av delay in the config, but it did not help. After a while with troubleshooting I found out from the systemair documentation https://shop.systemair.com/upload/assets/SAVE_MODBUS_VARIABLE_LIST_20190116__REV__29_.PDF, I must have in the config the signal type used.
From the HA modbus doc https://www.home-assistant.io/integrations/modbus/, the Unsigned integers use data_type: uint16 and Signed integers use data_type: int16.
- name: "VTR500 Extract Air Temperature"
unit_of_measurement: °C
device_class: temperature
slave: 1
address: 12543
scale: 0.1
precision: 1
data_type: uint16
I tried to find in the airiana-core.py if unsigned integers is specified for address: 12543, but my knowledge in Python is not so good. The pymodbustcp libary have this documentation about this https://pymodbustcp.readthedocs.io/en/latest/quickstart/index.html#utils-module-modbus-data-mangling
So here comes the question. Could it be that pymodbustcp is reading wrong from address: 12543 and give zero or something else which airiana thinks is temperature 0 degree? Look here: sourceperl/pyModbusTCP#22
from airiana.
It is something wrong with my IAM I think. I thought I had solved the SlaveBusy error, but it comes back again.
Do you use a IAM to communicate?
from airiana.
from airiana.
I have a lot of "TCP read error on adresse" displayed in the webpage. This I have seen before. But know it verifies the communication problem with the IAM and the vtr500 when its logged.
The vtr500 modbus communication setting I use is:
Slave address: 1
Baud rate: 115200
Parity: None
Stop bits: 1
I do not know what baud rate the IAM use. It should be the same as the vtr500. Maybe it is wrong baud rate which gives communication problems?
pi@airiana:~/Airiana $ cat ./RAM/err
Using /dev/serial0
System started Sat May 21 11:27:22 2022
Traceback (most recent call last):
File "/home/pi/Airiana/airiana-core.py", line 1938, in
device = Systemair()
File "/home/pi/Airiana/airiana-core.py", line 470, in init
self.set_system_name()
File "/home/pi/Airiana/airiana-core.py", line 586, in set_system_name
self.system_name = self.system_types[req.response]
KeyError: 252
Using /dev/serial0
System started Sat May 21 11:27:23 2022
Savecair unit set
/usr/lib/python3/dist-packages/numpy/core/fromnumeric.py:3372: RuntimeWarning: Mean of empty slice.
return _methods._mean(a, axis=axis, dtype=dtype,
/usr/lib/python3/dist-packages/numpy/core/_methods.py:170: RuntimeWarning: invalid value encountered in double_scalars
ret = ret.dtype.type(ret / rcount)
cycle exchanger to: 0 Sat May 21 11:27:33 2022
Exchange set to 0 inlet>10C and extr above target Sat May 21 11:27:33 2022
json-writer error []
temp read error at: 3180C Sat May 21 11:28:37 2022
cycle exchanger to: 0 Sat May 21 11:28:38 2022
Pressure difference set to: 0% Sat May 21 11:28:38 2022
Cooling activated Sat May 21 11:28:40 2022
temp read error at: 3180C Sat May 21 11:29:32 2022
temp read error at: 3180C Sat May 21 11:29:37 2022
temp read error at: 3180C Sat May 21 11:29:42 2022
temp read error at: 3120C Sat May 21 11:29:52 2022
temp read error at: 3120C Sat May 21 11:29:52 2022
temp read error at: 3120C Sat May 21 11:30:02 2022
temp read error at: 3180C Sat May 21 11:30:07 2022
temp read error at: 3180C Sat May 21 11:30:07 2022
Traceback (most recent call last):
File "/home/pi/Airiana/airiana-core.py", line 2168, in
log = "echo "" + str(time.ctime()) + ":" + str(sender) + ":" + str(data) + "" >> netlog.log &"
NameError: name 'sender' is not defined
Traceback (most recent call last):
File "/home/pi/Airiana/./grapher.py", line 143, in
ax.set_xlim(min(time[-day:-1]), max(time[-day:-1]))
ValueError: min() arg is an empty sequence
temp read error at: 25.1C Sat May 21 11:33:28 2022
temp read error at: 3120C Sat May 21 11:34:17 2022
temp read error at: 3060C Sat May 21 11:34:52 2022
temp read error at: 3120C Sat May 21 11:35:27 2022
Changing fanspeed to:1 Sat May 21 11:37:24 2022
Cooling will wait, will try to recycle cold air by low fanspeed Sat May 21 11:37:25 2022
temp read error at: 1440C Sat May 21 11:38:17 2022
/home/pi/Airiana/./grapher.py:143: UserWarning: Attempting to set identical left == right == 470.3079504966736 results in singular transformations; automatically expanding.
ax.set_xlim(min(time[-day:-1]), max(time[-day:-1]))
/home/pi/Airiana/./grapher.py:165: UserWarning: Attempting to set identical left == right == 470.3079504966736 results in singular transformations; automatically expanding.
ax.set_xlim(min(time[-day:-1]), max(time[-day:-1]))
temp read error at: 1440C Sat May 21 11:39:22 2022
temp read error at: 1500C Sat May 21 11:39:32 2022
temp read error at: 1320C Sat May 21 11:40:42 2022
temp read error at: 1440C Sat May 21 11:41:57 2022
temp read error at: 1440C Sat May 21 11:42:37 2022
temp read error at: 24.8C Sat May 21 11:43:53 2022
temp read error at: 24.7C Sat May 21 11:44:48 2022
temp read error at: 1440C Sat May 21 11:45:17 2022
temp read error at: 1440C Sat May 21 11:45:22 2022
temp read error at: 1440C Sat May 21 11:45:32 2022
temp read error at: 1380C Sat May 21 11:45:37 2022
temp read error at: 1380C Sat May 21 11:45:47 2022
pi@airiana:~/Airiana $
from airiana.
I found the fault. It is not a problem with IAM, Airiana server or pymodbustcp.
It was the Deco M9 Plus wireless router I use as a ethernet switch to connect IAM through the wlan router ethernet port --> Deco Internet router. When I connect the IAM direct to the RJ-45 port in the wall without the Deco I do not get TCP read errors at all.
Without Deco as a switch (IAM direct to the RJ-45), here is a summery of things I have tried,
- It is not wrong baudrate. I have tried with 2700, 19200 and 115200 and I do not get TCP read errors at all.
- When I use the my wlan and not cable connect through the Deco wlan router I do not get TCP read errors. So it is a problem with the Deco ethernet port (it has two).
I think you can revert some of the debug code. Thank for your support and feedback .
pi@airiana:~/Airiana $ cat ./RAM/err
Using /dev/serial0
System started Sat May 21 13:08:39 2022
Savecair unit set
/usr/lib/python3/dist-packages/numpy/core/fromnumeric.py:3372: RuntimeWarning: Mean of empty slice.
return _methods._mean(a, axis=axis, dtype=dtype,
/usr/lib/python3/dist-packages/numpy/core/_methods.py:170: RuntimeWarning: invalid value encountered in double_scalars
ret = ret.dtype.type(ret / rcount)
Traceback (most recent call last):
File "/home/pi/Airiana/./grapher.py", line 143, in <module>
ax.set_xlim(min(time[-day:-1]), max(time[-day:-1]))
ValueError: min() arg is an empty sequence
json-writer error []
pi@airiana:~/Airiana $
from airiana.
I have a feature request. My vtr500 has Eco mode which I use from 23:00 to 06:00 to lower the temperature 3 degrees to save energy. Could this be implented in Airiana?
from airiana.
I have one more feature request if possible. Airiana report the power W.
It has been nice if we could also have the unit of measurement in watt hours or kilowatt hours. I know I can use the Rieman sum integration to sum up to kWh, but if this is possible in Airiana it has been nice. https://www.home-assistant.io/integrations/integration/
from airiana.
I think the calculation of kwh is wrong. In HA the kwh is really small.
- platform: mqtt
name: "Electric power total"
state_topic: "airiana"
unit_of_measurement: "kWh"
state_class: "total_increasing"
device_class: "energy"
value_template: "{{ value_json.electricPowerTotal }}"
kwh from air.out
"electricPowerTotal": 0.00033652760590360315}
I used a Fibaro powerplug to measure and calculate the kwh from 00:00 to 10:00. The kwh is more correct with the powerplug.
from airiana.
It is better to report the value as kWh instead of Wh and only have one decimal behind the comma.
"electricPowerTotal": 1899.71067318765
from airiana.
Completed transition to py3 for master branch, also includes user installation removing the need for root at install
from airiana.
Related Issues (20)
- New met.no forecast integration. HOT 1
- How to run on bare metal? HOT 2
- ModbusTCP gateway
- **Automation**
- ESP8266/ESP32 HOT 2
- New install fails to use RAM disk HOT 2
- Wifi reconfigure interface HOT 3
- New install - webserver does not start and RAM disk errors HOT 2
- Exhaust temp missing with VR400 HOT 2
- json-writer error [] HOT 13
- Airiana and polar nights HOT 2
- Water condensation on windows inside with VR400 HOT 4
- Since last version (python3 version) temperatures to HomeAssistant does no longer work with homeAss option. HOT 3
- Configuration interface.
- Installation oin a raspberry pi 4 with HA os HOT 9
- Docker Container HOT 2
- Get into trouble when installing HOT 3
- Modifying minimum air flow HOT 3
- Data output for browser side processing, HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from airiana.