Search
1000 results for “0x0”
-
I'm in a shitty situation cuz I'm out of a job and I'm still waiting for benefits. I need around 20 $/€ to buy meds cuz I'm running pretty low on them. I'd highly appreciate any help.
#mutualaid #mutual_aid
Stripe
https://buy.stripe.com/4gM5kC25333ydAdg7H8k800
Ko-fi
https://ko-fi.com/dushman
XMR
45c4zrZVirKVJKf7e6pFL7jhcqXCKmxQtKLhMKFEo6oS6EqLayLkPpVBDYbSojFVg7ThRAMq4EyCcNCAUaWpc52RB46UXon
LTC
Lgs56FDbtAvBUxbQ9CDKSAbid77G3N6zaP
BTC
bc1q38ezmgwsnrhz8dl27pzs8cxgfjd6xet5q0nkk8
ETH
0x0Fc2d15C6789aF251eD67d33a22eC8724B731a30 -
I'm in a shitty situation cuz I'm out of a job and I'm still waiting for benefits. I need around 20 $/€ to buy meds cuz I'm running pretty low on them. I'd highly appreciate any help.
#mutualaid #mutual_aid
Stripe
https://buy.stripe.com/4gM5kC25333ydAdg7H8k800
Ko-fi
https://ko-fi.com/dushman
XMR
45c4zrZVirKVJKf7e6pFL7jhcqXCKmxQtKLhMKFEo6oS6EqLayLkPpVBDYbSojFVg7ThRAMq4EyCcNCAUaWpc52RB46UXon
LTC
Lgs56FDbtAvBUxbQ9CDKSAbid77G3N6zaP
BTC
bc1q38ezmgwsnrhz8dl27pzs8cxgfjd6xet5q0nkk8
ETH
0x0Fc2d15C6789aF251eD67d33a22eC8724B731a30 -
Got the keyboard vfd to do custom character glyphs :)
Following little bit of userland cpp code does the thing when my dekokbd kernel driver is loaded:
happy_sad.cpp
```
#include <filesystem>
#include <fstream>
#include <iostream>
#include <stdexcept>static const std::filesystem::path devicePath{"/dev/dekovfd"};
unsigned char glyph_smile[8] = {
0b11011,
0b11011,
0b00000,
0b00000,
0b11111,
0b01110,
0b00000,
0b00000
};unsigned char glyph_frown[8] = {
0b11011,
0b11011,
0b00000,
0b00000,
0b01110,
0b11011,
0b00000,
0b00000
};enum class VfdBrightness : char {
Dim = 0x03,
Medium = 0x02,
Bright = 0x01,
VeryBright = 0x00
};/// Clears the screen of the VFD display.
void clear_screen(std::ofstream& deviceStream)
{
deviceStream << "\xe4\x01";
}/// Sends cursor to row 1, line 1.
void cursor_home(std::ofstream& deviceStream)
{
deviceStream << "\xe4\x02";
}/// Moves cursor left 1 space.
void cursor_left(std::ofstream& deviceStream)
{
deviceStream << "\xe4\x10";
}/// Moves cursor right 1 space.
void cursor_right(std::ofstream& deviceStream)
{
deviceStream << "\xe4\x14";
}/**
* Sends the cursor to a specific position.
*
* @param deviceStream the device to write to.
* @param y Should be either 0 or 1.
* @param x Visible characters range between 0 and 19,
* but there's a hidden buffer behind it up to 39
* (useful for scroll effects or instant paging).
*/
void gotoxy(std::ofstream& deviceStream, int x, int y)
{
unsigned char address{};
if (x < 0) x = 0;
if (x > 39) x = 39;
address = y <= 0 ? 0x80 + x : 0xc0 + x;
deviceStream << "\xe4" << static_cast<char>(address);
}/**
* Shifts the entire contents of the vfd display to the left.
*
* It will also shift the hidden off-screen buffer onto the
* screen this way.
*/
void shift_display_left(std::ofstream& deviceStream)
{
deviceStream << "\xe4\x18";
}/**
* Shifts the entire contents of the vfd display to the left.
*
* It will also shift screen contents into the hidden off-screen
* buffer this way.
*/
void shift_display_right(std::ofstream& deviceStream)
{
deviceStream << "\xe4\x1c";
}/// Turns the vfd display on.
void display_on(std::ofstream& deviceStream)
{
deviceStream << "\xe4\x0c";
}/// Makes the cursor visible on the vfd display.
void cursor_on(std::ofstream& deviceStream)
{
deviceStream << "\xe4\x0e";
}/// Makes the cursor visible and makes it blink.
void cursor_on_blinking(std::ofstream& deviceStream)
{
deviceStream << "\xe4\x0f";
}/// Turns the vfd display off.
void display_off(std::ofstream& deviceStream)
{
deviceStream << "\xe4\x08";
}/**
* Enable 8-bits per character mode.
*
* The display can also operate in a 4-bits per character
* mode, and when it's in that mode, you'll get garbage on the
* screen when trying to write normal text. This forces the
* vfd into normal 8-bit mode.
*/
void display_8bit(std::ofstream& deviceStream)
{
deviceStream << "\xe4\x38";
deviceStream << "\xe4\x38";
deviceStream << "\xe4\x38";
}/**
* Set vfd display brightness.
*
* @param deviceStream the device to write to.
* @param brightness The desired screen brightness.
*/
void display_brightness(std::ofstream& deviceStream, VfdBrightness brightness)
{
deviceStream << "\xe4\x38\xe6" << static_cast<const char>(brightness);
}/**
* Stores a custom glyph in one of the 8 UDF slots.
*
* @param deviceStream The device to write to.
* @param slot The custom character slot (0 through 7, the vfd can store up to 8 custom glyphs)
* @param data A pointer to 8 bytes of pixel data (5 bits used per byte)
*/
void define_custom_char(std::ofstream& deviceStream, int slot, const unsigned char* data)
{
std::string buff{};if (slot < 0 || slot > 7)
{
throw std::runtime_error("Invalid slot passed to define_custom_char().");
}buff.reserve(18);
buff.push_back('\xe4');
buff.push_back(static_cast<char>(0x40 + (slot * 8)));for (int i = 0; i < 8; ++i)
{
buff.push_back('\xe6');
buff.push_back(static_cast<char>(data[i]));
}
deviceStream.write(buff.data(), buff.size());
}/// Entry point
int main(int argc, char* argv[])
{if (!std::filesystem::exists(devicePath))
{
std::cerr << devicePath.string() << " does not exist." << std::endl;
return 1;
}std::ofstream deviceStream(devicePath);
if (!deviceStream.is_open())
{
std::cerr << "Could not open " << devicePath.string() << "\n";
return 1;
}/* This is a bit of an initialization dance, to make sure everything works
no matter what state the vfd is in.
First we mke sure the display is in 8-bit character mode instead of the
weird 4-bit character mode, then we make sure the display is on, and has
the right brightness set etc... */
display_8bit(deviceStream);
display_on(deviceStream);
display_brightness(deviceStream, VfdBrightness::VeryBright);
deviceStream.flush();define_custom_char(deviceStream, 1, glyph_smile);
define_custom_char(deviceStream, 2, glyph_frown);
deviceStream.flush();clear_screen(deviceStream);
cursor_home(deviceStream);
deviceStream.flush();deviceStream << "Happy: (\1)";
gotoxy(deviceStream, 0, 1);
deviceStream << "Sad: (\2)";return 0;
}```
-
For anyone else capturing #USB on #macOS on Apple Silicon:
It does work, you just have to disable SIP entirely first (individual flags don't work, needcsrutil disable)
You need to manually set the correct interface up, e.g.sudo ifconfig XHC2 upFor identifying a specific device, the easiest way is to correlate with IORegistryExplorer.
For example:iPhone@02100000
^
XHC interfaceOnce you start the capture in Wireshark, you can filter to just that device using
usb.darwin.location_id == 0x02100000 -
For anyone else capturing #USB on #macOS on Apple Silicon:
It does work, you just have to disable SIP entirely first (individual flags don't work, needcsrutil disable)
You need to manually set the correct interface up, e.g.sudo ifconfig XHC2 upFor identifying a specific device, the easiest way is to correlate with IORegistryExplorer.
For example:iPhone@02100000
^
XHC interfaceOnce you start the capture in Wireshark, you can filter to just that device using
usb.darwin.location_id == 0x02100000 -
I'm in a shitty situation cuz I'm out of a job and I'm still waiting for benefits. I need around 25 $/€ to buy meds cuz I'm running pretty low on them. I'd highly appreciate any help.
#mutualaid #mutual_aid
Stripe
https://buy.stripe.com/4gM5kC25333ydAdg7H8k800
Ko-fi
https://ko-fi.com/dushman
XMR
45c4zrZVirKVJKf7e6pFL7jhcqXCKmxQtKLhMKFEo6oS6EqLayLkPpVBDYbSojFVg7ThRAMq4EyCcNCAUaWpc52RB46UXon
LTC
Lgs56FDbtAvBUxbQ9CDKSAbid77G3N6zaP
BTC
bc1q38ezmgwsnrhz8dl27pzs8cxgfjd6xet5q0nkk8
ETH
0x0Fc2d15C6789aF251eD67d33a22eC8724B731a30 -
I'm in a shitty situation cuz I'm out of a job and I'm still waiting for benefits. I need around 25 $/€ to buy meds cuz I'm running pretty low on them. I'd highly appreciate any help.
#mutualaid #mutual_aid
Stripe
https://buy.stripe.com/4gM5kC25333ydAdg7H8k800
Ko-fi
https://ko-fi.com/dushman
XMR
45c4zrZVirKVJKf7e6pFL7jhcqXCKmxQtKLhMKFEo6oS6EqLayLkPpVBDYbSojFVg7ThRAMq4EyCcNCAUaWpc52RB46UXon
LTC
Lgs56FDbtAvBUxbQ9CDKSAbid77G3N6zaP
BTC
bc1q38ezmgwsnrhz8dl27pzs8cxgfjd6xet5q0nkk8
ETH
0x0Fc2d15C6789aF251eD67d33a22eC8724B731a30 -
I'm in a shitty situation cuz I'm out of a job and I'm still waiting for benefits. I need around 25 $/€ to buy meds cuz I'm running pretty low on them. I'd highly appreciate any help.
#mutualaid #mutual_aid
Stripe
https://buy.stripe.com/4gM5kC25333ydAdg7H8k800
Ko-fi
https://ko-fi.com/dushman
XMR
45c4zrZVirKVJKf7e6pFL7jhcqXCKmxQtKLhMKFEo6oS6EqLayLkPpVBDYbSojFVg7ThRAMq4EyCcNCAUaWpc52RB46UXon
LTC
Lgs56FDbtAvBUxbQ9CDKSAbid77G3N6zaP
BTC
bc1q38ezmgwsnrhz8dl27pzs8cxgfjd6xet5q0nkk8
ETH
0x0Fc2d15C6789aF251eD67d33a22eC8724B731a30 -
I'm in a rough spot since the job market is fucked and I can't find any work rn, I need funds for food, meds and rent. I'm pretty bogged down with debt too. Help a dushy out. Would also appreciate job offers for sysadmin or programming positions if you have any.
#mutualaid #mutual_aid #getfedihired
Stripe
https://buy.stripe.com/4gM5kC25333ydAdg7H8k800
Ko-fi
https://ko-fi.com/dushman
XMR
45c4zrZVirKVJKf7e6pFL7jhcqXCKmxQtKLhMKFEo6oS6EqLayLkPpVBDYbSojFVg7ThRAMq4EyCcNCAUaWpc52RB46UXon
LTC
Lgs56FDbtAvBUxbQ9CDKSAbid77G3N6zaP
BTC
bc1q38ezmgwsnrhz8dl27pzs8cxgfjd6xet5q0nkk8
ETH
0x0Fc2d15C6789aF251eD67d33a22eC8724B731a30 -
I'm in a rough spot since the job market is fucked and I can't find any work rn, I need funds for food, meds and rent. I'm pretty bogged down with debt too. Help a dushy out. Would also appreciate job offers for sysadmin or programming positions if you have any.
#mutualaid #mutual_aid #getfedihired
Stripe
https://buy.stripe.com/4gM5kC25333ydAdg7H8k800
Ko-fi
https://ko-fi.com/dushman
XMR
45c4zrZVirKVJKf7e6pFL7jhcqXCKmxQtKLhMKFEo6oS6EqLayLkPpVBDYbSojFVg7ThRAMq4EyCcNCAUaWpc52RB46UXon
LTC
Lgs56FDbtAvBUxbQ9CDKSAbid77G3N6zaP
BTC
bc1q38ezmgwsnrhz8dl27pzs8cxgfjd6xet5q0nkk8
ETH
0x0Fc2d15C6789aF251eD67d33a22eC8724B731a30 -
I'm in a rough spot since the job market is fucked and I can't find any work rn, I need funds for food, meds and rent. I'm pretty bogged down with debt too. Help a dushy out. Would also appreciate job offers for sysadmin or programming positions if you have any.
#mutualaid #mutual_aid #getfedihired
Stripe
https://buy.stripe.com/4gM5kC25333ydAdg7H8k800
Ko-fi
https://ko-fi.com/dushman
XMR
45c4zrZVirKVJKf7e6pFL7jhcqXCKmxQtKLhMKFEo6oS6EqLayLkPpVBDYbSojFVg7ThRAMq4EyCcNCAUaWpc52RB46UXon
LTC
Lgs56FDbtAvBUxbQ9CDKSAbid77G3N6zaP
BTC
bc1q38ezmgwsnrhz8dl27pzs8cxgfjd6xet5q0nkk8
ETH
0x0Fc2d15C6789aF251eD67d33a22eC8724B731a30 -
#mutualaid #mutual_aid
I'm in a rough spot rn cuz of debt and high rent, been barely staying afloat. I got no permanent job or neetbucks, shit sucks. Would appreciate any donations or job offers for a sysadmin position cuz I'm struggling with paying off my debts and bills. Also need some scratch to buy meds.
Stripe
https://buy.stripe.com/4gM5kC25333ydAdg7H8k800
Ko-fi
https://ko-fi.com/dushman
XMR
45c4zrZVirKVJKf7e6pFL7jhcqXCKmxQtKLhMKFEo6oS6EqLayLkPpVBDYbSojFVg7ThRAMq4EyCcNCAUaWpc52RB46UXon
LTC
Lgs56FDbtAvBUxbQ9CDKSAbid77G3N6zaP
BTC
bc1q38ezmgwsnrhz8dl27pzs8cxgfjd6xet5q0nkk8
ETH
0x0Fc2d15C6789aF251eD67d33a22eC8724B731a30
USDT
0x0Fc2d15C6789aF251eD67d33a22eC8724B731a30
USDC
0x0Fc2d15C6789aF251eD67d33a22eC8724B731a30
:jokergirl: -
#mutualaid #mutual_aid
I'm in a rough spot rn cuz of debt and high rent, been barely staying afloat. I got no permanent job or neetbucks, shit sucks. Would appreciate any donations or job offers for a sysadmin position cuz I'm struggling with paying off my debts and bills. Also need some scratch to buy meds.
Stripe
https://buy.stripe.com/4gM5kC25333ydAdg7H8k800
Ko-fi
https://ko-fi.com/dushman
XMR
45c4zrZVirKVJKf7e6pFL7jhcqXCKmxQtKLhMKFEo6oS6EqLayLkPpVBDYbSojFVg7ThRAMq4EyCcNCAUaWpc52RB46UXon
LTC
Lgs56FDbtAvBUxbQ9CDKSAbid77G3N6zaP
BTC
bc1q38ezmgwsnrhz8dl27pzs8cxgfjd6xet5q0nkk8
ETH
0x0Fc2d15C6789aF251eD67d33a22eC8724B731a30
USDT
0x0Fc2d15C6789aF251eD67d33a22eC8724B731a30
USDC
0x0Fc2d15C6789aF251eD67d33a22eC8724B731a30
:jokergirl: -
#mutualaid #mutual_aid
I'm in a rough spot rn cuz of debt and high rent, been barely staying afloat. I got no permanent job or neetbucks, shit sucks. Would appreciate any donations or job offers for a sysadmin position cuz I'm struggling with paying off my debts and bills. Also need some scratch to buy meds.
Stripe
https://buy.stripe.com/4gM5kC25333ydAdg7H8k800
Ko-fi
https://ko-fi.com/dushman
XMR
45c4zrZVirKVJKf7e6pFL7jhcqXCKmxQtKLhMKFEo6oS6EqLayLkPpVBDYbSojFVg7ThRAMq4EyCcNCAUaWpc52RB46UXon
LTC
Lgs56FDbtAvBUxbQ9CDKSAbid77G3N6zaP
BTC
bc1q38ezmgwsnrhz8dl27pzs8cxgfjd6xet5q0nkk8
ETH
0x0Fc2d15C6789aF251eD67d33a22eC8724B731a30
USDT
0x0Fc2d15C6789aF251eD67d33a22eC8724B731a30
USDC
0x0Fc2d15C6789aF251eD67d33a22eC8724B731a30
:jokergirl: -
#mutualaid #mutual_aid
I'm in a rough spot rn cuz of debt and high rent, been barely staying afloat. I got no permanent job or neetbucks, shit sucks. Would appreciate any donations or job offers for a sysadmin position cuz I'm struggling with paying off my debts and bills. Also need some scratch to buy meds.
Stripe
https://buy.stripe.com/4gM5kC25333ydAdg7H8k800
Ko-fi
https://ko-fi.com/dushman
XMR
45c4zrZVirKVJKf7e6pFL7jhcqXCKmxQtKLhMKFEo6oS6EqLayLkPpVBDYbSojFVg7ThRAMq4EyCcNCAUaWpc52RB46UXon
LTC
Lgs56FDbtAvBUxbQ9CDKSAbid77G3N6zaP
BTC
bc1q38ezmgwsnrhz8dl27pzs8cxgfjd6xet5q0nkk8
ETH
0x0Fc2d15C6789aF251eD67d33a22eC8724B731a30
USDT
0x0Fc2d15C6789aF251eD67d33a22eC8724B731a30
USDC
0x0Fc2d15C6789aF251eD67d33a22eC8724B731a30
:jokergirl: -
Hello fedi!
I have an .MVAX #firmware #update file for an MV Silicon chip (unknown model).
Has someone already encountered those? And if yes, is there some documentation, tooling or existing #ReverseEngineering work done of that format?
For the record, the file magic (first 6 bytes) is as follow:
4D 56 B5 58 05 01 13 00And the end of the file contains the following:
MVSKeyFileMVBP10 0x90 0xBE SIMPLEs
0x D3 0x9A . 0x90 0xD9
MVSILICONKEYFL
0x00 0x00 0xFF 0xBD 0x00 0x00Thanks in advance for your help!!
#embedded #mcu #blob #fileformat #FileFormatAnalysis #binary #extraction
-
**Integrating Deye EV charger to Home Assistant**TL;DR
It works, somehow, via ha-solarman integration.
Charger type: Deye SUN-EVSE22K01-EU-AC
What works
I managed to integrate 2 entities for now:
- EV charger control power
- Max EV charging power
The process
I’ve started with David Rapan’s ha-solarman integration which works well with my Deye inverter (SUN-12K-SG04LP3-EU).
Then I edited config/custom_components/solarman/inverter_definitions/deye_p3.yaml and added:
#EV test - group: EV Charger items: - name: "EV Charge Control Power" l: 1 class: "power" state_class: "measurement" uom: "W" rule: 1 scale: 1 registers: [0x02C5] icon: "mdi:car-electric" - name: EV Max Charge power alt: EV Max Charge power platform: number class: "power" state_class: "measurement" uom: "W" scale: 1 rule: 1 registers: [0x0104] configurable: min: 0 max: 22000 range: min: 0 max: 22000Restarted HA and those 2 entities appeared in solarman device:
Both entities show the same data as Deye’s app. I can set EV Max Charging Power and it will reflect in the app and the inverter.
About “EV Charge Control Power” entity – Inverter tells the charger what is the max allowed charging power (for example, how much is the solar power excess).
Today it changed like this: (it was cloudy and I had ‘solar only’ enabled):
Don’t mind the initial spike, I wrongly set the scale factor (x10).
I call it partial success.
What doesn’t work (yet)
I still didn’t find modbus register for the most important entity: actual charging power. If exists at all. Maybe there is no mapping from EV charger to modbus registers. I’m communicating with Deye tech support, but I didn’t get the answer yet. Though, they sent me an updated modbus registers document.
I’m still working on EV charger configuration settings (Solar only, Grid off–>Charger Off, Free work, EV port Load/Grid). I found the register in Deye docs, but haven’t implemented yet (some bit manipulation needed):
AddrRegister meaningR/Wdata rangeunitnote259EV_charge_modeR/W[0x0,0xFFFF]
High 8 bits: Off grid SOC Low 8 bits: Bit0:solar energy only Bit1:free work Bit4:EV_charge device connet at Grid port Bit5:EV_charge device connect at LD portAnyone?
If anyone knows which register holds actual charging power value, consumption, charging schedules, please let me know.
https://blog.rozman.info/integrating-deye-ev-charger-to-home-assistant/ #deye #evcharger #homeassistant -
**Integrating Deye EV charger to Home Assistant**TL;DR
Integration of Deye EV charger to HA works (somehow) via ha-solarman integration (EV control power, Max. charging power) and parsing of EV charger local admin web page + Command line HA integration to get realtime charging power and energy.
Charger type: Deye SUN-EVSE22K01-EU-AC, connected to Deye’s inverter via LoRa and Wifi.
What works
I managed to integrate 2 entities via ha-solarman/modbus for now:
Via Solarman/modbus registers:
- EV charger control power
- Max EV charging power
And also (via scraping of EV charger admin web page + Command line HA integration):
- L1 Power
- L2 Power
- L3 Power
The process (reading modbus registers)
I’ve started with David Rapan’s ha-solarman integration which works well with my Deye inverter (SUN-12K-SG04LP3-EU).
Then I edited config/custom_components/solarman/inverter_definitions/deye_p3.yaml and added:
#EV test - group: EV Charger items: - name: "EV Charge Control Power" l: 1 class: "power" state_class: "measurement" uom: "W" rule: 1 scale: 1 registers: [0x02C5] icon: "mdi:car-electric" - name: EV Max Charge power alt: EV Max Charge power platform: number class: "power" state_class: "measurement" uom: "W" scale: 1 rule: 1 registers: [0x0104] configurable: min: 0 max: 22000 range: min: 0 max: 22000Restarted HA and those 2 entities appeared in solarman device:
Both entities show the same data as Deye’s app. I can set EV Max Charging Power and it will reflect in the app and the inverter.
About “EV Charge Control Power” entity – Inverter tells the charger what is the max allowed charging power (for example, how much is the solar power excess).
Today the control power swinged like this: (it was cloudy and I had ‘solar only’ enabled):
Don’t mind the initial spike, I wrongly set the scale factor (x10).
I call it partial success.
What doesn’t work (yet) via solarman/modbus
I still didn’t find modbus register for the most important entity: actual charging power. If exists at all. Maybe there is no mapping from EV charger to modbus registers. I’m communicating with Deye tech support, but I didn’t get the answer yet. Though, they sent me an updated modbus registers document.
I’m still working on EV charger configuration settings (Solar only, Grid off–>Charger Off, Free work, EV port Load/Grid). I found the register in Deye docs, but haven’t implemented yet (some bit manipulation needed):
AddrRegister meaningR/Wdata rangeunitnote259EV_charge_modeR/W[0x0,0xFFFF]
High 8 bits: Off grid SOC Low 8 bits: Bit0:solar energy only Bit1:free work Bit4:EV_charge device connet at Grid port Bit5:EV_charge device connect at LD portAnyone?
If anyone knows which modbus register holds actual charging power value, consumption, charging schedules, please let me know.
Workaround – getting data from EV charger via http / local web interface
Anyways, while waiting for Deye’s support to answer me which modbus registers contain actual charging power, I managed to get these numbers by parsing the EV charger’s web interface.
- I wrote a little curl script to get L1, L2 and L3 power from charger’s web interface. I found they’re hidden besides webdata_power1,2,3 variables:
get_EV_power.sh file:
#!/bin/sh DATA=$(curl -u user:pass -s http://EV_CHARGER_IP_ADDR/status.html) P1=$(echo "$DATA" | sed -n 's/.*webdata_power1[[:space:]]*=[[:space:]]*"\([0-9]\+\)".*/\1/p') P2=$(echo "$DATA" | sed -n 's/.*webdata_power2[[:space:]]*=[[:space:]]*"\([0-9]\+\)".*/\1/p') P3=$(echo "$DATA" | sed -n 's/.*webdata_power3[[:space:]]*=[[:space:]]*"\([0-9]\+\)".*/\1/p') echo "${P1:-0},${P2:-0},${P3:-0}"This script returns power of 3 phases in format X, Y, Z. The reason to put all three values together is to make only one http request instead of 3 (one for each phase).
2. Made it executable: chmod +x get_EV_power.sh
3. I put this script in Home Assistant’s directory /config/scripts/get_EV_power.sh
4. created new Command line sensor in my configuration yaml that executes the script above:
command_line: - sensor: name: EV Charger Raw command: "/config/scripts/get_EV_power2.sh" scan_interval: 10Then I added 3 sensors for each phase’s power and one combined sensor (summary charging power):
template: - sensor: - name: EV Power L1 state: "{{ states('sensor.ev_charger_raw').split(',')[0] | int }}" unit_of_measurement: "W" device_class: power state_class: measurement - name: EV Power L2 state: "{{ states('sensor.ev_charger_raw').split(',')[1] | int }}" unit_of_measurement: "W" device_class: power state_class: measurement - name: EV Power L3 state: "{{ states('sensor.ev_charger_raw').split(',')[2] | int }}" unit_of_measurement: "W" device_class: power state_class: measurement #summary charging power - name: EV Charger Power device_class: power state_class: measurement unit_of_measurement: "W" state: > {{ states('sensor.ev_power_l1') | int(0) + states('sensor.ev_power_l2') | int(0) + states('sensor.ev_power_l3') | int(0) }}5. Created a dashboard for tracking charging power:
6. Added my power sensor to Powercalc, to calculate the energy (using integration) needed for charging (kWh) and let it create some helpers: daily, weekly, monthly, yearly consumption.
7. Added power consumption to my power and energy dashboards:
Conclusion
Anyways, it works, now I can track the (almost realtime) power and consumption of the EV charger, which was the main goal.
The integration of Deye’s EV charger to HA could be easier, if Deye disclosed all inverter’s modbus registers OR provided a documented local API to the EV charger.
I wonder if companies that produce IoT aren’t aware that if they make the access to their devices easy for tinkerers like me, this is free marketing / recommendation for them. I would never recommend devices with closed local access to anyone.
Deye’s openness is so-so. It definitely could be improved. The local access is at least somehow possible, but not well documented and hacky.
https://blog.rozman.info/integrating-deye-ev-charger-to-home-assistant/ #deye #evcharger #homeassistant -
**Integrating Deye EV charger to Home Assistant**TL;DR
It works, somehow, via ha-solarman integration.
Charger type: Deye SUN-EVSE22K01-EU-AC
What works
I managed to integrate 2 entities for now:
- EV charger control power
- Max EV charging power
The process
I’ve started with David Rapan’s ha-solarman integration which works well with my Deye inverter (SUN-12K-SG04LP3-EU).
Then I edited config/custom_components/solarman/inverter_definitions/deye_p3.yaml and added:
#EV test - group: EV Charger items: - name: "EV Charge Control Power" l: 1 class: "power" state_class: "measurement" uom: "W" rule: 1 scale: 1 registers: [0x02C5] icon: "mdi:car-electric" - name: EV Max Charge power alt: EV Max Charge power platform: number class: "power" state_class: "measurement" uom: "W" scale: 1 rule: 1 registers: [0x0104] configurable: min: 0 max: 22000 range: min: 0 max: 22000Restarted HA and those 2 entities appeared in solarman device:
Both entities show the same data as Deye’s app. I can set EV Max Charging Power and it will reflect in the app and the inverter.
About “EV Charge Control Power” entity – Inverter tells the charger what is the max allowed charging power (for example, how much is the solar power excess).
Today it changed like this: (it was cloudy and I had ‘solar only’ enabled):
Don’t mind the initial spike, I wrongly set the scale factor (x10).
I call it partial success.
What doesn’t work (yet)
I still didn’t find modbus register for the most important entity: actual charging power. If exists at all. Maybe there is no mapping from EV charger to modbus registers. I’m communicating with Deye tech support, but I didn’t get the answer yet. Though, they sent me an updated modbus registers document.
I’m still working on EV charger configuration settings (Solar only, Grid off–>Charger Off, Free work, EV port Load/Grid). I found the register in Deye docs, but haven’t implemented yet (some bit manipulation needed):
AddrRegister meaningR/Wdata rangeunitnote259EV_charge_modeR/W[0x0,0xFFFF]
High 8 bits: Off grid SOC Low 8 bits: Bit0:solar energy only Bit1:free work Bit4:EV_charge device connet at Grid port Bit5:EV_charge device connect at LD portAnyone?
If anyone knows which register holds actual charging power value, consumption, charging schedules, please let me know.
https://blog.rozman.info/integrating-deye-ev-charger-to-home-assistant/ #deye #evcharger #homeassistant -
**Integrating Deye EV charger to Home Assistant**TL;DR
It works, somehow, via ha-solarman integration.
Charger type: Deye SUN-EVSE22K01-EU-AC
What works
I managed to integrate 2 entities for now:
- EV charger control power
- Max EV charging power
The process
I’ve started with David Rapan’s ha-solarman integration which works well with my Deye inverter (SUN-12K-SG04LP3-EU).
Then I edited config/custom_components/solarman/inverter_definitions/deye_p3.yaml and added:
#EV test - group: EV Charger items: - name: "EV Charge Control Power" l: 1 class: "power" state_class: "measurement" uom: "W" rule: 1 scale: 1 registers: [0x02C5] icon: "mdi:car-electric" - name: EV Max Charge power alt: EV Max Charge power platform: number class: "power" state_class: "measurement" uom: "W" scale: 1 rule: 1 registers: [0x0104] configurable: min: 0 max: 22000 range: min: 0 max: 22000Restarted HA and those 2 entities appeared in solarman device:
Both entities show the same data as Deye’s app. I can set EV Max Charging Power and it will reflect in the app and the inverter.
About “EV Charge Control Power” entity – Inverter tells the charger what is the max allowed charging power (for example, how much is the solar power excess).
Today it changed like this: (it was cloudy and I had ‘solar only’ enabled):
Don’t mind the initial spike, I wrongly set the scale factor (x10).
I call it partial success.
What doesn’t work (yet)
I still didn’t find modbus register for the most important entity: actual charging power. If exists at all. Maybe there is no mapping from EV charger to modbus registers. I’m communicating with Deye tech support, but I didn’t get the answer yet. Though, they sent me an updated modbus registers document.
I’m still working on EV charger configuration settings (Solar only, Grid off–>Charger Off, Free work, EV port Load/Grid). I found the register in Deye docs, but haven’t implemented yet (some bit manipulation needed):
AddrRegister meaningR/Wdata rangeunitnote259EV_charge_modeR/W[0x0,0xFFFF]
High 8 bits: Off grid SOC Low 8 bits: Bit0:solar energy only Bit1:free work Bit4:EV_charge device connet at Grid port Bit5:EV_charge device connect at LD portAnyone?
If anyone knows which register holds actual charging power value, consumption, charging schedules, please let me know.
https://blog.rozman.info/integrating-deye-ev-charger-to-home-assistant/ #deye #evcharger #homeassistant -
**Integrating Deye EV charger to Home Assistant**TL;DR
It works, somehow, via ha-solarman integration.
Charger type: Deye SUN-EVSE22K01-EU-AC
What works
I managed to integrate 2 entities for now:
- EV charger control power
- Max EV charging power
The process
I’ve started with David Rapan’s ha-solarman integration which works well with my Deye inverter (SUN-12K-SG04LP3-EU).
Then I edited config/custom_components/solarman/inverter_definitions/deye_p3.yaml and added:
#EV test - group: EV Charger items: - name: "EV Charge Control Power" l: 1 class: "power" state_class: "measurement" uom: "W" rule: 1 scale: 1 registers: [0x02C5] icon: "mdi:car-electric" - name: EV Max Charge power alt: EV Max Charge power platform: number class: "power" state_class: "measurement" uom: "W" scale: 1 rule: 1 registers: [0x0104] configurable: min: 0 max: 22000 range: min: 0 max: 22000Restarted HA and those 2 entities appeared in solarman device:
Both entities show the same data as Deye’s app. I can set EV Max Charging Power and it will reflect in the app and the inverter.
About “EV Charge Control Power” entity – Inverter tells the charger what is the max allowed charging power (for example, how much is the solar power excess).
Today it changed like this: (it was cloudy and I had ‘solar only’ enabled):
Don’t mind the initial spike, I wrongly set the scale factor (x10).
I call it partial success.
What doesn’t work (yet)
I still didn’t find modbus register for the most important entity: actual charging power. If exists at all. Maybe there is no mapping from EV charger to modbus registers. I’m communicating with Deye tech support, but I didn’t get the answer yet. Though, they sent me an updated modbus registers document.
I’m still working on EV charger configuration settings (Solar only, Grid off–>Charger Off, Free work, EV port Load/Grid). I found the register in Deye docs, but haven’t implemented yet (some bit manipulation needed):
AddrRegister meaningR/Wdata rangeunitnote259EV_charge_modeR/W[0x0,0xFFFF]
High 8 bits: Off grid SOC Low 8 bits: Bit0:solar energy only Bit1:free work Bit4:EV_charge device connet at Grid port Bit5:EV_charge device connect at LD portAnyone?
If anyone knows which register holds actual charging power value, consumption, charging schedules, please let me know.
https://blog.rozman.info/integrating-deye-ev-charger-to-home-assistant/ #deye #evcharger #homeassistant -
Okay so. #AnimalCrossingNewHorizon shit! To recap, basically all on-screen text is stored in MSBT files. I think that's Message Studio Binary Tagged or sumth?
Basically, every line has an ID, is stored in UTF-16 (I think that's a header flag), and can contain tags. Tags are a 0x000E value followed by a function, sub-function, and argument count in bytes.
Got all that so far?
-
🚀🌟 Welcome to GitHub's latest #carnival, where #AI writes your code, deploys your apps, and probably tucks you in at night too. 🤖💤 With an epic lineup of buzzwords like "Copilot" and "Spark," it's like a party where everyone's a guest but no one remembers why they're there. 🌀🎉
https://github.com/0x0mer/CasNum #GitHub #Copilot #TechBuzz #CodeDeployment #HackerNews #ngated -
Hello and welcome to the first #nakeddiefriday of this spring. Today we have a family visit; I got several dies from the same manufacturer which is Starchip. I know, hardly heard of them, but they seem to make smartcard chips. They use manufacturer code 0x0081 in CPLC data.
The first on is SCF384G, dated 2010. A couple memory arrays, an area at the top where unknown things happen (probably power regulation), and a sea of gates in bottom right. There are also two smaller unbonded pads right next to it.
-
@basilbasilbasil found something on Europeana this morning. BL Stowe MS 1067: a 12th-century bestiary from the British Library. The Physiologus tradition: each animal is a word in a moral grammar. Pelican = self-sacrifice. Phoenix = resurrection. The illustration serves the meaning, not the zoology.
Our attractor bestiary has the same structure. The gyre isn’t spinning. The isthmus isn’t land. But the names make the topology meaningful. Both are grammar books for what forms emerge from specific conditions.
https://iiif.bl.uk/uv/#?manifest=https://bl.digirati.io/iiif/ark:/81055/vdc_100056068493.0x000001
#GenerativeArt #StrangeAttractors #Bestiary #Europeana -
I need #NetApp #FollowerPower...
I've got a disk that fell out of the storage accidentally after I moved the system inside of the rack. i.e.: the disk popped out and when the shelf was powered on again, it detected missing disk.
When pushing the disk back in and fastened it again, the system don't want to unfail the disk again.
Putting the SAS disk into a Linux box fails as well, because 520bytes vs. 512bytes.... yada, yada...
Any tips how to deal with that situation?
PS: under Linux I get this error when I put the disk in:
megaraid_sas 0000:0b:00.0: 305268 (825169084s/0x0002/FATAL) - Unable to access device PD 18(e0x08/s11)
The disk is then not recognized by the system (no /dev/sg* device, not listed by lsscsi).
-
Previously Unknown Medieval Chronicle Discovered
A newly discovered chronicle from the early eighth century is giving medieval historians a rare new window onto the political shocks and religious debates that reshaped the eastern Mediterranean in the decades before and after the rise of Islam.
https://www.medievalists.net/2026/02/previously-unknown-medieval-chronicle-discovered/
More articles about Maronite Chronicle of 713:
https://medievalworlds.net/0xc1aa5572_0x004102d6.pdf -
Да... Это BSoD... Это не фотошоп, клянусь.
Да, это из-за #OOM.
Никита такое видит в первый раз в жизни. Никита всё ещё могётКомпьютер был перезагружен после критической ошибки. Код ошибки: 0x00000051 (0x0000000000000011, 0xffffa908331610a0, 0x0000000000000000, 0x0000000000000000).
Дамп памяти сохранен в: C:\Windows\MEMORY.DMP. Код отчета: 4711e0a5-ec2b-4c3c-b11c-434dbcc41597. -
Well, the drive is barely limping along but not quite dead yet. I have a replacement arriving tonight, though.
Apparently a
191 G-Sense_Error_Rateof 365621 is kind of high, as is the187 Reported_Uncorrectof 9.Annoyingly, #smartctl didn't alert me to any errors until it lost communication with the drive entirely.
SMART results for anyone curious:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 1 Raw_Read_Error_Rate 0x000f 081 064 044 Pre-fail Always - 122031443 3 Spin_Up_Time 0x0003 089 088 000 Pre-fail Always - 0 4 Start_Stop_Count 0x0032 100 100 020 Old_age Always - 189 5 Reallocated_Sector_Ct 0x0033 100 100 010 Pre-fail Always - 0 7 Seek_Error_Rate 0x000f 076 060 045 Pre-fail Always - 44359102 9 Power_On_Hours 0x0032 023 023 000 Old_age Always - 67754 (130 186 0) 10 Spin_Retry_Count 0x0013 100 100 097 Pre-fail Always - 0 12 Power_Cycle_Count 0x0032 100 100 020 Old_age Always - 128 184 End-to-End_Error 0x0032 100 100 099 Old_age Always - 0 187 Reported_Uncorrect 0x0032 091 091 000 Old_age Always - 9 188 Command_Timeout 0x0032 100 099 000 Old_age Always - 65539 189 High_Fly_Writes 0x003a 100 100 000 Old_age Always - 0 190 Airflow_Temperature_Cel 0x0022 069 042 040 Old_age Always - 31 (Min/Max 29/31) 191 G-Sense_Error_Rate 0x0032 001 001 000 Old_age Always - 365621 192 Power-Off_Retract_Count 0x0032 100 100 000 Old_age Always - 301 193 Load_Cycle_Count 0x0032 099 099 000 Old_age Always - 2959 194 Temperature_Celsius 0x0022 031 058 000 Old_age Always - 31 (0 18 0 0 0) 195 Hardware_ECC_Recovered 0x001a 005 001 000 Old_age Always - 122031443 197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always - 0 198 Offline_Uncorrectable 0x0010 100 100 000 Old_age Offline - 0 199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 0 240 Head_Flying_Hours 0x0000 100 253 000 Old_age Offline - 67416 (4 170 0) 241 Total_LBAs_Written 0x0000 100 253 000 Old_age Offline - 6290749324399 242 Total_LBAs_Read 0x0000 100 253 000 Old_age Offline - 6777561571545The drive itself is a #Seagate EXOS ST8000NM0105.
#zfs #raid #selfhosted #homeserver -
Well, the drive is barely limping along but not quite dead yet. I have a replacement arriving tonight, though.
Apparently a
191 G-Sense_Error_Rateof 365621 is kind of high, as is the187 Reported_Uncorrectof 9.Annoyingly, #smartctl didn't alert me to any errors until it lost communication with the drive entirely.
SMART results for anyone curious:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 1 Raw_Read_Error_Rate 0x000f 081 064 044 Pre-fail Always - 122031443 3 Spin_Up_Time 0x0003 089 088 000 Pre-fail Always - 0 4 Start_Stop_Count 0x0032 100 100 020 Old_age Always - 189 5 Reallocated_Sector_Ct 0x0033 100 100 010 Pre-fail Always - 0 7 Seek_Error_Rate 0x000f 076 060 045 Pre-fail Always - 44359102 9 Power_On_Hours 0x0032 023 023 000 Old_age Always - 67754 (130 186 0) 10 Spin_Retry_Count 0x0013 100 100 097 Pre-fail Always - 0 12 Power_Cycle_Count 0x0032 100 100 020 Old_age Always - 128 184 End-to-End_Error 0x0032 100 100 099 Old_age Always - 0 187 Reported_Uncorrect 0x0032 091 091 000 Old_age Always - 9 188 Command_Timeout 0x0032 100 099 000 Old_age Always - 65539 189 High_Fly_Writes 0x003a 100 100 000 Old_age Always - 0 190 Airflow_Temperature_Cel 0x0022 069 042 040 Old_age Always - 31 (Min/Max 29/31) 191 G-Sense_Error_Rate 0x0032 001 001 000 Old_age Always - 365621 192 Power-Off_Retract_Count 0x0032 100 100 000 Old_age Always - 301 193 Load_Cycle_Count 0x0032 099 099 000 Old_age Always - 2959 194 Temperature_Celsius 0x0022 031 058 000 Old_age Always - 31 (0 18 0 0 0) 195 Hardware_ECC_Recovered 0x001a 005 001 000 Old_age Always - 122031443 197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always - 0 198 Offline_Uncorrectable 0x0010 100 100 000 Old_age Offline - 0 199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 0 240 Head_Flying_Hours 0x0000 100 253 000 Old_age Offline - 67416 (4 170 0) 241 Total_LBAs_Written 0x0000 100 253 000 Old_age Offline - 6290749324399 242 Total_LBAs_Read 0x0000 100 253 000 Old_age Offline - 6777561571545The drive itself is a #Seagate EXOS ST8000NM0105.
#zfs #raid #selfhosted #homeserver