DAEnetIP1/4 SNMP binding Help I am missing something

EDIT: updated the item config as snmp walking showed not OID’s to be correct

  • Platform information:
    • Hardware:Raspberry pi 3 B+
    • OS: Rasbian
    • Java Runtime Environment: 1.8.0_65
    • openHAB version:2.2.0-1
  • Issue of the topic: I am attempting to setup DAEnetIP1 binding to openhab using SNMPv1.
    I have found some examples of how this “should” be done even an example config provided by the manufacturer but no one seems to have published their implementation actually working.
    What I would like to so is create things that are bound to the inputs or outputs of the DAEnetIP1 board (this should need just a little config change to also work for the DAEnetIP4 since only the OID’s are diffrent). So openhab can use those things to do clever stuff.
    The boars have 8 digital and 8 analogue inputs as well as 12 digital (relay) outputs. They may have various sensors or devices connected to them so and abstaction to “thing” would be rather usefull here.
    But I cannot seem to get openhab to read or write to the board.

Does any one here have a working openhab implementation of the DAEnetIP1(or 4) boards?
What can I do trouble shoot this binding?

  • Please post configurations (if applicable):
    • Items configuration related to the issue
String DO1Name "DO1Name" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.1.4.1:1000]"}
String DO2Name "DO2Name" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.1.4.2:1000]"}
String DO3Name "DO3Name" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.1.4.3:1000]"}
String DO4Name "DO4Name" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.1.4.4:1000]"}
String DO5Name "DO5Name" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.1.4.5:1000]"}
String DO6Name "DO6Name" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.1.4.6:1000]"}
String DO7Name "DO7Name" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.1.4.7:1000]"}
String DO8Name "DO8Name" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.1.4.8:1000]"}
String DO9Name "DO9Name" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.4.4.1:1000]"}
String DO10Name "DO10Name" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.4.4.2:1000]"}
String DO11Name "DO11Name" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.4.4.3:1000]"}
String DO12Name "DO12Name" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.4.4.4:1000]"}
Switch DO1 "DO1" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.1.2.1:1000] >[OFF:172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.1.2.1:0] >[ON:172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.1.2.1:1]"}
Switch DO2 "DO2" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.1.2.2:1000] >[OFF:172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.1.2.2:0] >[ON:172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.1.2.2:1]"}
Switch DO3 "DO3" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.1.2.3:1000] >[OFF:172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.1.2.3:0] >[ON:172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.1.2.3:1]"}
Switch DO4 "DO4" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.1.2.4:1000] >[OFF:172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.1.2.4:0] >[ON:172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.1.2.4:1]"}
Switch DO5 "DO5" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.1.2.5:1000] >[OFF:172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.1.2.5:0] >[ON:172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.1.2.5:1]"}
Switch DO6 "DO6" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.1.2.6:1000] >[OFF:172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.1.2.6:0] >[ON:172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.1.2.6:1]"}
Switch DO7 "DO7" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.1.2.7:1000] >[OFF:172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.1.2.7:0] >[ON:172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.1.2.7:1]"}
Switch DO8 "DO8" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.1.2.8:1000] >[OFF:172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.1.2.8:0] >[ON:172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.1.2.8:1]"}
Switch DO9 "DO9" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.4.2.1:1000] >[OFF:172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.4.2.1:0] >[ON:172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.4.2.1:1]"}
Switch DO10 "DO10" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.4.2.2:1000] >[OFF:172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.4.2.2:0] >[ON:172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.4.2.2:1]"}
Switch DO11 "DO11" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.4.2.3:1000] >[OFF:172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.4.2.3:0] >[ON:172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.4.2.3:1]"}
Switch DO12 "DO12" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.4.2.4:1000] >[OFF:172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.4.2.4:0] >[ON:172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.4.2.4:1]"}

