Lock Him Up.

March 25th, 2025

So, after repeatedly chanting “Lock her up” because Hillary ran her own email server, Trump’s team has been caught using Signal for their war planning – and including journalists in the distribution list. The easy thing to say here is “Lock him up”. Trump should start every rally from now on with “Lock me up! Lock me up!”. It would be the appropraite thing to do in any case.. we can clarly see from $TRUMP that he’s totally ignoring the emoluments clause.

It’s scary, living under a rapidly deteriorating fascist dictatorship. It’s even scarier because so many right wingers are convincing themselves that it’s not really what’s going on. Partisan loyalty apparently includes ignoring bullying, bad behavior, ignoring the rule of law, etc.

I worry about leaving the country- I have plans to visit Iceland this summer, but Robert Reich points out Trump has disappeared people on their way into the country. Part of the problem here is that apparently there are large number of people just as awful as Trump and quite willing – even eager – to do his bidding and participate in evil.

Victron Energy munin plugins for Cerbo GX monitoring

February 28th, 2025

Charger amps


#!/usr/bin/perl

use Device::Modbus::TCP::Client;

my $client = Device::Modbus::TCP::Client->new(
host => ‘put your GX ip or name here’
);

$config = 1 if(“config” ~~ @ARGV);
$chargers = [ 223, 224, 226, 238, 239 ]; # devices

if($config) {
print “graph_title charger amps\n”;
print “graph_category victron\n”;
foreach $charger (@{$chargers}) {
print $charger . “_amps.label Amps\n”;
}
} else {
foreach $charger (@{$chargers}) {
my $req = $client->read_holding_registers( unit => $charger, address => 772, quantity => 1 );
$client->send_request($req) || die “Send error: $!”;
my $response = $client->receive_response;
print $charger . “_amps.value ” . uint16_to_int( @{$response->{‘message’}->{‘values’}}[0]) / 10 . “\n”;

}
}

sub uint16_to_int {
my $uint16 = shift;
return $uint16 > 0x7FFF ? $uint16 – 0x10000 : $uint16;
}

Charger overall power


#!/usr/bin/perl

use Device::Modbus::TCP::Client;

my $client = Device::Modbus::TCP::Client->new(
host => ‘put your GX ip or name here’
);

$config = 1 if(“config” ~~ @ARGV);

$chargers = [ 223, 224, 226, 238, 239 ]; # adjust with your actual list. See Settings -> Services -> Modbus for a list

if($config) {
print “graph_title charger total watts\n”;
print “graph_category victron\n”;
print “total_watts.label watts\n”;
} else {
my $total = 0;

foreach $charger (@{$chargers}) {
my $req = $client->read_holding_registers( unit => $charger, address => 789, quantity => 1 );
$client->send_request($req) || die “Send error: $!”;
my $response = $client->receive_response;
$total += uint16_to_int( @{$response->{‘message’}->{‘values’}}[0]) / 10;
}

print “total_watts.value $total\n”;
}

sub uint16_to_int {
my $uint16 = shift;
return $uint16 > 0x7FFF ? $uint16 – 0x10000 : $uint16;
}

Charger individual power


#!/usr/bin/perl

use Device::Modbus::TCP::Client;

my $client = Device::Modbus::TCP::Client->new(
host => ‘put your GX name or IP here’
);

$config = 1 if(“config” ~~ @ARGV);

$chargers = [ 223, 224, 226, 238, 239 ];

if($config) {
print “graph_title charger watts\n”;
print “graph_category victron\n”;
foreach $charger (@{$chargers}) {
print $charger . “_watts.label Amps\n”;
}
} else {
foreach $charger (@{$chargers}) {
my $req = $client->read_holding_registers( unit => $charger, address => 789, quantity => 1 );
$client->send_request($req) || die “Send error: $!”;
my $response = $client->receive_response;
print $charger . “_watts.value ” . uint16_to_int( @{$response->{‘message’}->{‘values’}}[0]) / 10 . “\n”;

}
}

