External community integration - http get/post/patch/put and Wake on lan

Hope it can help !

You are using the text over tcp entity instead of the wake-on-lan entity.

Yes, I have already fixed it when I realised there was some other commands. It’s an old part of the log. But event with the wol command, it didn’t work. I’ll try to send you the part of the log with the wol, sorry

@kennymc.c This is the log for the Text over TCP command ‘192.168.0.222:5000, “raw=0xAA 0xBB 0x03 0x01 0x01 0xEE”’ as you requested:

2026-08-06 08:08:59.860936 +00:00 custom-intg-requests INFO ucapi.api | [(‘127.0.0.1’, 41580)] <-: {“kind”: “resp”, “req_id”: 10, “code”: 408, “msg”: “result”, “msg_data”: {}}
2026-08-06 08:08:59.858546 +00:00 custom-intg-requests WARN commands | Timeout while waiting for a response message from the server
2026-08-06 08:08:57.853944 +00:00 custom-intg-requests INFO commands | Append command terminator ‘\n’ to the sent data
2026-08-06 08:08:57.848121 +00:00 custom-intg-requests INFO commands | address: 192.168.0.222:5000, text: ‘“raw=0xAA 0xBB 0x03 0x01 0x05 0xEE”’, timeout: 2, response_wait: True, terminator: ‘\n’
2026-08-06 08:08:57.848121 +00:00 custom-intg-requests NOTICE driver | Received select_source command with parameter {‘source’: ‘192.168.0.222:5000, “raw=0xAA 0xBB 0x03 0x01 0x05 0xEE”’} for entity id tcp-text
2026-08-06 08:08:57.845632 +00:00 custom-intg-requests INFO ucapi.api | [(‘127.0.0.1’, 41580)] ->: {“kind”: “req”, “id”: 10, “msg”: “entity_command”, “msg_data”: {“cmd_id”: “select_source”, “entity_id”: “tcp-text”, “entity_type”: “media_player”, “params”: {“source”: “192.168.0.222:5000, \u201craw=0xAA 0xBB 0x03 0x01 0x05 0xEE\u201d”}}}
2026-08-06 08:05:50.060505 +00:00 custom-intg-requests INFO ucapi.api | [(‘127.0.0.1’, 41580)] <-: {“kind”: “resp”, “req_id”: 9, “code”: 408, “msg”: “result”, “msg_data”: {}}
2026-08-06 08:05:50.058973 +00:00 custom-intg-requests WARN commands | Timeout while waiting for a response message from the server
2026-08-06 08:05:48.054502 +00:00 custom-intg-requests INFO commands | Append command terminator ‘\n’ to the sent data
2026-08-06 08:05:48.048583 +00:00 custom-intg-requests INFO commands | address: 192.168.0.222:5000, text: ‘“raw=0xAA 0xBB 0x03 0x01 0x05 0xEE”’, timeout: 2, response_wait: True, terminator: ‘\n’
2026-08-06 08:05:48.048583 +00:00 custom-intg-requests NOTICE driver | Received select_source command with parameter {‘source’: ‘192.168.0.222:5000, “raw=0xAA 0xBB 0x03 0x01 0x05 0xEE”’} for entity id tcp-text
2026-08-06 08:05:48.047223 +00:00 custom-intg-requests INFO ucapi.api | [(‘127.0.0.1’, 41580)] ->: {“kind”: “req”, “id”: 9, “msg”: “entity_command”, “msg_data”: {“cmd_id”: “select_source”, “entity_id”: “tcp-text”, “entity_type”: “media_player”, “params”: {“source”: “192.168.0.222:5000, \u201craw=0xAA 0xBB 0x03 0x01 0x05 0xEE\u201d”}}}
2026-08-06 08:05:04.259038 +00:00 custom-intg-requests INFO ucapi.api | [(‘127.0.0.1’, 41580)] <-: {“kind”: “resp”, “req_id”: 8, “code”: 408, “msg”: “result”, “msg_data”: {}}
2026-08-06 08:05:04.254844 +00:00 custom-intg-requests WARN commands | Timeout while waiting for a response message from the server
2026-08-06 08:05:02.250489 +00:00 custom-intg-requests INFO commands | Append command terminator ‘\n’ to the sent data
2026-08-06 08:05:02.243656 +00:00 custom-intg-requests INFO commands | address: 192.168.0.222:5000, text: ‘“raw=0xAA 0xBB 0x03 0x01 0x01 0xEE”’, timeout: 2, response_wait: True, terminator: ‘\n’
2026-08-06 08:05:02.243656 +00:00 custom-intg-requests NOTICE driver | Received select_source command with parameter {‘source’: ‘192.168.0.222:5000, “raw=0xAA 0xBB 0x03 0x01 0x01 0xEE”’} for entity id tcp-text
2026-08-06 08:05:02.241411 +00:00 custom-intg-requests INFO ucapi.api | [(‘127.0.0.1’, 41580)] ->: {“kind”: “req”, “id”: 8, “msg”: “entity_command”, “msg_data”: {“cmd_id”: “select_source”, “entity_id”: “tcp-text”, “entity_type”: “media_player”, “params”: {“source”: “192.168.0.222:5000, \u201craw=0xAA 0xBB 0x03 0x01 0x01 0xEE\u201d”}}}
2026-08-06 08:04:59.896195 +00:00 custom-intg-requests INFO ucapi.api | [(‘127.0.0.1’, 41580)] <-: {“kind”: “resp”, “req_id”: 7, “code”: 408, “msg”: “result”, “msg_data”: {}}
2026-08-06 08:04:59.893468 +00:00 custom-intg-requests WARN commands | Timeout while waiting for a response message from the server
2026-08-06 08:04:57.888887 +00:00 custom-intg-requests INFO commands | Append command terminator ‘\n’ to the sent data
2026-08-06 08:04:57.877965 +00:00 custom-intg-requests INFO commands | address: 192.168.0.222:5000, text: ‘“raw=0xAA 0xBB 0x03 0x01 0x01 0xEE”’, timeout: 2, response_wait: True, terminator: ‘\n’
2026-08-06 08:04:57.877619 +00:00 custom-intg-requests NOTICE driver | Received select_source command with parameter {‘source’: ‘192.168.0.222:5000, “raw=0xAA 0xBB 0x03 0x01 0x01 0xEE”’} for entity id tcp-text
2026-08-06 08:04:57.876317 +00:00 custom-intg-requests INFO ucapi.api | [(‘127.0.0.1’, 41580)] ->: {“kind”: “req”, “id”: 7, “msg”: “entity_command”, “msg_data”: {“cmd_id”: “select_source”, “entity_id”: “tcp-text”, “entity_type”: “media_player”, “params”: {“source”: “192.168.0.222:5000, \u201craw=0xAA 0xBB 0x03 0x01 0x01 0xEE\u201d”}}}
2026-08-06 08:00:31.024204 +00:00 custom-intg-requests INFO config | standby not found in __storers because it should not be stored in the config file
2026-08-06 08:00:31.024204 +00:00 custom-intg-requests INFO config | Saved standby: False into config runtime storage
2026-08-06 08:00:31.024204 +00:00 custom-intg-requests NOTICE driver | Received subscribe entities event for entity ids: [‘tcp-text’]
2026-08-06 08:00:31.024204 +00:00 custom-intg-requests INFO ucapi.api | [(‘127.0.0.1’, 41580)] <-: {“kind”: “resp”, “req_id”: 6, “code”: 200, “msg”: “result”, “msg_data”: {}}
2026-08-06 08:00:31.017960 +00:00 custom-intg-requests INFO ucapi.entities | [configured] entity added: ‘tcp-text’
2026-08-06 08:00:31.017960 +00:00 custom-intg-requests INFO ucapi.api | [(‘127.0.0.1’, 41580)] ->: {“kind”: “req”, “id”: 6, “msg”: “subscribe_events”, “msg_data”: {“entity_ids”: [“tcp-text”]}}
2026-08-06 08:00:21.634315 +00:00 custom-intg-requests INFO ucapi.api | [(‘127.0.0.1’, 41580)] <-: {“kind”: “resp”, “req_id”: 5, “code”: 200, “msg”: “available_entities”, “msg_data”: {“available_entities”: [{“entity_id”: “http-get”, “entity_type”: “media_player”, “device_id”: null, “features”: [“select_source”], “name”: {“en”: “HTTP Get”}, “icon”: “uc:command”, “description”: {“en”: “Media player entity to send HTTP Get commands via the “input source” command”, “de”: “Media Player Entit\u00e4t zum Senden von HTTP Get-Befehlen \u00fcber den “Eingang oder Quelle”-Befehl”}}, {“entity_id”: “http-post”, “entity_type”: “media_player”, “device_id”: null, “features”: [“select_source”], “name”: {“en”: “HTTP Post”}, “icon”: “uc:command”, “description”: {“en”: “Media player entity to send HTTP Post commands via the “input source” command”, “de”: “Media Player Entit\u00e4t zum Senden von HTTP Post-Befehlen \u00fcber den “Eingang oder Quelle”-Befehl”}}, {“entity_id”: “http-patch”, “entity_type”: “media_player”, “device_id”: null, “features”: [“select_source”], “name”: {“en”: “HTTP Patch”}, “icon”: “uc:command”, “description”: {“en”: “Media player entity to send HTTP Patch commands via the “input source” command”, “de”: “Media Player Entit\u00e4t zum Senden von HTTP Patch-Befehlen \u00fcber den “Eingang oder Quelle”-Befehl”}}, {“entity_id”: “http-put”, “entity_type”: “media_player”, “device_id”: null, “features”: [“select_source”], “name”: {“en”: “HTTP Put”}, “icon”: “uc:command”, “description”: {“en”: “Media player entity to send HTTP Put commands via the “input source” command”, “de”: “Media Player Entit\u00e4t zum Senden von HTTP Put-Befehlen \u00fcber den “Eingang oder Quelle”-Befehl”}}, {“entity_id”: “http-delete”, “entity_type”: “media_player”, “device_id”: null, “features”: [“select_source”], “name”: {“en”: “HTTP Delete”}, “icon”: “uc:command”, “description”: {“en”: “Media player entity to send HTTP Delete commands via the “input source” command”, “de”: “Media Player Entit\u00e4t zum Senden von HTTP Delete-Befehlen \u00fcber den “Eingang oder Quelle”-Befehl”}}, {“entity_id”: “http-head”, “entity_type”: “media_player”, “device_id”: null, “features”: [“select_source”], “name”: {“en”: “HTTP Head”}, “icon”: “uc:command”, “description”: {“en”: “Media player entity to send HTTP Head commands via the “input source” command”, “de”: “Media Player Entit\u00e4t zum Senden von HTTP Head-Befehlen \u00fcber den “Eingang oder Quelle”-Befehl”}}, {“entity_id”: “wol”, “entity_type”: “media_player”, “device_id”: null, “features”: [“select_source”], “name”: {“en”: “Wake on LAN”}, “icon”: “uc:command”, “description”: {“en”: “Media player entity to send Wake on LAN commands via the “input source” command”, “de”: “Media Player Entit\u00e4t zum Senden von Wake on LAN-Befehlen \u00fcber den “Eingang oder Quelle”-Befehl”}}, {“entity_id”: “tcp-text”, “entity_type”: “media_player”, “device_id”: null, “features”: [“select_source”], “name”: {“en”: “Text over TCP”, “de”: “Text \u00fcber TCP”}, “icon”: “uc:command”, “description”: {“en”: “Media player entity to send {‘en’: ‘Text over TCP’, ‘de’: ‘Text \u00fcber TCP’} commands via the “input source” command”, “de”: “Media Player Entit\u00e4t zum Senden von {‘en’: ‘Text over TCP’, ‘de’: ‘Text \u00fcber TCP’}-Befehlen \u00fcber den “Eingang oder Quelle”-Befehl”}}, {“entity_id”: “http-response”, “entity_type”: “sensor”, “device_id”: null, “features”: null, “name”: {“en”: “HTTP Request Response”, “de”: “HTTP Anfrage-Antwort”}, “icon”: “uc:arrow-progress”, “description”: {“en”: “Sensor entity to display the response of the last http request command”, “de”: “Sensor Entit\u00e4t zur Anzeige der Antwort des letzten HTTP-Anfrage-Befehls”}, “device_class”: “custom”}, {“entity_id”: “tcp-text-response”, “entity_type”: “sensor”, “device_id”: null, “features”: null, “name”: {“en”: “Text over TCP Response”, “de”: “Text \u00fcber TCP Antwort”}, “icon”: “uc:arrow-progress”, “description”: {“en”: “Sensor entity to display the response of the last text over tcp command”, “de”: “Sensor Entit\u00e4t zur Anzeige der Antwort des letzten Text \u00fcber TCP-Befehls”}, “device_class”: “custom”}]}}
2026-08-06 08:00:21.626833 +00:00 custom-intg-requests INFO ucapi.api | [(‘127.0.0.1’, 41580)] Supported entity types [‘button’, ‘switch’, ‘climate’, ‘cover’, ‘light’, ‘media_player’, ‘sensor’, ‘activity’, ‘macro’, ‘remote’, ‘ir_emitter’, ‘select’, ‘voice_assistant’]
2026-08-06 08:00:21.621054 +00:00 custom-intg-requests INFO ucapi.api | [(‘127.0.0.1’, 41580)] <-: {“kind”: “req”, “id”: 2, “msg”: “get_supported_entity_types”}
2026-08-06 08:00:21.619214 +00:00 custom-intg-requests INFO ucapi.api | [(‘127.0.0.1’, 41580)] ->: {“kind”: “req”, “id”: 5, “msg”: “get_available_entities”, “msg_data”: {}}
2026-08-06 08:00:21.273862 +00:00 custom-intg-requests NOTICE driver | Integration language set to en_US
2026-08-06 08:00:21.267240 +00:00 custom-intg-requests INFO ucapi.api | [(‘127.0.0.1’, 41580)] <-: {“kind”: “resp”, “req_id”: 4, “code”: 200, “msg”: “entity_states”, “msg_data”: }
2026-08-06 08:00:21.265296 +00:00 custom-intg-requests INFO ucapi.api | [(‘127.0.0.1’, 41580)] ->: {“id”: 4, “kind”: “req”, “msg”: “get_entity_states”}
2026-08-06 08:00:21.258178 +00:00 custom-intg-requests INFO ucapi.api | [(‘127.0.0.1’, 41580)] <-: {“kind”: “req”, “id”: 1, “msg”: “get_localization_cfg”}
2026-08-06 08:00:21.256440 +00:00 custom-intg-requests INFO ucapi.api | [(‘127.0.0.1’, 41580)] <-: {“kind”: “event”, “msg”: “device_state”, “msg_data”: {“state”: “CONNECTED”}, “cat”: “DEVICE”}
2026-08-06 08:00:21.254691 +00:00 custom-intg-requests NOTICE driver | Received connect event message from remote
2026-08-06 08:00:21.252794 +00:00 custom-intg-requests INFO ucapi.api | [(‘127.0.0.1’, 41580)] ->: {“id”: 3, “kind”: “event”, “msg”: “connect”}
2026-08-06 08:00:21.224552 +00:00 custom-intg-requests INFO ucapi.api | [(‘127.0.0.1’, 41580)] <-: {“kind”: “event”, “msg”: “driver_setup_change”, “msg_data”: {“event_type”: “STOP”, “state”: “OK”}, “cat”: “DEVICE”}
2026-08-06 08:00:21.222610 +00:00 custom-intg-requests INFO config | Created /etc/custom-intg/requests/config.json and stored setup_complete: True in it
2026-08-06 08:00:21.219259 +00:00 custom-intg-requests INFO config | Saved setup_complete: True into config runtime storage
2026-08-06 08:00:21.218598 +00:00 custom-intg-requests NOTICE setup | Setup complete
2026-08-06 08:00:21.217783 +00:00 custom-intg-requests NOTICE sensor | Added tcp text response sensor entity with id tcp-text-response and name {‘en’: ‘Text over TCP Response’, ‘de’: ‘Text über TCP Antwort’}
2026-08-06 08:00:21.217152 +00:00 custom-intg-requests INFO ucapi.entities | [available] entity added: ‘tcp-text-response’
2026-08-06 08:00:21.216470 +00:00 custom-intg-requests INFO ucapi.entity | Created sensor entity: tcp-text-response
2026-08-06 08:00:21.215387 +00:00 custom-intg-requests NOTICE sensor | Added http request response sensor entity with id http-response and name {‘en’: ‘HTTP Request Response’, ‘de’: ‘HTTP Anfrage-Antwort’}
2026-08-06 08:00:21.214645 +00:00 custom-intg-requests INFO ucapi.entities | [available] entity added: ‘http-response’
2026-08-06 08:00:21.214075 +00:00 custom-intg-requests INFO ucapi.entity | Created sensor entity: http-response
2026-08-06 08:00:21.212872 +00:00 custom-intg-requests NOTICE driver | Added media player entity with id tcp-text and name {‘en’: ‘Text over TCP’, ‘de’: ‘Text über TCP’}
2026-08-06 08:00:21.212297 +00:00 custom-intg-requests INFO ucapi.entities | [available] entity added: ‘tcp-text’
2026-08-06 08:00:21.211502 +00:00 custom-intg-requests INFO ucapi.entity | Created media_player entity: tcp-text
2026-08-06 08:00:21.209439 +00:00 custom-intg-requests NOTICE driver | Added media player entity with id wol and name Wake on LAN
2026-08-06 08:00:21.208874 +00:00 custom-intg-requests INFO ucapi.entities | [available] entity added: ‘wol’
2026-08-06 08:00:21.208089 +00:00 custom-intg-requests INFO ucapi.entity | Created media_player entity: wol
2026-08-06 08:00:21.206142 +00:00 custom-intg-requests NOTICE driver | Added media player entity with id http-head and name HTTP Head
2026-08-06 08:00:21.205367 +00:00 custom-intg-requests INFO ucapi.entities | [available] entity added: ‘http-head’
2026-08-06 08:00:21.204577 +00:00 custom-intg-requests INFO ucapi.entity | Created media_player entity: http-head
2026-08-06 08:00:21.202253 +00:00 custom-intg-requests NOTICE driver | Added media player entity with id http-delete and name HTTP Delete
2026-08-06 08:00:21.202253 +00:00 custom-intg-requests INFO ucapi.entities | [available] entity added: ‘http-delete’
2026-08-06 08:00:21.201184 +00:00 custom-intg-requests INFO ucapi.entity | Created media_player entity: http-delete
2026-08-06 08:00:21.199385 +00:00 custom-intg-requests NOTICE driver | Added media player entity with id http-put and name HTTP Put
2026-08-06 08:00:21.198704 +00:00 custom-intg-requests INFO ucapi.entities | [available] entity added: ‘http-put’
2026-08-06 08:00:21.198045 +00:00 custom-intg-requests INFO ucapi.entity | Created media_player entity: http-put
2026-08-06 08:00:21.195911 +00:00 custom-intg-requests NOTICE driver | Added media player entity with id http-patch and name HTTP Patch
2026-08-06 08:00:21.195911 +00:00 custom-intg-requests INFO ucapi.entities | [available] entity added: ‘http-patch’
2026-08-06 08:00:21.195164 +00:00 custom-intg-requests INFO ucapi.entity | Created media_player entity: http-patch
2026-08-06 08:00:21.194057 +00:00 custom-intg-requests NOTICE driver | Added media player entity with id http-post and name HTTP Post
2026-08-06 08:00:21.194057 +00:00 custom-intg-requests INFO ucapi.entities | [available] entity added: ‘http-post’
2026-08-06 08:00:21.191491 +00:00 custom-intg-requests INFO ucapi.entity | Created media_player entity: http-post
2026-08-06 08:00:21.191491 +00:00 custom-intg-requests NOTICE driver | Added media player entity with id http-get and name HTTP Get
2026-08-06 08:00:21.191491 +00:00 custom-intg-requests INFO ucapi.entities | [available] entity added: ‘http-get’
2026-08-06 08:00:21.191491 +00:00 custom-intg-requests INFO ucapi.entity | Created media_player entity: http-get
2026-08-06 08:00:21.186214 +00:00 custom-intg-requests INFO ucapi.api | [(‘127.0.0.1’, 41580)] <-: {“kind”: “resp”, “req_id”: 2, “code”: 200, “msg”: “result”, “msg_data”: {}}
2026-08-06 08:00:21.186214 +00:00 custom-intg-requests INFO ucapi.api | [(‘127.0.0.1’, 41580)] ->: {“kind”: “req”, “id”: 2, “msg”: “setup_driver”, “msg_data”: {“reconfigure”: false, “setup_data”: {“setup_action”: “finish”}}}
2026-08-06 08:00:09.214595 +00:00 custom-intg-requests INFO ucapi.api | [(‘127.0.0.1’, 41580)] <-: {“kind”: “resp”, “req_id”: 1, “code”: 200, “msg”: “driver_version”, “msg_data”: {“name”: “HTTP requests, WoL & text over TCP”, “version”: {“api”: “0.24.3”, “driver”: “0.11.0”}}}
2026-08-06 08:00:09.213632 +00:00 custom-intg-requests INFO ucapi.api | [(‘127.0.0.1’, 41580)] ->: {“id”: 1, “kind”: “req”, “msg”: “get_driver_version”}
2026-08-06 08:00:09.212214 +00:00 custom-intg-requests INFO driver | There are currently 1 websocket clients connected to this integration websockets server
2026-08-06 08:00:09.212214 +00:00 custom-intg-requests INFO driver | Remote websocket client connected to this integration websockets server
2026-08-06 08:00:09.209330 +00:00 custom-intg-requests INFO ucapi.api | [(‘127.0.0.1’, 41580)] <-: {“kind”: “resp”, “req_id”: 0, “code”: 200, “msg”: “authentication”, “msg_data”: {}}
2026-08-06 08:00:09.207568 +00:00 custom-intg-requests NOTICE ucapi.api | WS: Client added: (‘127.0.0.1’, 41580)
2026-08-06 08:00:07.847348 +00:00 custom-intg-requests NOTICE config | /etc/custom-intg/requests/config.json does not exist (yet). Please start the setup process
2026-08-06 08:00:07.846829 +00:00 custom-intg-requests NOTICE ucapi.api | Driver is up: requests, version: 0.11.0, api: 0.7.0, listening on: 127.0.0.1:9006
2026-08-06 08:00:07.845810 +00:00 custom-intg-requests NOTICE driver | The custom entities yaml configuration is stored in /etc/custom-intg/requests/custom_entities.yaml
2026-08-06 08:00:07.845810 +00:00 custom-intg-requests INFO config | yaml_path not found in __storers because it should not be stored in the config file
2026-08-06 08:00:07.845131 +00:00 custom-intg-requests INFO config | Saved yaml_path: /etc/custom-intg/requests/custom_entities.yaml into config runtime storage
2026-08-06 08:00:07.845131 +00:00 custom-intg-requests NOTICE driver | The configuration is stored in /etc/custom-intg/requests/config.json
2026-08-06 08:00:07.845131 +00:00 custom-intg-requests INFO config | cfg_path not found in __storers because it should not be stored in the config file
2026-08-06 08:00:07.845131 +00:00 custom-intg-requests INFO config | Saved cfg_path: /etc/custom-intg/requests/config.json into config runtime storage
2026-08-06 08:00:07.845131 +00:00 custom-intg-requests INFO config | bundle_mode not found in __storers because it should not be stored in the config file
2026-08-06 08:00:07.845131 +00:00 custom-intg-requests INFO config | Saved bundle_mode: True into config runtime storage
2026-08-06 08:00:07.843705 +00:00 custom-intg-requests NOTICE driver | This integration is running in a PyInstaller bundle. Probably on the remote hardware