String AI1Name "AI1Name" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.5.7.1:1000]"}
String AI2Name "AI2Name" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.5.7.2:1000]"}
String AI3Name "AI3Name" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.5.7.3:1000]"}
String AI4Name "AI4Name" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.5.7.4:1000]"}
String AI5Name "AI5Name" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.5.7.5:1000]"}
String AI6Name "AI6Name" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.5.7.6:1000]"}
String AI7Name "AI7Name" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.5.7.7:1000]"}
String AI8Name "AI8Name" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.5.7.8:1000]"}
Number AI1 "AI1" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.5.1.1:1000]"}
Number AI2 "AI2" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.5.1.2:1000]"}
Number AI3 "AI3" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.5.1.3:1000]"}
Number AI4 "AI4" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.5.1.4:1000]"}
Number AI5 "AI5" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.5.1.5:1000]"}
Number AI6 "AI6" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.5.1.6:1000]"}
Number AI7 "AI7" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.5.1.7:1000]"}
Number AI8 "AI8" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.5.1.8:1000]"}

String DI1Name "DI1Name" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.6.4.1:1000]"}
String DI2Name "DI2Name" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.6.4.2:1000]"}
String DI3Name "DI3Name" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.6.4.3:1000]"}
String DI4Name "DI4Name" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.6.4.4:1000]"}
String DI5Name "DI5Name" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.6.4.5:1000]"}
String DI6Name "DI6Name" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.6.4.6:1000]"}
String DI7Name "DI7Name" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.6.4.7:1000]"}
String DI8Name "DI8Name" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.6.4.8:1000]"}
Number DI1 "DI1" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.6.5.1:1000]"}
Number DI2 "DI2" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.6.5.2:1000]"}
Number DI3 "DI3" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.6.5.3:1000]"}
Number DI4 "DI4" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.6.5.4:1000]"}
Number DI5 "DI5" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.6.5.5:1000]"}
Number DI6 "DI6" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.6.5.6:1000]"}
Number DI7 "DI7" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.6.5.7:1000]"}
Number DI8 "DI8" {snmp="<[172.16.0.122/7171:private:.1.3.6.1.4.1.32111.1.6.5.8:1000]"}
  • Sitemap configuration related to the issue
 sitemap daenetip4 label="DAEnet IP4 SNMP" {
	
		Frame label="Digital Output 1" {
			Text item=DO1Name label="Name: [%s]" 
			Switch item=DO1 label="State" icon="light"
		}
		Frame label="Digital Output 2" {
			Text item=DO2Name label="Name: [%s]" 
			Switch item=DO2 label="State" icon="light"
		}
		Frame label="Digital Output 3" {
			Text item=DO3Name label="Name: [%s]" 
			Switch item=DO3 label="State" icon="light"
		}
		Frame label="Digital Output 4" {
			Text item=DO4Name label="Name: [%s]" 
			Switch item=DO4 label="State" icon="light"
		}
		Frame label="Digital Output 5" {
			Text item=DO5Name label="Name: [%s]" 
			Switch item=DO5 label="State" icon="light"
		}
		Frame label="Digital Output 6" {
			Text item=DO6Name label="Name: [%s]" 
			Switch item=DO6 label="State" icon="light"
		}
		Frame label="Digital Output 7" {
			Text item=DO7Name label="Name: [%s]" 
			Switch item=DO7 label="State" icon="light"
		}
		Frame label="Digital Output 8" {
			Text item=DO8Name label="Name: [%s]" 
			Switch item=DO8 label="State" icon="light"
		}
		Frame label="Digital Output 9" {
			Text item=DO9Name label="Name: [%s]" 
			Switch item=DO9 label="State" icon="light"
		}
		Frame label="Digital Output 10" {
			Text item=DO10Name label="Name: [%s]" 
			Switch item=DO10 label="State" icon="light"
		}
		Frame label="Digital Output 11" {
			Text item=DO11Name label="Name: [%s]" 
			Switch item=DO11 label="State" icon="light"
		}
		Frame label="Digital Output 12" {
			Text item=DO12Name label="Name: [%s]" 
			Switch item=DO12 label="State" icon="light"
		}

	
		Frame label="Digital Input 1" {
			Text item=DI1Name label="Name: [%s]" 
			Text item=DI1 label="State: [%s]" icon="light"
		}
		Frame label="Digital Input 2" {
			Text item=DI2Name label="Name: [%s]" 
			Text item=DI2 label="State: [%s]" icon="light"
		}
		Frame label="Digital Input 3" {
			Text item=DI3Name label="Name: [%s]" 
			Text item=DI3 label="State: [%s]" icon="light"
		}
		Frame label="Digital Input 4" {
			Text item=DI4Name label="Name: [%s]" 
			Text item=DI4 label="State: [%s]" icon="light"
		}
		Frame label="Digital Input 5" {
			Text item=DI5Name label="Name: [%s]" 
			Text item=DI5 label="State: [%s]" icon="light"
		}
		Frame label="Digital Input 6" {
			Text item=DI6Name label="Name: [%s]" 
			Text item=DI6 label="State: [%s]" icon="light"
		}
		Frame label="Digital Input 7" {
			Text item=DI7Name label="Name: [%s]" 
			Text item=DI7 label="State: [%s]" icon="light"
		}
		Frame label="Digital Input 8" {
			Text item=DI8Name label="Name: [%s]" 
			Text item=DI8 label="State: [%s]" icon="light"
		}

		Frame label="Analog Input 1" {
			Text item=AI1Name label="Name: [%s]" 
			Text item=AI1 label="Value: [%s]" 
		}
		Frame label="Analog Input 2" {
			Text item=AI2Name label="Name: [%s]" 
			Text item=AI2 label="Value: [%s]" 
		}
		Frame label="Analog Input 3" {
			Text item=AI3Name label="Name: [%s]" 
			Text item=AI3 label="Value: [%s]" 
		}
		Frame label="Analog Input 4" {
			Text item=AI4Name label="Name: [%s]" 
			Text item=AI4 label="Value: [%s]" 
		}
		Frame label="Analog Input 5" {
			Text item=AI5Name label="Name: [%s]" 
			Text item=AI5 label="Value: [%s]" 
		}
		Frame label="Analog Input 6" {
			Text item=AI6Name label="Name: [%s]" 
			Text item=AI6 label="Value: [%s]" 
		}
		Frame label="Analog Input 7" {
			Text item=AI7Name label="Name: [%s]" 
			Text item=AI7 label="Value: [%s]" 
		}
		Frame label="Analog Input 8" {
			Text item=AI8Name label="Name: [%s]" 
			Text item=AI8 label="Value: [%s]" 
		}
}

  • Rules code related to the issue
