Raspberry Pi Alternatives

18 comments started 2022-09-11 last 2022-12-16
Home AutomationHome Assistant
#1 hoggy

Just a quick post to point out that as Raspberry Pi's are a bit hard to come by (& now expensive!) there are alternatives in using Thin Clients (saves them ending up in landfill)

I've spun up in 10mins Home Assistant on a Cheap x86/x64 Thin Client no issues using the generic images.

Instructions here but it really is a simple as flashing the image with BelenaEtcher with a flash source URL of:
https://github.com/home-assistant/operating-system/releases/download/8.5/haos_generic-x86-64-8.5.img.xz
onto an SSD & install into one of these

IF you don't already have a USB to Sata adapter then you will either need one or if you just want to get a feel for it a USB stick also works (but may end up corrupt in the long run with too much writing).
So long as whatever Thin Client you get supports UEFI booting you should be golden.

#2 Cdent

Thanks, I was looking for a Pi for ages but wasn't prepared to fork out £100+! Took your advice and bought a HP T520, loaded HassOS and got it all working in about 30 mins!

#3 hoggy

Good stuff, glad it worked. I couldn't justify the Pi cost and they couldn't give these thin clients away.
I've just got another for general server duty (8GB Ram & 64GB SSD all for £30!)
Here

I
#4 ispookie666

I have this running on a Server ( as Oracle VM Box Vitual manager). The server is pretty much functioning as a home storage and IP Camera DVR and was no brainer trying to add this on.

R
#5 Ra

Sorry for hijacking this thread, is there anyway of being able to see individual cell voltages without having to buy any equipment? Can I do it somehow just using my laptop and a bit of skullduggery?

Many thanks!

#6 TheDragon (GivEnergy)

Ra

Yes, install some virtualization, virtualBox is free, then in this install HomeAssistant x86 or x64 versions and GivTCP.

There will be other ways in Windows using Python @hoggy does it this way

R
#7 Ra

TheDragon (GivEnergy) Cheers, I'm really interested to see my cell voltages due to the reason you can probably guess...

Will have a poke around to see if it is something I can manage!! Cheers 🙂

#8 hoggy

Ra You don't need HA for GivTCP it's just what most use.
You can run it on windows fine using Docker Desktop & then just call up the runAll command.
It'll then spit out everything in a web page although it's heavy going to read through so I normally copy & paste into Json Path Finder

I did a guide here.
The auto find IP bit probably doesn't work anymore (as there's too many dongle variations now) so you will need to tell it your Inverter IP (you can find this out from the Givenergy app pretty easy) but it does run through how to set it up in Docker.

T
#9 Tim

Ra You can install docker on any platform and then run the container from that. If it's a permanent installation, then a dedicated box as @hoggy has suggested. If it's just something to have a play with, install docker on any Windows, Mac or Linux device, download the image and check the output with something like MQTT Explorer, also free.

I won't trivialise the process of installing docker, Givtcp and MQTT. It does take a while to get your head round the concepts.

@hoggy has a website with instructions on how to run from Windows powershell if you don't want to learn about docker and MQTT, although any command prompt can be daunting if you're not familiar. But don't be, just follow the instructions and you'll get there.

T
#10 Tim

hoggy You obviously type faster than me!

#11 hoggy

Note: EVEN if you use Home Assistant with GivTCP via addon you can still call up the browser JSON stuff as before:
Just change the below to whatever the IP address of your Home Assistant box is and your away:
e.g.
http://127.0.0.1:6345/runAll
or
http://127.0.0.1:6345/readData

Note: runAll forces a refresh every time you call it, readData uses cached values since last refresh (although this is often less than 10 seconds old data) it is bit easier on the inverter rather than pummelling it with further requests.

#12 hoggy

Tim No problem, glad people find it useful. I do need to get the time to update Terravolt stuff to keep up with latest bits but working in the energy sector this has proven difficult lately finding any spare time between keeping the lights on in our creaking grid!

#13 TheDragon (GivEnergy)

hoggy

I bet still a rewarding job nevertheless. I was wanting to work in teh energy sector before I got sucked in the defence sector, better money

#14 hoggy

TheDragon (GivEnergy) "Better Money" - I was reminded of this constantly throughout the weekend & yesterday while essentially working for free (Salary Employee downsides)
They all got double bubble and took great pleasure in rubbing it in - although it will all be remembered when the phone rings for the next job in the back of beyond...

A
#15 anglefire

hoggy I have a question for you regarding readData, runAll and getData

I run GIVtcp in a separate docker container and up until a week or so ago ran GIVTcp with runAll from Nodered to get the data. I thought that runAll polled the inverter via the API and that asked the inverter for all the data and pulled it back.
I thought readData just got it from the cache and relied on GIVtcp to self publish to the cache. I.e. if the inverter is not set to self publish, nothing happens.
getData just fills the cache but doesn't do anything else?
Is this a correct assumption?

A
#16 anglefire

@hoggy - I've re-read your post and that does seem to be what you suggest.

T
#17 Tim

anglefire runAll polled the inverter via the API

My understanding is that API calls speak to the Givenergy cloud whereas Givtcp uses Python to make Modbus over TCP directly to the local inverter via the dongle. I don't use getData in my Node-RED calls to Givtcp, I just use runAll every 20 seconds or so.

A
#18 anglefire

Tim Ah ok, wrong terms in use then!
I mean local polling via python and not API.
Since swapping to readData and GivTCP doing self polling rather then being called from NodeRed, that I've not seen the SOC freeze - could be coincidence of course!