├── images ├── datalogger-table.png ├── solis-custom-diagram.png ├── solis-custom-diagram-s2.png ├── solis-ha-modbus-cloud-client.png ├── solis-ha-modbus-cloud-final.jpg ├── solis-ha-modbus-cloud-server.png ├── solis-ha-modbus-cloud-diagram.png ├── solis-ha-modbus-cloud-client-adv.png ├── solis-ha-modbus-cloud-server-adv.png └── solis-ha-modbus-cloud-wiring-diagram.png ├── README.md └── LICENSE /images/datalogger-table.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alienatedsec/solis-ha-modbus-cloud/HEAD/images/datalogger-table.png -------------------------------------------------------------------------------- /images/solis-custom-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alienatedsec/solis-ha-modbus-cloud/HEAD/images/solis-custom-diagram.png -------------------------------------------------------------------------------- /images/solis-custom-diagram-s2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alienatedsec/solis-ha-modbus-cloud/HEAD/images/solis-custom-diagram-s2.png -------------------------------------------------------------------------------- /images/solis-ha-modbus-cloud-client.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alienatedsec/solis-ha-modbus-cloud/HEAD/images/solis-ha-modbus-cloud-client.png -------------------------------------------------------------------------------- /images/solis-ha-modbus-cloud-final.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alienatedsec/solis-ha-modbus-cloud/HEAD/images/solis-ha-modbus-cloud-final.jpg -------------------------------------------------------------------------------- /images/solis-ha-modbus-cloud-server.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alienatedsec/solis-ha-modbus-cloud/HEAD/images/solis-ha-modbus-cloud-server.png -------------------------------------------------------------------------------- /images/solis-ha-modbus-cloud-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alienatedsec/solis-ha-modbus-cloud/HEAD/images/solis-ha-modbus-cloud-diagram.png -------------------------------------------------------------------------------- /images/solis-ha-modbus-cloud-client-adv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alienatedsec/solis-ha-modbus-cloud/HEAD/images/solis-ha-modbus-cloud-client-adv.png -------------------------------------------------------------------------------- /images/solis-ha-modbus-cloud-server-adv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alienatedsec/solis-ha-modbus-cloud/HEAD/images/solis-ha-modbus-cloud-server-adv.png -------------------------------------------------------------------------------- /images/solis-ha-modbus-cloud-wiring-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alienatedsec/solis-ha-modbus-cloud/HEAD/images/solis-ha-modbus-cloud-wiring-diagram.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Purpose 2 | A combination of Solis Cloud, Home Assistant via RS485 (Modbus) communication. This repo is a documented workaround for Solis inverters to connect Solis Cloud and the local Home Assistant based on my own experience. It includes references, examples of [the code in Home Assistant](https://github.com/alienatedsec/solis-ha-modbus-cloud/wiki/Sample-Automations), more about [configuration](https://github.com/alienatedsec/solis-ha-modbus-cloud#configuration), as well as [wiring](https://github.com/alienatedsec/solis-ha-modbus-cloud#wiring) and all [required components](https://github.com/alienatedsec/solis-ha-modbus-cloud#devices-and-cost). 3 | 4 | ## Limitations and some history 5 | My PV installation commenced back in August 2022. Since then, I started my journey with Home Assistant, and several Solis integrations made by some clever folks out there. My main goal was to keep Solis Cloud functionality and allow for advanced monitoring, remote control, and general automation of my home equipment. As I was going through my journey, I found many obstacles and limitations with Solis Cloud, dataloggers, and its design. Therefore, to get over those obstacles, I have designed the below, which meets my requirements and it works quite well. 6 | 7 | Most importantly, my design doesn't disconnect the Solis cloud, and works (coexists) with your local Home Assistant integration in combination with [any Solis datalogger](https://github.com/alienatedsec/solis-ha-modbus-cloud#supported-solis-dataloggers). 8 | 9 | You can watch a great video from `Gordon Markus` summarising his 12-months experience and Solis inverters limitations - https://youtu.be/F7r12UjzZyU 10 | 11 | ## Diagram 12 | ![Diagram](/images/solis-ha-modbus-cloud-diagram.png) 13 | 14 | ## Description 15 | The main goal is to ensure that a datalogger can work as normal and without any distruption. The datalogger acts as the Master device, and it talks directly to the inverter (Slave). Having an additional Master (e.g., Waveshare Gateway) on the same RS485 network is to create collisions, which could affect all RS485 devices. Some dataloggers don't accept multiple TCP connections (e.g., `S2-WL-ST`), and those will disconnect the Solis Cloud whenever used with an integration; others don't support Modbus TCP (e.g., `DLS-W`, `S3-WIFI-ST`), and some will fully rely on the cloud (`S3-WIFI-ST`). Some obsolete dataloggers couldn't provide `remote control` functionality via Solis Cloud (e.g., `DLS-W`, `DLS-L`). 16 | 17 | **However, there were reports that `remote control` functionality started working with obsolete dataloggers after Solis' maintenance on 13 April 2023. Furthermore, as of April 2025, these dataloggers are being phased out, and may no longer work due to dependencies on third-party integrations (SolarMan). Solis recommends purchasing a newer model of their datalogger for improved compatibility and ongoing support.** 18 | 19 | To intgrate with the Home Assistant, we introduce the Waveshare gateway to query the inverter. This project uses two Waveshare devices that can serve multiple clients, keep the inverter's cloud reporting functionality, and is not limited by any supported datalogger. The below is my configuration, but the use case could differ per datalogger. 20 | 21 | The main device is the Waveshare RS485 to PoE ETH (B) - the non-PoE version is described as per [this guideline](https://github.com/wills106/homeassistant-solax-modbus/wiki/Installation-Notes#option-1-waveshare-rs485-to-eth-b-din-rail-mounted-model). There are no major differences between PoE and non-PoE devices, except for the convenience of powering those when you have multiple next in line. 22 | 23 | I was trying different settings as I had some teething issues, and I noticed that it works better when the integration (I am using [Home Assistant SolaX Modbus integration](https://github.com/wills106/homeassistant-solax-modbus) for my Solis inverter) is polling data more often (e.g., every 5 seconds). As much as no longer relevant, you can find more about those historical issues [at the following address.](https://github.com/wills106/homeassistant-solax-modbus/issues/340) 24 | 25 | ## Solution Concepts 26 | **DLS-W - Solis Sensor, Home Assistant Solax Modbus, SolisMon3, Grafana** 27 | 28 | ![Diagram](/images/solis-custom-diagram.png) 29 | 30 | **S2-WL-ST - Solis Sensor, Home Assistant Solax Modbus** 31 | 32 | ![Diagram](/images/solis-custom-diagram-s2.png) 33 | 34 | ## Wiring 35 | I recommend using one of the pairs from the Ethernet cable for RS485 wiring. e.g., A twisted pair of `blue` for RS485(A) and `white-blue` for RS485(B). There is no need for 120 Ohms resistors at each end of the RS485. Both, Waveshare and the Inverter have resistors built-in. 36 | 37 | ![Wiring](/images/solis-ha-modbus-cloud-wiring-diagram.png) 38 | 39 | ## Configuration 40 | 41 | **Please use VirCom (not the Web Interface) to configure your Waveshare devices** 42 | 43 | - Follow the prerequisite (Optional) - [Waveshare firmware update to `v1.486`](https://github.com/alienatedsec/solis-ha-modbus-cloud/discussions/17) - further discussed in this thread https://github.com/alienatedsec/solis-ha-modbus-cloud/discussions/14 44 | - The `TCP Server` on my [diagram](https://github.com/alienatedsec/solis-ha-modbus-cloud#diagram) and [presented here as 187 GW](https://github.com/alienatedsec/solis-ha-modbus-cloud#final-result) acts as a gateway for other network devices (e.g., the datalogger wired to `TCP Client` and for any compatible HA integration). 45 | - The Serial baud rate on the `TCP Server` is 9600 - default on the inverter; however, you can amend it independently to datalogger's settings - up to 38400 on the inverter, and match the same within `TCP Server` settings - increasing the baud rate is highly recommended. 46 | - The `TCP Server` - `Modbus gateway type` is set to `Multi-host non-storage type` - RS485 Multi-Host and Bus Conflict detection **enabled**. 47 | - The `TCP Client` - `Modbus gateway type` is set to `Simple Modbus TCP to RTU` - RS485 Multi-Host and Bus Conflict detection **disabled**. 48 | - You should use the IP address and the port number of your `TCP Server` when configuring any `Modbus TCP` compatible integration - e.g., like in the [Home Assistant Solax Modbus](https://github.com/wills106/homeassistant-solax-modbus#installation) installation notes. 49 | - Therefore, the `TCP Client` [presented here as 171 DLG](https://github.com/alienatedsec/solis-ha-modbus-cloud#final-result) has its own IP address (irrevelevant), but within its `Dest IP/Domain` and `Dest. Port` config fields, it has to use the IP and the port of the `TCP Server`, and it needs the same Serial config as on a datalogger - baud rate 9600 - default for `S2-WL-ST` and `S3-WIFI-ST` dataloggers, where `DLS-W` baud rate can be amended via its hidden config web page `http://IP/config_hide.html`. The same applies to `DLS-L` under `http://IP/hide_set.html`, but it is password protected with username: `admin`, password: `8 characters linked with a datalogger` 50 | - Both `TCP Server` and `TCP Client` - `Transfer Protocol` is set to `Modbus_TCP Protocol` - Waveshare is converting `Modbus RTU` messages to `Modbus TCP` and vice-versa - screenshots below. 51 | 52 | **TCP Server Config** 53 | 54 | ![server](/images/solis-ha-modbus-cloud-server.png) 55 | 56 | **More Advanced Settings for TCP Server** 57 | 58 | ![server-advanced](/images/solis-ha-modbus-cloud-server-adv.png) 59 | 60 | **TCP Client Config** 61 | 62 | ![client](/images/solis-ha-modbus-cloud-client.png) 63 | 64 | **More Advanced Settings for TCP Client** 65 | 66 | ![client-advanced](/images/solis-ha-modbus-cloud-client-adv.png) 67 | 68 | - The Waveshare used for the batteries connection is the same device, but the `Transfer Protocol` is set to `None`. I use VirCom to extend its connection to COMX on my laptop, so the software can connect to batteries and monitor them. Looking into using `Modbus_TCP Protocol` and integrating with HA via MQTT or even setting the MQTT on the Waveshare, but that is not my priority at the moment. 69 | 70 | ## HA Integrations 71 | Datalogger/Waveshare - Modbus TCP - direct connection - e.g., `DLS-L`, `S2-WL-ST`, `Waveshare RS485 to PoE ETH (B)` 72 | - [Home Assistant Solax Modbus](https://github.com/wills106/homeassistant-solax-modbus) - stable since [2023.03.2b18](https://github.com/wills106/homeassistant-solax-modbus/releases/tag/2023.03.2b18) 73 | - [HA Solis Modbus](https://github.com/fboundy/ha_solis_modbus) 74 | 75 | Datalogger - Solarman based - direct connection - e.g., `DLS-W` 76 | - [Home Assistant Solarman](https://github.com/StephanJoubert/home_assistant_solarman) 77 | 78 | Cloud connection - [any Solis datalogger](https://github.com/alienatedsec/solis-ha-modbus-cloud#supported-solis-dataloggers) 79 | - [Solis Sensor](https://github.com/hultenvp/solis-sensor) 80 | - [Solis Cloud Control](https://github.com/mkuthan/solis-cloud-control) 81 | 82 | ## MQTT 83 | - [SolisMon3](https://github.com/NosIreland/solismon3) - advertising Solis' Inverter data to MQTT - compatible with `DLS-W` 84 | 85 | ## Supported Solis Dataloggers 86 | - DLS-W 87 | - DLS-L 88 | - S2-WL-ST 89 | - S3-WIFI-ST 90 | 91 | ![Table](/images/datalogger-table.png) 92 | 93 | ## Untested Solis Dataloggers 94 | - S1-W4G-ST (4-pin) 95 | 96 | ## Incompatible and untested Solis Dataloggers 97 | The below will be incompatible with the 4-pin `Exceedconn EC04681-2023-BF Male/Female` connector, but could still work with the above [HA Integrations](https://github.com/alienatedsec/solis-ha-modbus-cloud#ha-integrations) 98 | - S1-W4G-ST (USB) 99 | - S4-WIFI-ST (USB) 100 | 101 | ## Devices and cost 102 | - 2 * £35.00 - Waveshare RS485 to PoE ETH (B) - https://www.waveshare.com/wiki/RS485_TO_POE_ETH_(B) 103 | 104 | ![image](https://user-images.githubusercontent.com/73167064/224035664-2b01545d-6b8d-4646-ae75-2170aca94882.png) 105 | 106 | - 1 * £28.00 - PoE Switch - P-Link PoE Switch 5-Port 100 Mbps (TL-SF1005P) 107 | 108 | ![image](https://user-images.githubusercontent.com/73167064/224323924-eb8add51-3f87-4143-954b-692bfe46346a.png) 109 | 110 | - 1 * £12.00 - Exceedconn EC04681-2023-BF Male/Female for Solis/Ginlong Inverter RS-485 port 111 | 112 | ![image](https://user-images.githubusercontent.com/73167064/224319164-74400817-a5dd-426f-a5b4-1f6fbb563006.png) 113 | 114 | - 1 * £2.50 - DIN rail 115 | 116 | ![image](https://user-images.githubusercontent.com/73167064/224319811-1bc2c361-811b-4d4f-8518-c0ee8b928317.png) 117 | 118 | - 1 * £20.00 - Sourcingmap 240mm x 160mm x 90mm Plastic Dustproof IP65 DIY Junction Box Power Protection Case - I recommend a bigger box = more expensive 119 | 120 | ![image](https://user-images.githubusercontent.com/73167064/224323031-75df733b-3bf0-4851-bb71-75eeabc4e6af.png) 121 | 122 | - 1 * £6.00 - Pack M20 20mm IP68 Waterproof Red Cable Glands, Suitable for 6mm - 12mm Cables, Plastic Nylon Compression Glands Connectors with Locknut and Washer - AVARTEK 123 | 124 | ![image](https://user-images.githubusercontent.com/73167064/224322440-14c7f351-8b1b-48f5-9538-c028f3aafc99.png) 125 | 126 | - around £10.00 for some RJ45 cabling and connectors 127 | 128 | #### Total Cost 129 | **£148.50** (pricing out of date) 130 | or 131 | **£93.00** if you follow [this discussion #24](https://github.com/alienatedsec/solis-ha-modbus-cloud/discussions/24) 132 | 133 | Optional to connect batteries: 134 | - 1 * £35.00 - Waveshare RS485 to PoE ETH (B) - https://www.waveshare.com/wiki/RS485_TO_POE_ETH_(B) 135 | ![image](https://user-images.githubusercontent.com/73167064/224035664-2b01545d-6b8d-4646-ae75-2170aca94882.png) 136 | 137 | ## Final Result 138 | ![Final](/images/solis-ha-modbus-cloud-final.jpg) 139 | 140 | ## Future work 141 | - Compatibility with other brands and inverters 142 | - More Solution Concepts 143 | - Battery Monitoring - HA, MQTT 144 | 145 | ## DISCLAIMER 146 | **I AM NOT RESPONSIBLE FOR ANY USE OR DAMAGE THIS DESIGN MAY CAUSE. THIS IS INTENDED FOR EDUCATIONAL PURPOSES ONLY. USE AT YOUR OWN RISK.** 147 | 148 | ## DONATIONS 149 | **IF YOU FOUND THIS USEFUL, YOU CAN BUY ME A BEER** 150 | 151 | [![paypal](https://www.paypalobjects.com/en_US/GB/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=K3V4PSH2CV9AA) 152 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | CERN Open Hardware Licence Version 2 - Strongly Reciprocal 2 | 3 | 4 | Preamble 5 | 6 | CERN has developed this licence to promote collaboration among hardware 7 | designers and to provide a legal tool which supports the freedom to use, 8 | study, modify, share and distribute hardware designs and products based on 9 | those designs. Version 2 of the CERN Open Hardware Licence comes in three 10 | variants: CERN-OHL-P (permissive); and two reciprocal licences: CERN-OHL-W 11 | (weakly reciprocal) and this licence, CERN-OHL-S (strongly reciprocal). 12 | 13 | The CERN-OHL-S is copyright CERN 2020. Anyone is welcome to use it, in 14 | unmodified form only. 15 | 16 | Use of this Licence does not imply any endorsement by CERN of any Licensor or 17 | their designs nor does it imply any involvement by CERN in their development. 18 | 19 | 20 | 1 Definitions 21 | 22 | 1.1 'Licence' means this CERN-OHL-S. 23 | 24 | 1.2 'Compatible Licence' means 25 | 26 | a) any earlier version of the CERN Open Hardware licence, or 27 | 28 | b) any version of the CERN-OHL-S, or 29 | 30 | c) any licence which permits You to treat the Source to which it 31 | applies as licensed under CERN-OHL-S provided that on Conveyance of 32 | any such Source, or any associated Product You treat the Source in 33 | question as being licensed under CERN-OHL-S. 34 | 35 | 1.3 'Source' means information such as design materials or digital code 36 | which can be applied to Make or test a Product or to prepare a Product 37 | for use, Conveyance or sale, regardless of its medium or how it is 38 | expressed. It may include Notices. 39 | 40 | 1.4 'Covered Source' means Source that is explicitly made available under 41 | this Licence. 42 | 43 | 1.5 'Product' means any device, component, work or physical object, whether 44 | in finished or intermediate form, arising from the use, application or 45 | processing of Covered Source. 46 | 47 | 1.6 'Make' means to create or configure something, whether by manufacture, 48 | assembly, compiling, loading or applying Covered Source or another 49 | Product or otherwise. 50 | 51 | 1.7 'Available Component' means any part, sub-assembly, library or code 52 | which: 53 | 54 | a) is licensed to You as Complete Source under a Compatible Licence; or 55 | 56 | b) is available, at the time a Product or the Source containing it is 57 | first Conveyed, to You and any other prospective licensees 58 | 59 | i) as a physical part with sufficient rights and information 60 | (including any configuration and programming files and 61 | information about its characteristics and interfaces) to enable 62 | it either to be Made itself, or to be sourced and used to Make 63 | the Product; or 64 | ii) as part of the normal distribution of a tool used to design or 65 | Make the Product. 66 | 67 | 1.8 'Complete Source' means the set of all Source necessary to Make a 68 | Product, in the preferred form for making modifications, including 69 | necessary installation and interfacing information both for the Product, 70 | and for any included Available Components. If the format is 71 | proprietary, it must also be made available in a format (if the 72 | proprietary tool can create it) which is viewable with a tool available 73 | to potential licensees and licensed under a licence approved by the Free 74 | Software Foundation or the Open Source Initiative. Complete Source need 75 | not include the Source of any Available Component, provided that You 76 | include in the Complete Source sufficient information to enable a 77 | recipient to Make or source and use the Available Component to Make the 78 | Product. 79 | 80 | 1.9 'Source Location' means a location where a Licensor has placed Covered 81 | Source, and which that Licensor reasonably believes will remain easily 82 | accessible for at least three years for anyone to obtain a digital copy. 83 | 84 | 1.10 'Notice' means copyright, acknowledgement and trademark notices, Source 85 | Location references, modification notices (subsection 3.3(b)) and all 86 | notices that refer to this Licence and to the disclaimer of warranties 87 | that are included in the Covered Source. 88 | 89 | 1.11 'Licensee' or 'You' means any person exercising rights under this 90 | Licence. 91 | 92 | 1.12 'Licensor' means a natural or legal person who creates or modifies 93 | Covered Source. A person may be a Licensee and a Licensor at the same 94 | time. 95 | 96 | 1.13 'Convey' means to communicate to the public or distribute. 97 | 98 | 99 | 2 Applicability 100 | 101 | 2.1 This Licence governs the use, copying, modification, Conveying of 102 | Covered Source and Products, and the Making of Products. By exercising 103 | any right granted under this Licence, You irrevocably accept these terms 104 | and conditions. 105 | 106 | 2.2 This Licence is granted by the Licensor directly to You, and shall apply 107 | worldwide and without limitation in time. 108 | 109 | 2.3 You shall not attempt to restrict by contract or otherwise the rights 110 | granted under this Licence to other Licensees. 111 | 112 | 2.4 This Licence is not intended to restrict fair use, fair dealing, or any 113 | other similar right. 114 | 115 | 116 | 3 Copying, Modifying and Conveying Covered Source 117 | 118 | 3.1 You may copy and Convey verbatim copies of Covered Source, in any 119 | medium, provided You retain all Notices. 120 | 121 | 3.2 You may modify Covered Source, other than Notices, provided that You 122 | irrevocably undertake to make that modified Covered Source available 123 | from a Source Location should You Convey a Product in circumstances 124 | where the recipient does not otherwise receive a copy of the modified 125 | Covered Source. In each case subsection 3.3 shall apply. 126 | 127 | You may only delete Notices if they are no longer applicable to the 128 | corresponding Covered Source as modified by You and You may add 129 | additional Notices applicable to Your modifications. Including Covered 130 | Source in a larger work is modifying the Covered Source, and the larger 131 | work becomes modified Covered Source. 132 | 133 | 3.3 You may Convey modified Covered Source (with the effect that You shall 134 | also become a Licensor) provided that You: 135 | 136 | a) retain Notices as required in subsection 3.2; 137 | 138 | b) add a Notice to the modified Covered Source stating that You have 139 | modified it, with the date and brief description of how You have 140 | modified it; 141 | 142 | c) add a Source Location Notice for the modified Covered Source if You 143 | Convey in circumstances where the recipient does not otherwise 144 | receive a copy of the modified Covered Source; and 145 | 146 | d) license the modified Covered Source under the terms and conditions 147 | of this Licence (or, as set out in subsection 8.3, a later version, 148 | if permitted by the licence of the original Covered Source). Such 149 | modified Covered Source must be licensed as a whole, but excluding 150 | Available Components contained in it, which remain licensed under 151 | their own applicable licences. 152 | 153 | 154 | 4 Making and Conveying Products 155 | 156 | You may Make Products, and/or Convey them, provided that You either provide 157 | each recipient with a copy of the Complete Source or ensure that each 158 | recipient is notified of the Source Location of the Complete Source. That 159 | Complete Source is Covered Source, and You must accordingly satisfy Your 160 | obligations set out in subsection 3.3. If specified in a Notice, the Product 161 | must visibly and securely display the Source Location on it or its packaging 162 | or documentation in the manner specified in that Notice. 163 | 164 | 165 | 5 Research and Development 166 | 167 | You may Convey Covered Source, modified Covered Source or Products to a legal 168 | entity carrying out development, testing or quality assurance work on Your 169 | behalf provided that the work is performed on terms which prevent the entity 170 | from both using the Source or Products for its own internal purposes and 171 | Conveying the Source or Products or any modifications to them to any person 172 | other than You. Any modifications made by the entity shall be deemed to be 173 | made by You pursuant to subsection 3.2. 174 | 175 | 176 | 6 DISCLAIMER AND LIABILITY 177 | 178 | 6.1 DISCLAIMER OF WARRANTY -- The Covered Source and any Products are 179 | provided 'as is' and any express or implied warranties, including, but 180 | not limited to, implied warranties of merchantability, of satisfactory 181 | quality, non-infringement of third party rights, and fitness for a 182 | particular purpose or use are disclaimed in respect of any Source or 183 | Product to the maximum extent permitted by law. The Licensor makes no 184 | representation that any Source or Product does not or will not infringe 185 | any patent, copyright, trade secret or other proprietary right. The 186 | entire risk as to the use, quality, and performance of any Source or 187 | Product shall be with You and not the Licensor. This disclaimer of 188 | warranty is an essential part of this Licence and a condition for the 189 | grant of any rights granted under this Licence. 190 | 191 | 6.2 EXCLUSION AND LIMITATION OF LIABILITY -- The Licensor shall, to the 192 | maximum extent permitted by law, have no liability for direct, indirect, 193 | special, incidental, consequential, exemplary, punitive or other damages 194 | of any character including, without limitation, procurement of 195 | substitute goods or services, loss of use, data or profits, or business 196 | interruption, however caused and on any theory of contract, warranty, 197 | tort (including negligence), product liability or otherwise, arising in 198 | any way in relation to the Covered Source, modified Covered Source 199 | and/or the Making or Conveyance of a Product, even if advised of the 200 | possibility of such damages, and You shall hold the Licensor(s) free and 201 | harmless from any liability, costs, damages, fees and expenses, 202 | including claims by third parties, in relation to such use. 203 | 204 | 205 | 7 Patents 206 | 207 | 7.1 Subject to the terms and conditions of this Licence, each Licensor 208 | hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, 209 | royalty-free, irrevocable (except as stated in subsections 7.2 and 8.4) 210 | patent licence to Make, have Made, use, offer to sell, sell, import, and 211 | otherwise transfer the Covered Source and Products, where such licence 212 | applies only to those patent claims licensable by such Licensor that are 213 | necessarily infringed by exercising rights under the Covered Source as 214 | Conveyed by that Licensor. 215 | 216 | 7.2 If You institute patent litigation against any entity (including a 217 | cross-claim or counterclaim in a lawsuit) alleging that the Covered 218 | Source or a Product constitutes direct or contributory patent 219 | infringement, or You seek any declaration that a patent licensed to You 220 | under this Licence is invalid or unenforceable then any rights granted 221 | to You under this Licence shall terminate as of the date such process is 222 | initiated. 223 | 224 | 225 | 8 General 226 | 227 | 8.1 If any provisions of this Licence are or subsequently become invalid or 228 | unenforceable for any reason, the remaining provisions shall remain 229 | effective. 230 | 231 | 8.2 You shall not use any of the name (including acronyms and 232 | abbreviations), image, or logo by which the Licensor or CERN is known, 233 | except where needed to comply with section 3, or where the use is 234 | otherwise allowed by law. Any such permitted use shall be factual and 235 | shall not be made so as to suggest any kind of endorsement or 236 | implication of involvement by the Licensor or its personnel. 237 | 238 | 8.3 CERN may publish updated versions and variants of this Licence which it 239 | considers to be in the spirit of this version, but may differ in detail 240 | to address new problems or concerns. New versions will be published with 241 | a unique version number and a variant identifier specifying the variant. 242 | If the Licensor has specified that a given variant applies to the 243 | Covered Source without specifying a version, You may treat that Covered 244 | Source as being released under any version of the CERN-OHL with that 245 | variant. If no variant is specified, the Covered Source shall be treated 246 | as being released under CERN-OHL-S. The Licensor may also specify that 247 | the Covered Source is subject to a specific version of the CERN-OHL or 248 | any later version in which case You may apply this or any later version 249 | of CERN-OHL with the same variant identifier published by CERN. 250 | 251 | 8.4 This Licence shall terminate with immediate effect if You fail to comply 252 | with any of its terms and conditions. 253 | 254 | 8.5 However, if You cease all breaches of this Licence, then Your Licence 255 | from any Licensor is reinstated unless such Licensor has terminated this 256 | Licence by giving You, while You remain in breach, a notice specifying 257 | the breach and requiring You to cure it within 30 days, and You have 258 | failed to come into compliance in all material respects by the end of 259 | the 30 day period. Should You repeat the breach after receipt of a cure 260 | notice and subsequent reinstatement, this Licence will terminate 261 | immediately and permanently. Section 6 shall continue to apply after any 262 | termination. 263 | 264 | 8.6 This Licence shall not be enforceable except by a Licensor acting as 265 | such, and third party beneficiary rights are specifically excluded. --------------------------------------------------------------------------------