// Imports
rule "DIState"
when
	Item DI received update
then		
	if((DI.state as DecimalType).intValue.bitwiseAnd(0x01)==0x01) DI1.postUpdate("ON") else DI1.postUpdate("OFF")
	if((DI.state as DecimalType).intValue.bitwiseAnd(0x02)==0x02) DI2.postUpdate("ON") else DI2.postUpdate("OFF")
	if((DI.state as DecimalType).intValue.bitwiseAnd(0x04)==0x04) DI3.postUpdate("ON") else DI3.postUpdate("OFF")
	if((DI.state as DecimalType).intValue.bitwiseAnd(0x08)==0x08) DI4.postUpdate("ON") else DI4.postUpdate("OFF")
	if((DI.state as DecimalType).intValue.bitwiseAnd(0x10)==0x10) DI5.postUpdate("ON") else DI5.postUpdate("OFF")
	if((DI.state as DecimalType).intValue.bitwiseAnd(0x20)==0x20) DI6.postUpdate("ON") else DI6.postUpdate("OFF")
	if((DI.state as DecimalType).intValue.bitwiseAnd(0x40)==0x40) DI7.postUpdate("ON") else DI7.postUpdate("OFF")
	if((DI.state as DecimalType).intValue.bitwiseAnd(0x80)==0x80) DI8.postUpdate("ON") else DI8.postUpdate("OFF")
end
rule "AIState"
when
	Item AI received update
