==== Information model : Port ====
[Port]^[SensorPort]
[Port]^[ActuatorPort]
[Port]^[LoggingPort]
[SensorPort]0-*[Trigger]
[ReservedPortNumber|1:NodeInfo;2:Environmental]
[Port|+Id:int;+PortNumber:int;-Name:string]
[LoggingPort|ValueA:float;ValueB:int]
[SensorPort]^[PulseSensorPort]
[SensorPort]^[EnvironmentalSensorPort]
[SensorPort]^[NodeHealthSensorPort]
[PulseSensorPort]0-*[PulseHistory]
[EnvironmentalSensorPort]0-*[EnvironmentalHistory]
[NodeHealthSensorPort]0-*[NodeHealthHistory]
[PulseSensorPort|PulseCount:long]
[EnvironmentalSensorPort|+UpdateFreq:int;-Temperature:float;-Humidity:float;-AtmPressur:float]
[NodeHealthSensorPort|+UpdateFrequency;VIn:float;SendErrorCount:int]
[PulseHistory|+NewPulse:int;IsOffset:bool]
[EnvironmentalHistory|-Temperature:float;-Humidity:float;-AtmPressur:float]
[NodeHealthHistory|VIn:float;SendErrorCount:int]
[SensorPort]
[SensorPort]^[PushButtonPort]
[SensorPort]^[SwitchButtonPort]
[SensorPort]^[VarioButtonPort]
[PushButtonPort]0-*[PushButtonPortHistory]
[SwitchButtonPort]0-*[SwitchButtonPortHistory]
[VarioButtonPort]0-*[VarioButtonPortHistory]
[SwitchButtonPort|State:int]
[VarioButtonPort|CurrentLevel:int]
[PushButtonPortHistory|PressStyle:int]
[SwitchButtonPortHistory|NewState:int]
[VarioButtonPortHistory|NewLevel:int]
[SensorPortHistory]^[PulseHistory]
[SensorPortHistory]^[EnvironmentalHistory]
[SensorPortHistory]^[NodeHealthHistory]
[SensorPortHistory]^[PushButtonPortHistory]
[SensorPortHistory]^[SwitchButtonPortHistory]
[SensorPortHistory]^[VarioButtonPortHistory]
[SensorPortHistory|+Timestamp:datetime;+RssI:short]