Sorry, I wasn’t sure how to attach a txt file

Run the integration setup again, go to advanced settings and disable wait for text over tcp response as the device probably just doesn’t send any response after a command has been received.

Thanks very much for looking at this. I tried that, this time no error, but the command didn’t do anything.

I think Discourse is converting straight double quotes to curly double quotes so the integration doesn’t detect the raw= prefix corretcly as the Append command terminator log message shouldn’t be shown with raw data.
Try this as with preformatted text blocks the quotes shouln’t be converted: 192.168.0.222:5000, "raw=0xAA 0xBB 0x03 0x01 0x01 0xEE"

That worked. I just noticed the difference in the double quotes

Thanks @kennymc.c for your assistance with this. Just wondering also, whether there is any way with your integration to get the in use port using this command: 0xAA 0xBB 0x03 0x10 0x00 0xEE?

There’s a text over tcp response sensor that shows the response of the last command if you enable wait for response again but the problem is that the response is not readable data and would need to be converted first. That’s not something the integration can do.

Thanks @kennymc.c

New version 0.12.0 which includes breaking changes for some wake-on-lan parameters and automatically replaces curly/smart quotes from rich text sources with straight quotes in the source parameter field of http request and text over tcp media player entities Release v0.12.0 · kennymc-c/ucr2-integration-requests · GitHub

New release: Release v0.13.0 · kennymc-c/ucr2-integration-requests · GitHub
Please note that this is a breaking release which might require remapping custom entities with special charaters. Please read the release notes carefully.