Giter Club home page Giter Club logo

Comments (78)

overas avatar overas commented on June 30, 2024 2

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.

BeamCtrl avatar BeamCtrl commented on June 30, 2024 1

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.

BeamCtrl avatar BeamCtrl commented on June 30, 2024 1

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.

BeamCtrl avatar BeamCtrl commented on June 30, 2024 1

Nice, progress, I can recomend using the mqtt option to integrate with homeAssistant, gives out more entities.
E7BF5623-EE64-425E-893C-32BA5EF84417

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.

BeamCtrl avatar BeamCtrl commented on June 30, 2024 1

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.

BeamCtrl avatar BeamCtrl commented on June 30, 2024 1

I have a new commit up with some retry logic on TCP writes. commit: fbaf77a

from airiana.

BeamCtrl avatar BeamCtrl commented on June 30, 2024 1

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.

BeamCtrl avatar BeamCtrl commented on June 30, 2024 1

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.

BeamCtrl avatar BeamCtrl commented on June 30, 2024 1

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.

BeamCtrl avatar BeamCtrl commented on June 30, 2024 1

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.

BeamCtrl avatar BeamCtrl commented on June 30, 2024 1

tnx for reporting now fixed properly, was a mistake on my part.

from airiana.

BeamCtrl avatar BeamCtrl commented on June 30, 2024 1

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.

BeamCtrl avatar BeamCtrl commented on June 30, 2024 1

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.

BeamCtrl avatar BeamCtrl commented on June 30, 2024 1

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.

BeamCtrl avatar BeamCtrl commented on June 30, 2024 1

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.

BeamCtrl avatar BeamCtrl commented on June 30, 2024 1

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.

BeamCtrl avatar BeamCtrl commented on June 30, 2024 1

Corrected the caculation it was wrong and note that the power unit is in Wh

from airiana.

BeamCtrl avatar BeamCtrl commented on June 30, 2024

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.

BeamCtrl avatar BeamCtrl commented on June 30, 2024

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.

overas avatar overas commented on June 30, 2024

Great. I am going to install python3-migration this weekend.

from airiana.

overas avatar overas commented on June 30, 2024

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
image

from airiana.

BeamCtrl avatar BeamCtrl commented on June 30, 2024

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.

overas avatar overas commented on June 30, 2024

Thanks. I going to try execute as root.

from airiana.

overas avatar overas commented on June 30, 2024

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.

overas avatar overas commented on June 30, 2024

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.

image

image

image

image

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.

overas avatar overas commented on June 30, 2024

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
pi@airiana:
/Airiana-python3-migration $ cat ./RAM/err

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
-6.132610392555334e-08 0.01
pi@airiana:
/Airiana-python3-migration $

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:

from airiana.

BeamCtrl avatar BeamCtrl commented on June 30, 2024

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.

overas avatar overas commented on June 30, 2024

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
Testing Non-savecair address 101:
Testing savecair address 12543:
Request object Failed communications test.
st.
pi@airiana:
/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.

overas avatar overas commented on June 30, 2024

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
Testing Non-savecair address 101:0
Testing savecair address 12543:222
Request object Passed communications test.
pi@airiana:
/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.

BeamCtrl avatar BeamCtrl commented on June 30, 2024

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.

overas avatar overas commented on June 30, 2024

Output from ./watch and ./RAM/out
2022-03-12-110416_1920x1080_scrot

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.

BeamCtrl avatar BeamCtrl commented on June 30, 2024

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.

overas avatar overas commented on June 30, 2024

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

Airiana controller 12-03-2021

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?

Screenshot from 2022-03-12 18-31-44

from airiana.

overas avatar overas commented on June 30, 2024

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.

overas avatar overas commented on June 30, 2024

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.

BeamCtrl avatar BeamCtrl commented on June 30, 2024

new commit up that tries to readout the set data and if failing to set, retries. commit 8a12e7e

from airiana.

