Hi jzuffere, did you had any luck since december ?
I also have an AM550 from SIE Lausanne and I only get binary data. I tried with the SlimmeLezer and with a direct serial connection to a computer. No luck atm.
Not yet, no. But still in contact with SIE on this topic. However, it looks like we’ll need to be patient as they are a bit underwater these times…
If you cannot wait, I suggest to take a look at the Shelly 3EM, a relatively low-cost alternative that interfaces very well to Home assistant, Solar Manager and alike.
By the way, I got a Slimmelezer working perfectly fine with an ENSOR meter provided by SEVJ at la Vallée de Joux.
Hi Jeremie,
I added the ESPHome to home assistant and used the integration from Sylvain_Baron.p1reader to get it working on p1 port with slimmlezer device. it is working with esphome 2022.11.4 version as the new version of esphome has API key integrated, I have not spent time to figure that one out yet.
Let me know if you are interested to have the code.
you need to get the image file from slimmlezer website and load it with usb-c cable and esphome
@sybaron3 and anybody else in this topic. How does the AM550 communicates on the P1 port in Switzerland? Does it use DSMR as in the Nordic countries or is it DLMS to use a secure connection?
If it is DLMS, does it use any authentication or can you read basic data without that?
Thanks for the answers!
Hello,
I have an Iskra AM550 meter from Romande Energie.
On P1 port :
-Serial is 115200-8-n-1.
-Data format is hdlc.
I managed to read and get datas with this Python script :
https://github.com/Gurux/Gurux.DLMS.Python/tree/master/Gurux.DLMS.Push.Listener.Example.python
But it is pretty complex and I don’t understant everything. I wish I could decode it an easier way…
Receiving raw frame is easy. Decoding it to get values isn’t…
Any simple idea or format explanation ?
The article in this comment summs it up:
Otherwise from a Github repo’s read me references in the comments of the aforementioned article (belongs to the author of the article).
Be warned that the DLMS protocol stack is created by a succession
of morons, doing one stupid thing after another for several decades.
This is DLMS Green book for reference:
And the Blue Book:
Hi Adam,
Could you explain in more details what you did to make it work ?
Should we flash the SlimmeLezer with a specific firmware (which one) ? Then use the P1read.yaml configuration ?
Thanks if you can provide some details if you succeeded to make it work !
Hi @sybaron3,
Could you provide more details how you made it work ? I am trying to use the SlimmeLezer+ to read data from ISKRA AM450 meter, but no luck so far…
Thanks if you can help !
@malonip, which country are you from? If from the EU then the DSO should provide you information how is the meter communicates. There is an EU directive (2019/944) which regulates what information should be provided to the end customer (Article 20). It should be implemented already in the local law as well.
Otherwise it depends on the meter’s firmware and settings how it communicates, what protocol does it use and what information does it provide in what frequency. Also, the P1 port should be activated as well to be able to use it. That should be activated either locally through the optical port by a service man or remotely by the DSO or on the DSO’s self service website if any. (Some DSOs allow these options through their metering and billing website.)
Also if encryption is used, you will need decipher key, if authentication is used (DLMS/COSEM), then you will need the username/password as well.
Most of the cases what I read about, the P1 port is either not encrypted, like in the Netherlands by the DSMR standard, or uses encryption (AES128) which can easily decrypted by the device with the decipher key. (Actually encryption is required by the EU directive for privacy reasons.)
Hi @GSzabados,
I am in Switzerland (French part).Our power company is Romande Energie/SIE. It seems that @sybaron3 and @asturges79 found a way to configure a Slimmelezer to work on the P1 port of the IKRA AM550 meter. It is why I was asking. Not sure they needed a decryption key at the end, but they may answer…
With the Slimmelezer out-of-the-box, the telegrams are not readable as is.
You can give a try to this old (and removed) project.
https://web.archive.org/web/20201121021717/https://github.com/saghonfly/shrdzm/releases
As I understand it can read the telegrams and display them as it is. Look at the picture.
@AdmiralStipe can confirm how it is working as he uses it with an Iskra AM550 in Slovenia.
And once you are sure what are the telegrams then you can update the p1meter description. My guess that is only the modification what @sybaron3 implemented. I couldn’t compare the original and his code as I am using my phone.
Thanks @GSzabados !
I am not skilled enough to analyze the telegrams and understand anything about them
Anyway, I’ve done the setup proposed by @sybaron3 with his p1reader.h code and p1reader.yaml configuration. Unfortunately, this doesn’t work and no valid frames can be captured by the Slimmelezer, see following screenshot:
Still stuck on the problem
The code is really specific there what it tries to read from the P1 port. You should first try to get a full message, then try to adjust the code according that.
By the regularity it seems to be the P1 port is outputting data. But I am a bit confused by some of the error messages. Especially the expected 12 bytes and received 16. When I looked at the code it seemed to me that is specifically reading 12 byte…
You’re right, the code is really specific… I will try to figure it out…
Hello
Someone managed to obtain usable data of the P1 port of a IKRA AM55 from the SIL?
Regards
Hello please find below the code for switzerland
substitutions:
device_name: slimmelezer
device_description: “DIY P1 module to read your smart meter”
esphome:
name: ${device_name}
comment: “${device_description}”
platform: ESP8266
esp8266_restore_from_flash: true
board: d1_mini
name_add_mac_suffix: false
project:
name: "Sylvain_hack.p1reader"
version: "0.1"
includes:
- p1reader.h
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
MAC Address: C8:C9:A3:7C:19:C7
Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: ${device_name}
ap_timeout: 15s
password: !secret fallback_password
captive_portal:
Enable logging
logger:
level: VERBOSE
level: INFO
baud_rate: 0 # disable logging over uart
baud_rate: 0
Enable Home Assistant API
api:
password: !secret hass_api_password
ota:
password: !secret ota_password
web_server:
port: 80
globals:
-
id: has_key
type: bool
restore_value: yes
initial_value: “false”
-
id: stored_decryption_key
type: char[32]
restore_value: yes
dsmr:
id: dsmr_instance
For Luxembourg users set here your decryption key.
Enable this when using decryption for Luxembourg;
key looks like ‘00112233445566778899AABBCCDDEEFF’
#decryption_key: !secret decryption_key
Enable Home Assistant API
#api:
password: !secret hass_api_password
uart:
id: uart_bus
tx_pin: D8
rx_pin: D7
baud_rate: 115200
rx_buffer_size: 256
data_bits: 8
parity: NONE
stop_bits: 1
sensor:
-
platform: custom
lambda: |-
auto meter_sensor = new P1Reader(id(uart_bus));
App.register_component(meter_sensor);
return {
meter_sensor->momentaryActiveImport, meter_sensor->momentaryActiveExport, meter_sensor->cumulativeActiveImport, meter_sensor->cumulativeActiveExport, meter_sensor->cumulativeActiveImportTarif1, meter_sensor->cumulativeActiveImportTarif2, meter_sensor->cumulativeActiveExportTarif1, meter_sensor->cumulativeActiveExportTarif2, meter_sensor->voltageL1, meter_sensor->voltageL2, meter_sensor->voltageL3, meter_sensor->currentL1, meter_sensor->currentL2, meter_sensor->currentL3
};
sensors:
-
name: “Momentary Import”
unit_of_measurement: W
state_class: measurement
device_class: power
-
name: “Momentary Export”
unit_of_measurement: W
state_class: measurement
device_class: power
-
name: “Total Import”
unit_of_measurement: kWh
state_class: total_increasing
device_class: energy
-
name: “Total Export”
unit_of_measurement: kWh
state_class: total_increasing
device_class: energy
-
name: “Total Import T1”
unit_of_measurement: kWh
state_class: total_increasing
device_class: energy
-
name: “Total Import T2”
unit_of_measurement: kWh
state_class: total_increasing
device_class: energy
-
name: “Total Export T1”
unit_of_measurement: kWh
state_class: total_increasing
device_class: energy
-
name: “Total Export T2”
unit_of_measurement: kWh
state_class: total_increasing
device_class: energy
-
name: “Voltage Phase 1”
unit_of_measurement: V
accuracy_decimals: 1
state_class: measurement
device_class: voltage
-
name: “Voltage Phase 2”
unit_of_measurement: V
accuracy_decimals: 1
state_class: measurement
device_class: voltage
-
name: “Voltage Phase 3”
unit_of_measurement: V
accuracy_decimals: 1
state_class: measurement
device_class: voltage
-
name: “Current Phase 1”
unit_of_measurement: A
accuracy_decimals: 1
state_class: measurement
device_class: current
-
name: “Current Phase 2”
unit_of_measurement: A
accuracy_decimals: 1
state_class: measurement
device_class: current
-
name: “Current Phase 3”
unit_of_measurement: A
accuracy_decimals: 1
state_class: measurement
device_class: current
-
text_sensor:
-
platform: wifi_info
ip_address:
name: “IP Address”
ssid:
name: “Wi-Fi SSID”
bssid:
name: “Wi-Fi BSSID”
-
platform: version
name: “ESPHome Version”
hide_timestamp: true
Hello,
I’m trying to configure my Slimmelezer to work with Romande Energie.
Unfortunately I’m a bit lost, do I have to do everything from Home-Assistant or do I have to flash the Slimmelezer with a specific version of ESPHome from a PC before I can use it?
Could a kind soul make a step-by-step tutorial for configuring the Slimmelezer for Romande Energie in Home-Assistant?
Best regards
Exactly same messages on my side…