then		
	if((AI.state as DecimalType).intValue.bitwiseAnd(0x01)==0x01) AI1.postUpdate("ON") else AI1.postUpdate("OFF")
	if((AI.state as DecimalType).intValue.bitwiseAnd(0x02)==0x02) AI2.postUpdate("ON") else AI2.postUpdate("OFF")
	if((AI.state as DecimalType).intValue.bitwiseAnd(0x04)==0x04) AI3.postUpdate("ON") else AI3.postUpdate("OFF")
	if((AI.state as DecimalType).intValue.bitwiseAnd(0x08)==0x08) AI4.postUpdate("ON") else AI4.postUpdate("OFF")
	if((AI.state as DecimalType).intValue.bitwiseAnd(0x10)==0x10) AI5.postUpdate("ON") else AI5.postUpdate("OFF")
	if((AI.state as DecimalType).intValue.bitwiseAnd(0x20)==0x20) AI6.postUpdate("ON") else AI6.postUpdate("OFF")
	if((AI.state as DecimalType).intValue.bitwiseAnd(0x40)==0x40) AI7.postUpdate("ON") else AI7.postUpdate("OFF")
	if((AI.state as DecimalType).intValue.bitwiseAnd(0x80)==0x80) AI8.postUpdate("ON") else AI8.postUpdate("OFF")
end
rule "DOState"
when
	Item DO received update
then		
	logInfo("DO received update","DO received update")
	if((DO.state as DecimalType).intValue.bitwiseAnd(0x0001)==0x0001) DO1.postUpdate(ON) else DO1.postUpdate(OFF)
	if((DO.state as DecimalType).intValue.bitwiseAnd(0x0002)==0x0002) DO2.postUpdate(ON) else DO2.postUpdate(OFF)
	if((DO.state as DecimalType).intValue.bitwiseAnd(0x0004)==0x0004) DO3.postUpdate(ON) else DO3.postUpdate(OFF)
	if((DO.state as DecimalType).intValue.bitwiseAnd(0x0008)==0x0008) DO4.postUpdate(ON) else DO4.postUpdate(OFF)
	if((DO.state as DecimalType).intValue.bitwiseAnd(0x0010)==0x0010) DO5.postUpdate(ON) else DO5.postUpdate(OFF)
	if((DO.state as DecimalType).intValue.bitwiseAnd(0x0020)==0x0020) DO6.postUpdate(ON) else DO6.postUpdate(OFF)
	if((DO.state as DecimalType).intValue.bitwiseAnd(0x0040)==0x0040) DO7.postUpdate(ON) else DO7.postUpdate(OFF)
	if((DO.state as DecimalType).intValue.bitwiseAnd(0x0080)==0x0080) DO8.postUpdate(ON) else DO8.postUpdate(OFF)
	if((DO.state as DecimalType).intValue.bitwiseAnd(0x0100)==0x0100) DO9.postUpdate(ON) else DO9.postUpdate(OFF)
	if((DO.state as DecimalType).intValue.bitwiseAnd(0x0200)==0x0200) DO10.postUpdate(ON) else DO10.postUpdate(OFF)
	if((DO.state as DecimalType).intValue.bitwiseAnd(0x0200)==0x0400) DO11.postUpdate(ON) else DO11.postUpdate(OFF)
	if((DO.state as DecimalType).intValue.bitwiseAnd(0x0200)==0x0800) DO12.postUpdate(ON) else DO12.postUpdate(OFF)
end
  • Services configuration related to the issue
# Listening Port (optional, defaults to '162')
port=1620
# The SNMP community to listen to (optional, defaults to 'public')
community=glados
# The SNMP retry timeout (in milliseconds). Defaults to 1500.
# Sets the number of milliseconds between retries.
timeout=2000
# The SNMP number of retries. Defaults to 0.
# Sets the number of retries before aborting the request.
retries=3

  • If logs where generated please post these here using code fences:
2018-04-16 17:33:20.257 [INFO ] [.dashboard.internal.DashboardService] - Started dashboard at http://172.16.0.73:8080
2018-04-16 17:33:20.343 [INFO ] [.dashboard.internal.DashboardService] - Started dashboard at https://172.16.0.73:8443
2018-04-16 17:33:26.665 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'daenetip4.items'
2018-04-16 17:33:35.082 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'daenetip4.rules'
2018-04-16 17:33:35.361 [INFO ] [thome.model.lsp.internal.ModelServer] - Started Language Server Protocol (LSP) service on port 5007
2018-04-16 17:33:35.881 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'daenetip4.sitemap'
2018-04-16 17:33:38.510 [INFO ] [basic.internal.servlet.WebAppServlet] - Started Basic UI at /basicui/app
2018-04-16 17:33:38.871 [INFO ] [assic.internal.servlet.WebAppServlet] - Started Classic UI at /classicui/app
2018-04-16 17:33:38.938 [INFO ] [arthome.ui.paper.internal.PaperUIApp] - Started Paper UI at /paperui
2018-04-16 17:33:39.044 [INFO ] [ui.habmin.internal.servlet.HABminApp] - Started HABmin servlet at /habmin
2018-04-16 17:33:39.209 [INFO ] [panel.internal.HABPanelDashboardTile] - Started HABPanel at /habpanel
2018-04-16 17:33:39.444 [INFO ] [b.core.service.AbstractActiveService] - SNMP Refresh Service has been started
2018-04-16 17:33:39.469 [WARN ] [ence.jdbc.internal.JdbcConfiguration] - JDBC url is missing - please configure in openhab.cfg like 'jdbc:<service>:<host>[:<port>;<attributes>]'
2018-04-16 17:33:39.472 [WARN ] [persistence.jdbc.internal.JdbcMapper] - JDBC::openConnection: no driver available!
2018-04-16 17:33:39.474 [WARN ] [persistence.jdbc.internal.JdbcMapper] - JDBC::openConnection: no driver available!
2018-04-16 17:35:46.327 [WARN ] [org.eclipse.jetty.http.HttpParser   ] - Illegal character 0x16 in state=START for buffer HeapByteBuffer@127e68[p=1,l=517,c=8192,r=516]={\x16<<<\x03\x01\x02\x00\x01\x00\x01\xFc\x03\x03\xEfI&'4\xA7F...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>>>cebe654bb39\r\nIf-N...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00}
2018-04-16 17:35:46.333 [WARN ] [org.eclipse.jetty.http.HttpParser   ] - bad HTTP parsed: 400 Illegal character 0x16 for HttpChannelOverHttp@c9e166{r=0,c=false,a=IDLE,uri=null}
2018-04-16 17:35:46.332 [WARN ] [org.eclipse.jetty.http.HttpParser   ] - Illegal character 0x16 in state=START for buffer HeapByteBuffer@1c2d022[p=1,l=517,c=8192,r=516]={\x16<<<\x03\x01\x02\x00\x01\x00\x01\xFc\x03\x03\x18\x0f\xB7\x9b\x84\x06\x9a...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00}
2018-04-16 17:35:46.336 [WARN ] [org.eclipse.jetty.http.HttpParser   ] - bad HTTP parsed: 400 Illegal character 0x16 for HttpChannelOverHttp@ffc440{r=0,c=false,a=IDLE,uri=null}
2018-04-16 17:35:46.343 [WARN ] [org.eclipse.jetty.http.HttpParser   ] - Illegal character 0x16 in state=START for buffer HeapByteBuffer@1c2d022[p=1,l=179,c=8192,r=178]={\x16<<<\x03\x01\x00\xAe\x01\x00\x00\xAa\x03\x03\x04\xCa3\x13\x15Y\xE3...\x00\x08\xCa\xCa\x00\x1d\x00\x17\x00\x18\x1a\x1a\x00\x01\x00>>>\x08http/1.1uP\x00\x00\x00\x0b\x00\x02...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00}
2018-04-16 17:35:46.347 [WARN ] [org.eclipse.jetty.http.HttpParser   ] - bad HTTP parsed: 400 Illegal character 0x16 for HttpChannelOverHttp@1970cf7{r=0,c=false,a=IDLE,uri=null}
2018-04-16 17:35:46.354 [WARN ] [org.eclipse.jetty.http.HttpParser   ] - Illegal character 0x16 in state=START for buffer HeapByteBuffer@1c2d022[p=1,l=179,c=8192,r=178]={\x16<<<\x03\x01\x00\xAe\x01\x00\x00\xAa\x03\x03\xCf\xAc\xBb\xF3D\x1bR...\x00\x08\xAa\xAa\x00\x1d\x00\x17\x00\x18\xFa\xFa\x00\x01\x00>>>\x08http/1.1uP\x00\x00\x00\x0b\x00\x02...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00}
2018-04-16 17:35:46.357 [WARN ] [org.eclipse.jetty.http.HttpParser   ] - bad HTTP parsed: 400 Illegal character 0x16 for HttpChannelOverHttp@1083387{r=0,c=false,a=IDLE,uri=null}

Ok so appart from the wrong OID’s I had a some port configuration in there which was causing snmp to be directed at the wrong port. following item configuration works. As in I can use the switches to set outputs.

However having to do this thru a sitemap and not having the rest of the power of openhab at my disposal seems like les then half an integration. After all I want these inputs to be able to control just about whatever else I manage to connect to openhap and vice versa.

So how to get a proper binding going that allowes me more functionality?

String DO1Name "DO1Name" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.1.4.1:1000]"}
String DO2Name "DO2Name" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.1.4.2:1000]"}
String DO3Name "DO3Name" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.1.4.3:1000]"}
String DO4Name "DO4Name" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.1.4.4:1000]"}
String DO5Name "DO5Name" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.1.4.5:1000]"}
String DO6Name "DO6Name" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.1.4.6:1000]"}
String DO7Name "DO7Name" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.1.4.7:1000]"}
String DO8Name "DO8Name" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.1.4.8:1000]"}
String DO9Name "DO9Name" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.4.4.1:1000]"}
String DO10Name "DO10Name" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.4.4.2:1000]"}
String DO11Name "DO11Name" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.4.4.3:1000]"}
String DO12Name "DO12Name" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.4.4.4:1000]"}
Switch DO1 "DO1" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.1.2.1:1000:MAP(daenetip4.map)] >[OFF:172.16.0.122:glados:.1.3.6.1.4.1.32111.1.1.2.1:1] >[ON:172.16.0.122:glados:.1.3.6.1.4.1.32111.1.1.2.1:0]"}
Switch DO2 "DO2" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.1.2.2:1000:MAP(daenetip4.map)] >[OFF:172.16.0.122:glados:.1.3.6.1.4.1.32111.1.1.2.2:1] >[ON:172.16.0.122:glados:.1.3.6.1.4.1.32111.1.1.2.2:0]"}
Switch DO3 "DO3" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.1.2.3:1000:MAP(daenetip4.map)] >[OFF:172.16.0.122:glados:.1.3.6.1.4.1.32111.1.1.2.3:1] >[ON:172.16.0.122:glados:.1.3.6.1.4.1.32111.1.1.2.3:0]"}
Switch DO4 "DO4" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.1.2.4:1000:MAP(daenetip4.map)] >[OFF:172.16.0.122:glados:.1.3.6.1.4.1.32111.1.1.2.4:1] >[ON:172.16.0.122:glados:.1.3.6.1.4.1.32111.1.1.2.4:0]"}
Switch DO5 "DO5" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.1.2.5:1000:MAP(daenetip4.map)] >[OFF:172.16.0.122:glados:.1.3.6.1.4.1.32111.1.1.2.5:1] >[ON:172.16.0.122:glados:.1.3.6.1.4.1.32111.1.1.2.5:0]"}
Switch DO6 "DO6" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.1.2.6:1000:MAP(daenetip4.map)] >[OFF:172.16.0.122:glados:.1.3.6.1.4.1.32111.1.1.2.6:1] >[ON:172.16.0.122:glados:.1.3.6.1.4.1.32111.1.1.2.6:0]"}
Switch DO7 "DO7" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.1.2.7:1000:MAP(daenetip4.map)] >[OFF:172.16.0.122:glados:.1.3.6.1.4.1.32111.1.1.2.7:1] >[ON:172.16.0.122:glados:.1.3.6.1.4.1.32111.1.1.2.7:0]"}
Switch DO8 "DO8" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.1.2.8:1000:MAP(daenetip4.map)] >[OFF:172.16.0.122:glados:.1.3.6.1.4.1.32111.1.1.2.8:1] >[ON:172.16.0.122:glados:.1.3.6.1.4.1.32111.1.1.2.8:0]"}
Switch DO9 "DO9" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.4.2.1:1000:MAP(daenetip4.map)] >[OFF:172.16.0.122:glados:.1.3.6.1.4.1.32111.1.4.2.1:1] >[ON:172.16.0.122:glados:.1.3.6.1.4.1.32111.1.4.2.1:0]"}
Switch DO10 "DO10" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.4.2.2:1000:MAP(daenetip4.map)] >[OFF:172.16.0.122:glados:.1.3.6.1.4.1.32111.1.4.2.2:1] >[ON:172.16.0.122:glados:.1.3.6.1.4.1.32111.1.4.2.2:0]"}
Switch DO11 "DO11" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.4.2.3:1000:MAP(daenetip4.map)] >[OFF:172.16.0.122:glados:.1.3.6.1.4.1.32111.1.4.2.3:1] >[ON:172.16.0.122:glados:.1.3.6.1.4.1.32111.1.4.2.3:0]"}
Switch DO12 "DO12" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.4.2.4:1000:MAP(daenetip4.map)] >[OFF:172.16.0.122:glados:.1.3.6.1.4.1.32111.1.4.2.4:1] >[ON:172.16.0.122:glados:.1.3.6.1.4.1.32111.1.4.2.4:0]"}

String AI1Name "AI1Name" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.5.7.1:1000]"}
String AI2Name "AI2Name" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.5.7.2:1000]"}
String AI3Name "AI3Name" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.5.7.3:1000]"}
String AI4Name "AI4Name" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.5.7.4:1000]"}
String AI5Name "AI5Name" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.5.7.5:1000]"}
String AI6Name "AI6Name" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.5.7.6:1000]"}
String AI7Name "AI7Name" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.5.7.7:1000]"}
String AI8Name "AI8Name" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.5.7.8:1000]"}
Number AI1 "AI1" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.5.1.1:1000]"}
Number AI2 "AI2" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.5.1.2:1000]"}
Number AI3 "AI3" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.5.1.3:1000]"}
Number AI4 "AI4" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.5.1.4:1000]"}
Number AI5 "AI5" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.5.1.5:1000]"}
Number AI6 "AI6" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.5.1.6:1000]"}
Number AI7 "AI7" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.5.1.7:1000]"}
Number AI8 "AI8" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.5.1.8:1000]"}

String DI1Name "DI1Name" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.6.4.1:1000]"}
String DI2Name "DI2Name" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.6.4.2:1000]"}
String DI3Name "DI3Name" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.6.4.3:1000]"}
String DI4Name "DI4Name" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.6.4.4:1000]"}
String DI5Name "DI5Name" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.6.4.5:1000]"}
String DI6Name "DI6Name" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.6.4.6:1000]"}
String DI7Name "DI7Name" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.6.4.7:1000]"}
String DI8Name "DI8Name" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.6.4.8:1000]"}
Number DI1 "DI1" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.6.5.1:1000]"}
Number DI2 "DI2" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.6.5.2:1000]"}
Number DI3 "DI3" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.6.5.3:1000]"}
Number DI4 "DI4" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.6.5.4:1000]"}
Number DI5 "DI5" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.6.5.5:1000]"}
Number DI6 "DI6" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.6.5.6:1000]"}
Number DI7 "DI7" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.6.5.7:1000]"}
Number DI8 "DI8" {snmp="<[172.16.0.122:glados:.1.3.6.1.4.1.32111.1.6.5.8:1000]"}

Ok now I could really use some expert help.
I been looking over https://docs.openhab.org/configuration/things.html
The way I understand it Items can refer to things. However for this SNMP mapping I would need to link the thing to an item.
Unless there is a thing syntax for creating the SNMP binding which I missed.

How to create things for these SNMP items?
EDIT: ok this does not apprear to be nesisary I does look like items can be used in a similar way to channels.

In my openhab paper ui it does not show SNMP under the bindings though it does show the binding as installed. Is this normal because of it being a 1.x binding?

It is a 1.x binding and therefore doesn’t have “things”
You don’t need things with this binding. The items are bound in the item definition

A yes I figured that much.
Still tweaking it since for instance all the names are kinda pointless. I intend to add traps and then publish this as a working config for openhab2.