sub uint16_to_int {
my $uint16 = shift;
return $uint16 > 0x7FFF ? $uint16 – 0x10000 : $uint16;
}

inverter state of charge


#!/usr/bin/perl

use Device::Modbus::TCP::Client;

my $client = Device::Modbus::TCP::Client->new(
host => ‘put your GX name or IP here’
);

$config = 1 if(“config” ~~ @ARGV);

my $req = $client->read_holding_registers( unit => 227, address => 30, quantity => 1 );

$client->send_request($req) || die “Send error: $!”;
my $response = $client->receive_response;

if($config) {
print “graph_title state of charge\n”;
print “graph_category victron\n”;
print “inv_soc.label SOC\n”;
} else {
print “inv_soc.value ” . uint16_to_int( @{$response->{‘message’}->{‘values’}}[0]) / 10 . “\n”;
}

sub uint16_to_int {
my $uint16 = shift;
return $uint16 > 0x7FFF ? $uint16 – 0x10000 : $uint16;
}

Inverter bus voltage


#!/usr/bin/perl
use Device::Modbus::TCP::Client;

my $client = Device::Modbus::TCP::Client->new(
host => ‘your GX device goes here’
);

$config = 1 if(“config” ~~ @ARGV);

my $req = $client->read_holding_registers( unit => 227, address => 26, quantity => 2 );

$client->send_request($req) || die “Send error: $!”;
my $response = $client->receive_response;

if($config) {
print “graph_title battery volts\n”;
print “graph_category victron\n”;
print “inv_volts.label Volts\n”;
} else {
print “inv_volts.value ” . @{$response->{‘message’}->{‘values’}}[0] /100 . “\n”;
}

Allen & Heath – getting static address off Dante card

February 28th, 2025

So, Dante should improve their controller so it is possible to reset the IP address of a card that isn’t in the current subnet – I’ll send them a email about that. But, for now, should you have a Dante card that you can’t talk to because it’s not on the same subnet you are, what you need to do in windows is get a newer version of the Dante client (4.4.2.2 or later), then set the subnet on the ethernet interface to be the same as your Dante controller’s subnet (which you will see in the network view or if you click on the red device in the device view). Now, you’ll have to guess at subnet mask, or use something like wireshark to see what broadcast address is being hit.

Once you’ve done all this, you should be able to set the controller back to DHCP.

Musk is a moron, and DOGE is a terrible cryptocurrency

February 2nd, 2025

So, one thing you can safely say about DOGE, the cryptocurrency. It is headed for zero. It has a *unlimited supply*, with a fairly high mint rate. It was originally intended as a joke.

One thing you can say about DOGE, the government agency, is it is also a terrible idea. Musk is the poster child for Dunning-Kruger – we’re talking about the guy who thought you could have a 600 mile long evacuated above ground tunnel, among other things. He also doesn’t understand that the more people you make homeless and hungry, the less wealth we as a species have. DOGE is also likely to destroy many useful functions that the government performs.. protecting our bank accounts, protecting us against bad loans, protecting us from e coli, protecting us from predatory corporations who otherwise would destroy all the land and poison all the water to make a few bucks.

Musk himself has says there will be some hardship. I vote all Musk’s money be taken away and he be forced to live with the hardships he is causing.

Do not trust Google

January 29th, 2025

I realize it’s going to take me some work to get my email all off of Google, not to mention all my drive documents and all the other things I’ve come to trust them for.

However, their choice to change the Gulf Of Mexico to the Gulf OF America indicates their willingness to kowtow to our current, obviously evil administration. The message is clear. They’ll probably give out information about you happily. They cannot be trusted.

Robert Reich and disturbing thoughts

January 29th, 2025

