Home Control, simple home automation control software for Pörssäri web service

I wrote a home automation control software for Pörssäri web service using 8th programming language. Pörssäri optimizes electricity usage by spot price, temperature and solar energy forecast. Idea is that only optimized schedules come from Pörssäri, everything else is done locally. Supports failsafe schedules that will automatically be used, if there are network problems. Automatically returns to normal operation after network connection is restored.

You need some low power Arm based SBC with RPI compatible GPIO header or UEXT connector. RTC-clock and GPU acceleration is recommended. GUI targets 1024x600 touchscreen but can run headless or RDP/VNC can be used.

Currently only supported relay board is MOD-IO2 from Olimex. Boards can be chained to get the required number of channels.

You may also need RPI-UEXT-MPQ adapter from Olimex.

Home Control, 8th source code.

Program also outputs debug logging information:

2025-12-22 22:39:56.948 <update> Trying to read schedules from internal DB.
2025-12-22 22:39:56.000 <update> No valid schedules found from internal DB.
2025-12-22 22:39:56.001 <update> Trying to fetch schedules from Pörssäri.
2025-12-22 22:40:03.893 <update> Success fetching schedules from Pörssäri.
2025-12-22 22:40:03.978 <scheduler> Rebuilding schedules.
2025-12-22 22:40:04.001 <scheduler> Rescheduling.
2025-12-22 22:40:04.001 <scheduler> Rescheduling.
2025-12-22 22:40:04.001 <scheduler> Rescheduling.
2025-12-22 22:40:04.001 <scheduler> Next scheduled event: 2025-12-23T18:45:00+02:00, channel: 1, state: 1.
2025-12-22 22:40:04.057 <scheduler> Rescheduling.
2025-12-22 22:40:04.057 <scheduler> Rescheduling.
2025-12-22 22:40:04.057 <scheduler> Rescheduling.
2025-12-22 22:40:04.057 <scheduler> Rescheduling.
2025-12-22 22:40:04.057 <scheduler> Rescheduling.
2025-12-22 22:40:04.057 <scheduler> Rescheduling.
2025-12-22 22:40:04.057 <scheduler> Rescheduling.
2025-12-22 22:40:04.057 <scheduler> Next scheduled event: 2025-12-23T03:30:00+02:00, channel: 2, state: 1.
2025-12-22 22:40:04.057 <scheduler> Rescheduling.
2025-12-22 22:40:04.057 <scheduler> Rescheduling.
2025-12-22 22:40:04.057 <scheduler> Next scheduled event: 2025-12-23T03:30:00+02:00, channel: 2, state: 1.
2025-12-22 22:40:04.058 <update> Next update at: 2025-12-23T14:37:57+02:00.

While I dont think I’ll use this as I have a 5 year contract with a supplier for a fixed price I’m curious about the rationale for this project

How does this help you ?
Does it power down devices when prices are high then power them back up when they are low or ???

I mainly use it to optimize usage and costs of electric heating with reserving capability but it could also be used to optimize car charging and solar power production for an example.

What ever it does, it is what it is. An 8th Program. See, he wants to present the work he is proud of and I got before a while that this is extremely important for him. So I am happy to read about 8th language.

That this language is not wide in use is not from interest for him. Like for many others which are presenting their work and their languages. So: we have to accept what it is. You could try to read the sourcecode. I hopy you may have fun with it.

Actually, the idea is that the program needs just minimal configuration information: Pörssäri device id, dst-zone, I2C number and array of addresses for relay boards. All the actual setup is done using Pörssäri web service. After that program works autonomously and user can forget about it.

Ah electric heat
So can you charge something local when prices are low then use that when prices are high ?

Oh I wasnt going to read the code
I truly dislike Forth after my few forays into it many years ago rewriting some open firmware code for a device the company I worked for produced
I’m ok leaving that to someone else :slight_smile: