=8B      !"#$%&'()*+,-./0123456789:;<=>?@A Safe-Inferred uUsed to identify communication groups. Individual and group addresses are created and inspected in similiar fashion. -myGrpAddr :: GroupAddress myGrpAddr = "1/2/3"or :myGrpAddr :: GroupAddress myGrpAddr = toGroupAddress 1 2 3BInspect the components of a group address in the following manner: &(a, b, c) = fromGroupAddress myGrpAddrUsed to determine a message's origin. Each individual address points to a single device in the system. It is used as follows: WmyDeviceAddr :: IndividualAddress myDeviceAddr = "1.2.3" -- With OverloadedStrings onlyor JmyDeviceAddr :: IndividualAddress myDeviceAddr = toIndividualAddress 1 2 3Use ,, in order to dissect an individual address: .(a, b, c) = fromIndividualAddress myDeviceAddrwhere  (a, b, c)0 are the main-line, sub-line and device address.BGroup by numbers.Inspect an individual address.Create an individual address.Inspect a group address.Create a group address.C,Instance for the OverloadedStrings extensionD,Instance for the OverloadedStrings extension BECFD BECFD Safe-Inferred5DPT 9.x -- 16-bit floating (not really) point integer DPT 6.x -- 8-bit signed integer (DPT 4.x and 5.x - 8-bit unsigned integer 4DPT 3.x - 1 control bit and a 3-bit unsigned integerDPT 2.x - 2 bitsDPT 1.x - 1 bitDatapoint Type GHIJKL       GHIJKLNone>A special kind of message targeting only communication groups..Message (very closely related to a CEMI frame)JApplication Protocol Control Information determines the kind of a message.0hIt is possible to connect to a local EIBd server instance via unix socket or remotely via a TCP socket. %connection <- connectLocal "/tmp/eib"or 4connection <- connectRemote "eibd.address.here" 6720MOpaque Connect StructureNSend an APDU to the bus.OGet an APDU from the bus.POpen a GroupSocket connection.QFunction pointer to the EIBClose procedureRConnect to a local unix socket.S=Connect to a remote socket using a host name and port number.T&Interact with the low-level structure.1+Connect to an EIBd server via a TCP Socket.2,Connect to an EIBd server via a Unix Socket.3Default EIBd portUWord8 to APCI.VAPCI to Word8.4'Fetch a message from the EIBd instance.5$Send a message to the EIBd instance.6Alternative to "sendMessage".7Receive a group message.8Send a group message.1 !"#$%&'()*+,-./0WXMNOPQRST123UV45678% !"#$%&'()*+,-./012345678%0123/.-,+*)('&%$#"! 45678/.-,+*)('&%$#"! 0WXMNOPQRST123UV45678None 9Handle cached group values: Group Cache;iExecute a GroupM action. Changes to group values will be send to EIBd after the GroupM action has run.<OTry to execute a GroupM action. If it fails return the given alternative value.=?Similar to "tryGroupM" but without an alternative return value.>Update a group value. The new value will be commited to the cache immediately but not to the bus. See "execGroupM" for more.?Fetch a group value. If a group value is not cached yet, this function will silently fail and stop further instructions. Even in a case of failure, previous changes to group values will be commited to EIBd.@Clear the entire cache.A Remove one group from the cache. 9:;<=>?@A 9:;<=>?@A :9;<=>?@A 9:;<=>?@ANoneB  !"#$%&'()*+,-./0123456789:;<=>?@AY       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUV0WXeibd-client-simple-0.0.4EIBd.Client.AddressEIBd.Client.TypesEIBd.Client.ConnectionEIBd.Client.Groups EIBd.Client GroupAddressIndividualAddressfromIndividualAddresstoIndividualAddressfromGroupAddresstoGroupAddressDPTF16DPTS8DPTU8DPTB1U3DPTB2DPTB1 DatapointTypefromDPTtoDPT GroupMessage GroupWrite GroupResponse GroupReadMessage messageSourcemessageDestination messageTPCI messageAPCImessagePayloadAPCIEscapeRestartMaskVersionResponseMaskVersionRead UserMessage MemoryWriteMemoryResponse MemoryRead AdcResponseAdcReadIndividualResponseIndividualRequestIndividualWriteGroupAddrWriteGroupAddrResponse GroupAddrRead Connection connectRemote connectLocal defaultPort recvMessage sendMessage sendMessage'recvGroupMessagesendGroupMessageGroupM GroupCache execGroupM tryGroupM tryGroupM_putGroupgetGroup clearGroups uncacheGroup groupNumbers$fIsStringGroupAddress$fIsStringIndividualAddress$fShowGroupAddress$fShowIndividualAddress$fDatapointTypeDPTF16$fDatapointTypeInt8$fDatapointTypeWord8$fDatapointTypeDPTB1U3$fDatapointTypeDPTB2$fDatapointTypeBool ConnStruct sendGroup recvGroupopenGroupSocketcloseConnection socketLocal socketRemote withHandletoAPCIfromAPCI connHandle