So, I’m having a very hard time taking Robert Reich seriously. He’s talking about oligarchy, but he’s clearly got no shortage of money and he does things like posting things on “How to stop trump” – that are behind a paywall. If making money is more important to him then stopping Trump, clearly he doesn’t really think Trump is the threat that he claims him to be.

In other, more disturbing thoughts, clearly Trump and the republicans do not plan on there being any more elections – or if there will be any, they will be heavily rigged. Otherwise they’d understand that we can now do everything they are doing.. that every check and balance they have smashed we can now ignore as well.

Dystopian nightmare

January 27th, 2025

So, I hear that Trump fired the federal judges that were investigating them. The president *should not have the power to fire judges*. The president should *be investigated for doing this*. Of course, we all know Trump belongs in the slammer and that the Republicans have become the most epicly corrupt party in American history – helped with a a nonstop lies and propaganda news network (Fox)

Republicans demonstrating their moronic tendencies

January 27th, 2025

So, Trump is talking about ending FEMA in favor of having individual states have their own emergency management systems. Now, this clearly is going to lead to a much less efficient system, because most of the time most states don’t need emergency management but when they do, they’re going to be in the middle of fires, hurricanes, etc.

Bear this in mind, Republicans.. as your house burns or is wiped away by hurricanes or whatever.. and it takes far longer than it used to to get help, and the help is less effective and less coordinated.. Trump is making things worse, because that’s what Republicans do, especially lately.

My hope is that all the many, many MAGA-ites being hurt by Dear Leader will remember getting their face eaten and in the future vote against right wing stupidity. Of course, odds are no, because Fox will continue to hold them in thrall.

Opposite of gratitude directed at Fender

January 22nd, 2025

Look.. guys.. let me spell it out for you. STOP ENGINEERING EVERY LAST PENNY OUT OF THE PRODUCT! You’re engineering away the shine, the reliability, the worth. Money isn’t worth it. You are selling your soul so your boss can drive a lambo that at some point will also be worthless because *their* engineers will make the same mistake.

Seriously.. this is a *guitar amp*, not a piece of bespoke stereo equipment that’s going to sit on the shelf somewhere. It’s going to get taken to bars, knocked over, have it’s instrument cable tripped over.. and that’s the world I *want* to live in. The one where all that happens, and the thing still works.

STOP IT WITH THE PLASTIC PCB 1/4″ FOR THE INSTRUMENT INPUT. I cannot POSSIBLY state this more clearly. Use a pigtail and a switchcraft jack. And a lock washer or two nuts while you’re at it.

In defense of some ideas that are anti the status quo

January 20th, 2025

#1: Property values – from my point of view, the sane person wants their property values to stay the same, or to go down. If you want your property values to go up, A: you hate your neighborhood and are planning on leaving B: you don’t want other people to be able to afford to live there C: possibly you’re doing two things which are a bad idea – 1) gauging your value as a person on your net worth and 2) including the value of your home in your assessment of your net worth – not only might you lose it at any time to the capricious whims of earth, but this encourages all kinds of unhealthy thinking surrounding the family unit – healthy families have more than a few people and the home may be owned amongst everyone or titled in one person’s name for convenience sake.

In any case, lowering property values is a good thing. Which is good, because I want to live in a neighborhood that looks lived in, with science projects and houses of all different colors and sports equipment and dogs and kids and general mayhem.

#2: The cheapest option is often *not* *the best. For example in southern california the argument against desal plants is often the cost of water. However, what SoCal is doing now will sooner or later lead to a catastrophe – indeed one could argue it already has (more on this in another post). SoCal should be self sufficient, water wise, and that is better than having the cheapest water.

#3: Ideally we would be getting rid of money in favor of a better system. Money, as I’ve discussed elsewhere, encourages bad decisions, some so bad that they may lead to the destruction of our species.

#4: We have undoubtedly made Earth too difficult. In general we should be thinking in every system how can we make this easier – how can we make less things illegal, how can we accept more people for who they are, how can we deprioritize GDP and prioritize health, happiness, and sanity.