# 1-Wire > Symcon documentation · English · generated on 2026-09-26 > Index: https://www.symcon.de/en/llms.txt Source: https://www.symcon.de/en/service/documentation/module-reference/devices/1-wire/ The 1-Wire bus system is similar to I2C. In a simple way different sensors can be connected to a normal 3-wire cable (ground, data, and +5 V). For connection to a PC, a USB adapter (DS9490R) or serial interface (DS9097U-S09) are available. > **Note:** The following devices are supported by IP-Symcon: > > [Supported Devices](1-wire.md) > **Warning:** Since version 4.0 __no__ TMEX driver is required for usage, except for DS2490/DS9490R > **Warning:** IP-Symcon does not support the __parasitic__ mode. > A __+5V__ power supply is essential! ### Video Tutorial for configuration (German) [Video](https://www.youtube.com/embed/JbIdm5x0uxY?rel=0&cc_load_policy=1) ### Integration into IP-Symcon When using the LAN gateway, it can be integrated via the [Device Search](../components/management-console.md). As a system, "OneWire Discovery" must be selected. The Discovery instance offers the creation of a OneWire [Configurator](../concepts.md). After the configurator is created, it can be used to create the individual devices as instances via "Create". The building blocks that are connected to the 1-Wire bus do not send their values automatically - they must be requested. The __Interval__ in the respective instance configuration defines how often the request is done. ![1-Wire: Timer](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/1-wire/6ad04bb9a8-1790424938/1w-timer.png) > **Warning:** Every request takes time and occupies the bus. For this reason, the "Interval" should be used sparingly. In practice, for example, a request cycle of 60 seconds to read a room temperature is more than sufficient. Smaller values under one second cannot be configured for that reason. Furthermore, it should be considered that the bus workload rises with more devices connected to an adapter. In our model home, 30 devices are working without issue on one adapter. Wie recommend an individual power supply and multiple adapters for bigger installations. ### Tips & Tricks * The serial adapter has a different pinout than the USB adapter and does not provide +5 V bus voltage. * For power supply a regulated 5V power supply with current limitation is recommended. * For smaller systems, we recommend using a modular cable with RJ12 or RJ45 plug for creating cable itself and distributing a 3 Series modular socket. The system is then wired 1:1 (star-shaped junctions). __Further links:__ Wikipedia: [https://en.wikipedia.org/wiki/1-Wire](https://en.wikipedia.org/wiki/1-Wire) Manufacturer: [https://www.maximintegrated.com/en/pl_list.cfm/filter/21] __Read the COM Port of a USB Device in Windows (German)__[Video](https://www.youtube.com/embed/0w6weaMF8tg?rel=0&cc_load_policy=1) ## DS2405 Source: https://www.symcon.de/en/service/documentation/module-reference/devices/1-wire/ds2405/ The DS2413 is a 1-port switch (4mA) & input (PIO) module. Unfortunately it is no longer manufactured. As a replacement, we recommend the type [DS2413](1-wire.md). Alternatively, you can set each of the eight channels as "Digital Output" or "Digital Input". Additionally you can "invert the status" (see DS2413). For testing purposes, you have the ability to switch the output "ON" and "OFF". ![DS2405: Configuration](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/1-wire/ds2405/8b38f3a88c-1790424938/ds2405-konfiguration.png) ## OW_SwitchMode Source: https://www.symcon.de/en/service/documentation/module-reference/devices/1-wire/ds2405/ow-switchmode/ `bool OW_SwitchMode(int $InstanceID, bool $Status)` **Parameters** - `$InstanceID` (int): ID of the device to be switched - `$Status` (bool): __TRUE__ for On, __FALSE__ for Off **Returns** (bool): If the command succeeds, it returns __TRUE__, otherwise __FALSE__. __TRUE__ for On, __FALSE__ for Off **Example** ```php OW_SwitchMode(12345, true); //Turn on device ``` ## OW_ToggleMode Source: https://www.symcon.de/en/service/documentation/module-reference/devices/1-wire/ds2405/ow-togglemode/ `bool OW_ToggleMode(int $InstanceID)` Changes the state of the device with the ID __InstanceID__. The current value can be queried in the state variable after the operation. - **Parameters** - `$InstanceID` (int): ID of the device to be switched **Returns** (bool): If the command succeeds, it returns __TRUE__, otherwise __FALSE__. ID of the device to be switched **Example** ```php OW_ToggleMode(12345); //Toggle device ``` ## DS2406 Source: https://www.symcon.de/en/service/documentation/module-reference/devices/1-wire/ds2406/ The DS2406 is a 2-way switch (50 / 8mA), input (PIO) module & 1Kb memory module. ## OW_SetPin Source: https://www.symcon.de/en/service/documentation/module-reference/devices/1-wire/ds2406/ow-setpin/ `bool OW_SetPin(int $InstanceID, int $Pin, bool $Status)` **Parameters** - `$InstanceID` (int): ID of the device to be switched - `$Pin` (int): Pin of the module (0..1) - `$Status` (bool): __TRUE__ for On, __FALSE__ for Off **Returns** (bool): If the command succeeds, it returns __TRUE__, otherwise __FALSE__. __TRUE__ for On, __FALSE__ for Off **Example** ```php OW_SetPin(12345, 0, true); //Turn on device ``` ## DS2408 Source: https://www.symcon.de/en/service/documentation/module-reference/devices/1-wire/ds2408/ The DS2408 and DS2408+ is a 8-port switch & input (PIO) module. Alternatively, you can set each of the eight channels as "Digital Output" or "Digital Input". Additionally you can "invert the status" (see [DS2413](1-wire.md)). For testing purposes, you have the ability to switch the output "ON" and "OFF". ![DS2408: Configuration](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/1-wire/ds2408/ffe14c93a6-1790424938/ds2408-konfiguration.png) ## OW_SetPin Source: https://www.symcon.de/en/service/documentation/module-reference/devices/1-wire/ds2408/ow-setpin/ `bool OW_SetPin(int $InstanceID, int $Pin, bool $Status)` sets a pin from the DS2408 to on/ off **Parameters** - `$InstanceID` (int): ID of the device to be switched - `$Pin` (int): 0-7 - `$Status` (bool): __TRUE__ for on, __FALSE__ for off **Returns** (bool): If the command succeeds, it returns __TRUE__, otherwise __FALSE__. __TRUE__ for on, __FALSE__ for off **Example** ```php OW_SetPin(12345, 2, true); //Turn on pin 2 of the device ``` ## OW_SetPort Source: https://www.symcon.de/en/service/documentation/module-reference/devices/1-wire/ds2408/ow-setport/ `bool OW_SetPort(int $InstanceID, int $Bitmaske)` **Parameters** - `$InstanceID` (int): ID of the device to be switched - `$Bitmaske` (int): 0-255 (Bit0 = Pin0 … Bit7 = Pin7) **Returns** (bool): If the command succeeds, it returns __TRUE__, otherwise __FALSE__. 0-255 (Bit0 = Pin0 … Bit7 = Pin7) **Example** ```php OW_SetPort(12345, 0); //Turn everything off ``` ## OW_SetStrobe Source: https://www.symcon.de/en/service/documentation/module-reference/devices/1-wire/ds2408/ow-setstrobe/ `bool OW_SetStrobe(int $InstanceID, bool $Status)` **Parameters** - `$InstanceID` (int): ID of the device to be switched - `$Status` (bool): __TRUE__ for On, __FALSE__ for Off **Returns** (bool): If the command succeeds, it returns __TRUE__, otherwise __FALSE__. __TRUE__ for On, __FALSE__ for Off **Example** ```php OW_SetStrobe(12345, true); //Turn on strobe ``` ## OW_WriteBytes Source: https://www.symcon.de/en/service/documentation/module-reference/devices/1-wire/ds2408/ow-writebytes/ `bool OW_WriteBytes(int $InstanceID, string $Data)` **Parameters** - `$InstanceID` (int): ID of the device to be switched - `$Data` (string): Sequence of bytes to be sent **Returns** (bool): If the command succeeds, it returns __TRUE__, otherwise __FALSE__. Sequence of bytes to be sent **Example** ```php OW_WriteBytes(12345, Chr(0).Chr(1)); //Send sequence ``` ## OW_WriteBytesMasked Source: https://www.symcon.de/en/service/documentation/module-reference/devices/1-wire/ds2408/ow-writebytesmasked/ `bool OW_WriteBytesMasked(int $InstanceID, string $Data, int $Mask)` **Parameters** - `$InstanceID` (int): ID of the device to be switched - `$Data` (string): Sequence of bytes to be sent - `$Mask` (int): Bitmask of the bit to be set **Returns** (bool): If the command succeeds, it returns __TRUE__, otherwise __FALSE__. Bitmask of the bit to be set **Example** ```php OW_WriteBytesMasked(12345, Chr(255), Chr(1)); //Set only Bit 0 ``` ## DS2413 Source: https://www.symcon.de/en/service/documentation/module-reference/devices/1-wire/ds2413/ The DS2413 is a 2-port switch & input (PIO) module. Its outputs can deliver 20mA. For further details check out the data sheet. > **Note:** Definition of “Status pins”: > A logic low level at the output is rated as "Off"/ "False" (the internal transistor is active). If e.g. an LED is connected with a common anode, it lights at this "Status pin = Off". In this case "Invert status" should be activated. 2 ![DS2413: Configuration](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/1-wire/ds2413/0b9784c119-1790424938/ds2413-konfiguration.png) If a pin is used as a "digital input", make sure that the DS205 has no latch. Thus, no switching pulses are stored. > **Note:** To e.g. evaluate a PIRI (PIR), the timer should be set for ten seconds. Additionally provide at the input a 1M resistor and a capacitor 10uF. Both are commonly connected to 0V. A switching pulse pulls the input short to +5 V. The capacitor buffers the voltage, until the next polling cycle recognizes the pin as HI. ## OW_SetPin Source: https://www.symcon.de/en/service/documentation/module-reference/devices/1-wire/ds2413/ow-setpin/ `bool OW_SetPin(int $InstanceID, int $Pin, bool $Status)` **Parameters** - `$InstanceID` (int): ID of the device to be switched - `$Pin` (int): 0-1 - `$Status` (bool): __TRUE__ for On, __FALSE__ for Off **Returns** (bool): If the command succeeds, it returns __TRUE__, otherwise __FALSE__. __TRUE__ for On, __FALSE__ for Off **Example** ```php OW_SetPin(12345, 0, true); //Turn on Pin 0 ``` ## DS2438 Source: https://www.symcon.de/en/service/documentation/module-reference/devices/1-wire/ds2438/ The DS2438 is originally a "Smart Battery Monitor". For use in the home automation, he has four interesting features: * A voltmeter, this provides the bus voltage - ideal for monitoring (VDD) * A thermometer - can always be useful (Temperature) * An AD converter (VAD) - can be used for measuring the moisture or brightness * A current input (Xsens) - at leisure ![DS2438: Tree](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/1-wire/ds2438/757044ead0-1790424938/ds2438-tree.png) Practical example: moisture measurement The humidity sensor __HIH-4000__ from HONEYWELL has an accuracy of 3.5%, ranging from 0 to 100% RH. Because of its linear output the DS2438 can be read out directly. A temperature compensation can be taken into account because the DS2438 has an internal temperature sensor. As it goes, illustrates the following script: ```php $Vad = GetValue(44045); $Vdd = GetValue(14570); $temp = GetValue(18691); $Srh = ($Vad - 0.958062) * 30.680; $Srh = $Srh / ((1.0305 + (0.000044 * $temp) - (0.0000011 * pow($temp,2)))); echo "Humidity: $Srh %rh Temp.Comp.\n"; SetValue(49935 /*[Humidity %rh]*/, $Srh); ``` ## DS2450 Source: https://www.symcon.de/en/service/documentation/module-reference/devices/1-wire/ds2450/ The DS2450 is an A/D converter module with a resolution of up to 16-bit. Additionally, the four channels can also be used as an output (4 mA). Further details check out on the data sheet. ### Configuration Alternatively, you can select any of the four channels as a "Digital Output" and "Analog Input". In addition, two voltage ranges are available: 2.55 V and 5.1 V. Furthermore, the resolution between 1-bit and 16-bit is adjustable: ![DS2450: Configuration](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/1-wire/ds2450/18eaf9574e-1790424938/ds2450-konfiguration.png) ## OW_SetPin Source: https://www.symcon.de/en/service/documentation/module-reference/devices/1-wire/ds2450/ow-setpin/ `bool OW_SetPin(int $InstanceID, int $Pin, bool $Status)` **Parameters** - `$InstanceID` (int): ID of the device to be switched - `$Pin` (int): 0-3 (A-D) - `$Status` (bool): __TRUE__ for On, __FALSE__ for Off **Returns** (bool): If the command succeeds, it returns __TRUE__, otherwise __FALSE__. __TRUE__ for On, __FALSE__ for Off **Example** ```php OW_SetPin(12345, 2, true); //Turn on Pin C of the device ``` ## DS2890 Source: https://www.symcon.de/en/service/documentation/module-reference/devices/1-wire/ds2890/ The DS2890 is a digital potentiometer with 8-bit resolution. Unfortunately he is no longer manufactured. No replacement type exists. ![DS2890: Configuration](https://www.symcon.de/media/pages/service/dokumentation/modulreferenz/geraete/1-wire/ds2890/6e51cfe06f-1790424938/ds2890-konfiguration.png) "CHARGE PUMP CONSIDERATIONS" should be used on the 1-Wire Center 0 to 10V output. To do this, enable "Use CPC." For a test the slider can be changed and the "SET" button can be pushed. ## OW_SetPosition Source: https://www.symcon.de/en/service/documentation/module-reference/devices/1-wire/ds2890/ow-setposition/ `bool OW_SetPosition(int $InstanceID, int $Value)` **Parameters** - `$InstanceID` (int): ID of the device to be switched - `$Value` (int): 0-255 **Returns** (bool): If the command succeeds, it returns __TRUE__, otherwise __FALSE__. 0-255 **Example** ```php OW_SetPosition(12345, 123); //Set the device on value 123 ``` ## Device List Source: https://www.symcon.de/en/service/documentation/module-reference/devices/1-wire/device-list/ ### Supported Gateways | Gateway | Description | | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------- | | Symcon 1-Wire LAN Gateway
[Product information](https://www.symcon.de/assets/files/product/1-wire-lan-gateway.pdf) | [Order now](https://www.symcon.de/en/shop/gateways/lan-1-wire/) | IP Gateway | | DS2480B | serial interface | | DS2490 (Windows only) | USB adapter | | DS9097U | serial interface | | DS9490R (Windows only) | USB adapter | | Link45 | serial interface | | LinkUSB | USB adapter | ### Supported Components | Product | Description | | --------------------------------------------- | -------------------------------------------------------- | | DS1820 | Thermometer -55°C to +125°C, 0.5 exact at -10°C to +85°C | | DS18B20 | Thermometer -55°C to +125°C, 0.5 exact at -10°C to +85°C | | DS18S20 | Thermometer -55°C to +125°C, 0.5 exact at -10°C to +85°C | | DS1920 | Thermometer -55°C to +100°C, 0.5 | | [DS2405](1-wire.md) | 1-way: Switch & Input (PIO) | | [DS2406](1-wire.md) | 2-way: Switch & Input (PIO) | | DS2407 | 2-way: Switch & Input (PIO) | | [DS2408](1-wire.md) | 8-way: Switch & Input (PIO) | | [DS2408+](1-wire.md) | 8-way: Switch & Input (PIO) | | [DS2413](1-wire.md) | 2-way: Switch & Input (PIO) | | DS2423P | 4KB counter | | [DS2438](1-wire.md) | Current and voltage measurement | | [DS2450](1-wire.md) | A/D converter | | [DS2890](1-wire.md) | Digital potentiometer | ## OW_RequestStatus Source: https://www.symcon.de/en/service/documentation/module-reference/devices/1-wire/ow-requeststatus/ `bool OW_RequestStatus(int $InstanceID)` **Parameters** - `$InstanceID` (int): ID of the device to be switched **Returns** (bool): If the command succeeds, it returns __TRUE__, otherwise __FALSE__. ID of the device to be switched **Example** ```php OW_RequestStatus(12345); //Read out the device ```