32 lines
1.3 KiB
Plaintext
32 lines
1.3 KiB
Plaintext
// {type:class}
|
|
// {direction:topDown}
|
|
// {generate:true}
|
|
|
|
[note: You can stick notes on diagrams too!{bg:cornsilk}]
|
|
[IterRegistry||__iter__]
|
|
|
|
[Mqtt;<<Singleton>>|<static>ha_restarts;<static>__client;<static>__cb_MqttIsUp|<async>publish();<async>close()]
|
|
[Inverter|cls.db_stat;cls.entity_prfx;cls.discovery_prfx;cls.proxy_node_id;cls.proxy_unique_id;cls.mqtt:Mqtt;;__ha_restarts|async_create_remote(inv_prot, conn_class)async_publ_mqtt()]
|
|
[InverterBase||<async>disc(shutdown_started);<async>async_create_remote();healthy()]
|
|
[Inverter]^[InverterBase]
|
|
[InverterBase]^[InverterG3|addr;remote:StreamPtr;local:StreamPtr|async_create_remote();;close()]
|
|
[InverterBase]^[InverterG3P|addr;remote:StreamPtr;local:StreamPtr|async_create_remote();;close()]
|
|
[Inverter]++->[Mqtt;<<Singleton>>]
|
|
|
|
[IterRegistry]^[Inverter|server_side:bool;header_valid:bool;header_len:unsigned;data_len:unsigned;unique_id;node_id;sug_area;_recv_buffer:bytearray;_send_buffer:bytearray;_forward_buffer:bytearray;db:Infos;new_data:list;state|_read():void<abstract>;close():void;inc_counter():void;dec_counter():void]
|
|
|
|
[<<AsyncIfc>>]
|
|
|
|
|
|
[InverterG3]-1..2>[<<MessageProt>>]
|
|
[InverterG3]-1..2>[<<AsyncIfc>>]
|
|
|
|
[InverterG3P]-1..2>[<<MessageProt>>]
|
|
[InverterG3P]-1..2>[<<AsyncIfc>>]
|
|
|
|
[<<MessageProt>>]use-.->[<<AsyncIfc>>]
|
|
|
|
|
|
[ModbusConn|host;port;addr;stream:InverterG3P;|]has-1>[InverterG3P]
|
|
|