overas avatar overas commented on June 30, 2024

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.

overas avatar overas commented on June 30, 2024

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 $ 

Screenshot from 2022-03-13 14-57-54

from airiana.

overas avatar overas commented on June 30, 2024

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.

overas avatar overas commented on June 30, 2024

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.

overas avatar overas commented on June 30, 2024

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.

image

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

overas avatar overas commented on June 30, 2024

Has something changed with the temperature picture in the webpage? The picture has on the left side black bars which is not pretty.

image

from airiana.

BeamCtrl avatar BeamCtrl commented on June 30, 2024

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.

BeamCtrl avatar BeamCtrl commented on June 30, 2024

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.

overas avatar overas commented on June 30, 2024

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?

image

from airiana.

BeamCtrl avatar BeamCtrl commented on June 30, 2024

from airiana.

overas avatar overas commented on June 30, 2024

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.

overas avatar overas commented on June 30, 2024

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.

image

from airiana.

BeamCtrl avatar BeamCtrl commented on June 30, 2024

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.

overas avatar overas commented on June 30, 2024

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.

data.log

from airiana.

BeamCtrl avatar BeamCtrl commented on June 30, 2024

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.

overas avatar overas commented on June 30, 2024

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.

image

from airiana.

overas avatar overas commented on June 30, 2024

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.

image

data 22-04-2022.log

from airiana.

BeamCtrl avatar BeamCtrl commented on June 30, 2024

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?

graph from your data,
image

from airiana.

BeamCtrl avatar BeamCtrl commented on June 30, 2024

added some fixes aswell, hopefull that this will take care of the flow offset printouts in the error log

from airiana.

overas avatar overas commented on June 30, 2024

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.

image
data 23-04-2022.log

image

from airiana.

overas avatar overas commented on June 30, 2024

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

data.log
request.log
err.txt

from airiana.

overas avatar overas commented on June 30, 2024

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.

overas avatar overas commented on June 30, 2024

From the HA history graph it looks like the relative humidity is above 100 % two times.

image

from airiana.

BeamCtrl avatar BeamCtrl commented on June 30, 2024

Yes this happens when your unit starts to report zero values on extract temperature, very unclear why it shifts sometimes.

from airiana.

overas avatar overas commented on June 30, 2024

After a restart of the airiana service the values is back again to normal.

image

from airiana.

overas avatar overas commented on June 30, 2024

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.

BeamCtrl avatar BeamCtrl commented on June 30, 2024

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.

overas avatar overas commented on June 30, 2024

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.

overas avatar overas commented on June 30, 2024

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.

image

from airiana.

overas avatar overas commented on June 30, 2024

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.

BeamCtrl avatar BeamCtrl commented on June 30, 2024

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.

BeamCtrl avatar BeamCtrl commented on June 30, 2024

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.

overas avatar overas commented on June 30, 2024

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.

image

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.

overas avatar overas commented on June 30, 2024

It is something wrong with my IAM I think. I thought I had solved the SlaveBusy error, but it comes back again.

image

Do you use a IAM to communicate?

from airiana.

BeamCtrl avatar BeamCtrl commented on June 30, 2024

from airiana.

overas avatar overas commented on June 30, 2024

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.

image

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.

overas avatar overas commented on June 30, 2024

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 $

image

from airiana.

overas avatar overas commented on June 30, 2024

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?

image

from airiana.

overas avatar overas commented on June 30, 2024

I have one more feature request if possible. Airiana report the power W.

image

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.

overas avatar overas commented on June 30, 2024

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 }}"

image

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

from airiana.

overas avatar overas commented on June 30, 2024

It is better to report the value as kWh instead of Wh and only have one decimal behind the comma.

"electricPowerTotal": 1899.71067318765
image

from airiana.

BeamCtrl avatar BeamCtrl commented on June 30, 2024

Completed transition to py3 for master branch, also includes user installation removing the need for root at install

from airiana.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.