• 0 Posts
  • 43 Comments
Joined 2 years ago
cake
Cake day: April 26th, 2023

help-circle






  • An engineer dabbling in such things explained to me, that it is hard enough to regulate a small island network frequency and voltage-wise from a single point. Reacting to whatever another source (something like another solar inverter out in the garden with a few panels of its own, e.g.) in the same island grid does could easily lead to potentially destructive oscillations in the regulation circuit. Large grids have “mass” - literally, because large generators and electric motors are spinning at whatever speed they are spinning in whatever phase they are in. So small disturbances from regulating too quickly or a little wrong just disappear into that. The same doesn’t go for a small island grid, so at Fronius they have decided to put 52Hz on the grid which by standard prevents other sources from syncing. Electric utilities do the same when they have to power small villages from diesel generators temporarily - 52Hz and the house mounted solar generators don’t sync.




  • I don’t know where you are

    Germany, 3-phase, 400V to the home is pretty much the standard here.

    We use split-phase, where we have two 120v lines that use a common neutral

    Yeah, yeah, I know. It was frustrating in the beginning of electric cars - all the manufacturers put those single phase chargers into their cars because US and Asia just didn’t need anything else and we were left bumbling along at 4.2kW charging to avoid too much asymmetric load (most providers here limit you to 20A asymmetry although I’ve been known not to give a fuck) while two wonderfully capable phases sat around doing nothing and the third was only used half the way at most.

    This is really where smart appliances should be heading.

    Yeah, that looks interesting, although it’s unusual to see any “intelligence” delegated to the panel housing. Usually here, the panel cabinet is something like this:

    https://files.catbox.moe/qjmpal.png

    …which is a mechanical housing and some very basic distribution on the lower left. Everything else is built while the distributor is fitted. Look like this in the end:

    https://files.catbox.moe/7u8yzm.jpg

    Anyway, you can get this functionality right now, for example with a go-e wallbox and the go-e controller and retrofit it without touching the rest. That’s not really a reason not to get an electric car.


  • Dunno. I’ve got 3 phase, 400V, 100A service which results in 68kW useable. However, because one of sub junction boxes which, unfortunately the wall boxes are connected to is wired internally with 10mm², I’ve enabled peer to peer load management across my wallboxes for now so they never pull more than 28A per phase. Most cars here support three phase charging so that’s still fine even for two cars. I’ll get to rewiring that, for now it works.

    The go-e wallboxes I have support a central controller which in turn can measure current on all three phases into the home, e.g. to use a solar system to its maximum, but also to limit absolute load on the house connection. They just use three hall sensors for power measurement as far as I know, so installation is relatively unintrusive.

    I went without that and solved the whole solar optimization using EVCC and regarding absolute load I’m just yoloing it, but then again, I do have a neat safety margin.




  • There’s readily available docker containers for it but I wanted to build it by hand. Well, more or less, Extremely hacky but it works, so fine for me.

    I started out with cheating and used this wrapper around wg-quick that gives us a persistent network namespace with the tunnel interface in it:

    https://github.com/dadevel/wg-netns

    cat /etc/systemd/system/wg-qbittorrent.service
    [Unit]
    Description=WireGuard Network Namespace for qBittorrent
    Wants=network-online.target nss-lookup.target
    After=network-online.target nss-lookup.target
    
    [Service]
    Type=oneshot
    Environment=WG_ENDPOINT_RESOLUTION_RETRIES=infinity
    Environment=WG_VERBOSE=1
    ExecStart=/opt/wg-netns/bin/wg-netns up /etc/wireguard/wgconfig.yaml
    ExecStop=/opt/wg-netns/bin/wg-netns down /etc/wireguard/wgconfig.yaml
    RemainAfterExit=yes
    
    WorkingDirectory=%E/wireguard
    ConfigurationDirectory=wireguard
    ConfigurationDirectoryMode=0700
    
    CapabilityBoundingSet=CAP_NET_ADMIN CAP_SYS_ADMIN
    LimitNOFILE=4096
    LimitNPROC=512
    LockPersonality=true
    MemoryDenyWriteExecute=true
    NoNewPrivileges=true
    ProtectClock=true
    ProtectHostname=true
    RemoveIPC=true
    RestrictAddressFamilies=AF_INET AF_INET6 AF_NETLINK
    RestrictNamespaces=mnt net
    RestrictRealtime=true
    RestrictSUIDSGID=true
    SystemCallArchitectures=native
    
    [Install]
    WantedBy=multi-user.target
    

    Then I built a static binary of qbittorrent using this really neat docker image: https://github.com/userdocs/qbittorrent-nox-static

    …and stuffed the result into a systemd service that runs it in the namespace wg-netns provides:

    cat /etc/systemd/system/qbittorrent-nox.service 
    
    [Unit]
    Description=qBittorrent-nox service
    Wants=network-online.target wg-qbittorrent.service 
    After=local-fs.target network-online.target nss-lookup.target wg-qbittorrent.service 
    
    [Service]
    Type=simple
    PrivateTmp=false
    #User=qbittorrent
    ExecStart=/usr/sbin/ip netns exec ns-qbittorrent sudo -u qbittorrent /opt/qbittorrent/qbittorrent-nox
    TimeoutStopSec=1800
    RestartSec=15
    RestartMaxDelaySec=600
    RestartSteps=10
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
    
    

    To get the webui out of that I stuck two instances of socat together at the stdout and from there it depends on whatever you want to use as a reverse proxy on the host - or you bind to a network interface if you trust the network:

    cat /etc/systemd/system/qbittorrent-webui.service 
    [Unit]
    Description=qBittorrent-nox webui forwarding into its namespace
    Wants=network-online.target wg-qbittorrent.service 
    After=local-fs.target network-online.target nss-lookup.target wg-qbittorrent.service 
    
    [Service]
    Type=simple
    PrivateTmp=false
    ExecStart=/opt/qbittorrent/forward-webinterface.sh
    TimeoutStopSec=1800
    Restart=always
    RestartSec=10
    
    [Install]
    WantedBy=multi-user.target
    
    cat /opt/qbittorrent/forward-webinterface.sh
    #!/bin/sh
    set -eu
    
    exec socat tcp6-listen:"8080",reuseaddr,fork,range=[::1]/128 "exec:ip netns exec ns-qbittorrent socat stdio 'tcp-connect:127.0.0.1:8080',nofork"
    
    

    Works, is reboot safe, stopped caring about beauty at that point.






  • No, my point is: using it as I described really saves money. The effective power price for my heat pump over the last year is at about 20% beneath market average because I use the thermal mass of my floors to store energy during low price hours. That needs to run automatically, controlling that by hand would be massively annoying or not possible at all when I’m not home.

    In addition, when one of our cars is started at one of our respective work carparks the hot water supply is checked and gets heated if it is below the necessary temperature for a shower. So either the day brought enough solar energy that it’s hot enough anyway or the water is heated very specifically for the after work shower for a person returning home. That prevents the heat pump from having to keep high temperatures all day in winter.

    The blinds follow the sun when the room temperatures pass 22°C and the solar panels deliver more than 2kW, because in that case it’s obviously sunny. Saves a lot of energy for the AC.

    All that saves way more than 100€/year, so remotely controllable fixtures stop being just a gadget when you start to think about the whole energy management in your house, is my point.