NETIO-PRODUCTS-NETIO-MIB DEFINITIONS ::= BEGIN

--    NETIO-MIB 1.09
--
--        History:
--    1.00     13.7.2016  Bretislav Bakala  - Created
--    1.01     27.3.2017  Petr Kristal - MODULE-IDENTITY capitals change
--    1.02     27.5.2017  Jiri Zouhar - Added voltage, frequency, current and power factor.
--    1.03     8.12.2017  Jiri Zouhar - Fixed outlet power factor range & naming. netioGlobalMeasure and netioOutletTable format definition fixed.
--    1.04     8.12.2017  Jiri Zouhar - Synchronized naming conventions with other protocols
--    1.05     6.1.2018   Jiri Zouhar - Change outlet to output in all names
--    1.06     7.5.2020   David Foldyna/Ignac Jebetyc - added Inputs support
--    1.07     1.4.2020 (april) Frantisek Vochcampadlo - NR counters added
--    1.08     3.9.2021   Ondrej Polanecky - Change 4 outputs to 8
--    1.09     31.12.2021 Milos Bombera - added N/A for unsupported inputs/outputs
--    1.10     18.7.2025  Milos Bombera - added temperature and humidity sensors
--
--  This is an MIB file for Netio product family - programable and remote controlable LAN/WiFi power sockets
--  www.netio-products.com

IMPORTS
    MODULE-IDENTITY, enterprises, OBJECT-TYPE    FROM SNMPv2-SMI
    DateAndTime                                  FROM SNMPv2-TC

;

netioProducts MODULE-IDENTITY
    LAST-UPDATED "201703270000Z"
    ORGANIZATION "www.netio-products.com"
    CONTACT-INFO
        "postal: NETIO products a.s.
                 Mezi vodami 1955/19
                 CZ 14300, Praha 4, Modrany

        email:    info@netio.eu"
    DESCRIPTION  "Netio specific data structures"
    REVISION     "201703270000Z"
    DESCRIPTION  "NETIO products module"
    ::= { enterprises 47952 }

--
-- top level structure
--
netio4        OBJECT IDENTIFIER ::= { netioProducts 1 }


netioOutputTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF NetioOutputEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
    "This table contains current status of Netio outputs."
     
    ::= { netio4 1 }

netioOutputEntry OBJECT-TYPE
    SYNTAX      NetioOutputEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
    "A row describing one netio output."
    INDEX   { netioOutputID }
    ::= {netioOutputTable 1 }

NetioOutputEntry ::= SEQUENCE {
    netioOutputID INTEGER(1..8),
    netioOutputName    OCTET STRING,
    netioOutputState    INTEGER(0..1),
    netioOutputStateString    OCTET STRING,
    netioOutputAction    INTEGER(0..5),
    netioOutputLoad INTEGER(0..2147483647), -- Integer32
    netioOutputEnergy INTEGER (0..9223372036854775807), -- Integer64 
    netioOutputEnergyStart DateAndTime,
    netioOutputCurrent INTEGER(0..2147483647),
    netioOutputPowerFactor INTEGER(0..1000),
    netioOutputPhase INTEGER(0..1000),
    netioOutputEnergyNR INTEGER (0..9223372036854775807), -- Integer64 
    netioOutputReverseEnergy INTEGER (0..9223372036854775807) -- Integer64 
}

netioOutputID OBJECT-TYPE
    SYNTAX      INTEGER {
        NA(-1)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
    "Output number."
    ::= { netioOutputEntry 1 }

netioOutputName OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(0..100))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
    "Description of the output given by user."
    ::= { netioOutputEntry 2 }

netioOutputState OBJECT-TYPE
    SYNTAX      INTEGER {
        off(0),
        on(1),
        NA(-1)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
    "Current output state."
    ::= { netioOutputEntry 3 }

netioOutputStateString OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(0..20))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
    "Current output state (string)."
    ::= { netioOutputEntry 4 }

netioOutputAction OBJECT-TYPE
    SYNTAX      INTEGER {
        off(0),
        on(1),
        reset(2),
        shortOn(3),
        switch(4),
        idle(5),
        NA(-1)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
    "Command to control output."
    ::= { netioOutputEntry 5 }

netioOutputLoad OBJECT-TYPE
    SYNTAX      INTEGER(0..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
    "Current power consumption in Watts. 0 when power meters are not available"
    ::= { netioOutputEntry 25 }

netioOutputEnergy OBJECT-TYPE
    SYNTAX      INTEGER(0..9223372036854775807)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
    "Cumulated consumption from netioOutputEnergyStart. In Wh. 0 when power meters are not available."
    ::= { netioOutputEntry 26 }

netioOutputEnergyStart OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
    "Start time from which energy is counted. UTC based. for backward compatibility only, is the same for all outputs. use netioGlobalMeasure.netioEnergyStart instead."
    ::= { netioOutputEntry 27 }

netioOutputCurrent OBJECT-TYPE
    SYNTAX      INTEGER(0..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
    "Current current in mA. 0 when power meters are not available"
    ::= { netioOutputEntry 28 }

netioOutputPowerFactor OBJECT-TYPE
    SYNTAX      INTEGER(0..1000)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
    "Current power factor * 1000. 0 when power meters are not available"
    ::= { netioOutputEntry 29 }

netioOutputPhase OBJECT-TYPE
    SYNTAX      INTEGER(0..1000)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
    "Current phase * 100. 999 when power meters are not available"
    ::= { netioOutputEntry 30 }

netioOutputEnergyNR OBJECT-TYPE
    SYNTAX      INTEGER(0..9223372036854775807)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
    "Cumulated non-resettable consumption from the born of device. In Wh. 0 when power meters are not available."
    ::= { netioOutputEntry 31 }

netioOutputReverseEnergy OBJECT-TYPE
    SYNTAX      INTEGER(0..9223372036854775807)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
    "Cumulated delivered energy from netioOutputEnergyStart. In Wh. 0 when power meters are not available."
    ::= { netioOutputEntry 32 }

netioOutputReverseEnergyNR OBJECT-TYPE
    SYNTAX      INTEGER(0..9223372036854775807)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
    "Cumulated non-resettable delivered energy from netioOutputEnergyStart. In Wh. 0 when power meters are not available."
    ::= { netioOutputEntry 33 }
    

netioGlobalMeasure OBJECT IDENTIFIER ::= { netio4 2 }

netioVoltage OBJECT-TYPE
    SYNTAX      INTEGER(0..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
    "Voltage in the power grid in mV. 0 when power meters are not available"
     
    ::= { netioGlobalMeasure 1 }

netioFrequency OBJECT-TYPE
    SYNTAX      INTEGER(0..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
    "Frequency in the power grid in mHz. 0 when power meters are not available"
     
    ::= { netioGlobalMeasure 2 }

netioTotalCurrent OBJECT-TYPE
    SYNTAX      INTEGER(0..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
    "Total current for all outputs in mA. 0 when power meters are not available"
     
    ::= { netioGlobalMeasure 3 }

netioOverallPowerFactor OBJECT-TYPE
    SYNTAX      INTEGER(0..1000)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
    "Overall power factor across all outputs. 0 when power meters are not available"
     
    ::= { netioGlobalMeasure 4 }

netioTotalLoad OBJECT-TYPE
    SYNTAX      INTEGER(0..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
    "Total load for all outputs in W. 0 when power meters are not available"
     
    ::= { netioGlobalMeasure 5 }

netioTotalEnergy OBJECT-TYPE
    SYNTAX      INTEGER(0..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
    "Total energy for all outputs in Wh starting from netioEnergyStart. 0 when power meters are not available"
     
    ::= { netioGlobalMeasure 6 }

netioEnergyStart OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
    "Start time from which energy is counted. UTC based."
     
    ::= { netioGlobalMeasure 7 }

netioTotalPhase OBJECT-TYPE
    SYNTAX      INTEGER(0..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
    "Total phase for all outputs. 0 or 999 when this value is not available"
     
    ::= { netioGlobalMeasure 8 }

netioTotalReverseEnergy OBJECT-TYPE
    SYNTAX      INTEGER(0..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
    "Total Reverse Energy for all outputs."
     
    ::= { netioGlobalMeasure 9 }

netioTotalEnergyNR OBJECT-TYPE
    SYNTAX      INTEGER(0..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
    "Total Energy Non Ressetable for all outputs."
     
    ::= { netioGlobalMeasure 10 }

netioTotalReverseEnergyNR OBJECT-TYPE
    SYNTAX      INTEGER(0..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
    "Total Reverse Energy Non Ressetable for all outputs."
     
    ::= { netioGlobalMeasure 11 }

netioInputTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF NetioInputEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
    "This table contains current status of Netio Inputs."
     
    ::= { netio4 3 }

netioInputEntry OBJECT-TYPE
    SYNTAX      NetioInputEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
    "A row describing one netio input."
    INDEX   { netioInputID }
    ::= {netioInputTable 1 }
    
NetioInputEntry ::= SEQUENCE {
    netioInputID INTEGER(1..8),
    netioInputName    OCTET STRING,
    netioInputState    INTEGER(0..1),
    netioInputStateString    OCTET STRING,
    netioInputS0Counter INTEGER (0..9223372036854775807) -- Integer64 
}

netioInputID OBJECT-TYPE
    SYNTAX      INTEGER {
        NA(-1)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
    "Input number."
    ::= { netioInputEntry 1 }

netioInputName OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(0..100))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
    "Description of the input given by user."
    ::= { netioInputEntry 2 }

netioInputState OBJECT-TYPE
    SYNTAX      INTEGER {
        off(0),
        on(1),
        NA(-1)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
    "Current input state."
    ::= { netioInputEntry 3 }

netioInputStateString OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(0..20))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
    "Current input state (string)."
    ::= { netioInputEntry 4 }

netioInputS0Counter OBJECT-TYPE
    SYNTAX      INTEGER{
        NA(-1)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
    "S0Counter."
    ::= { netioInputEntry 5 }


netioSensorTemperature OBJECT-TYPE
    SYNTAX      INTEGER{
        NA(9990)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
    "Temperature in tenths of a degree Celsius."
    ::= { netioInputEntry 6 }


netioSensorTemperatureFahrenheit OBJECT-TYPE
    SYNTAX      INTEGER{
        NA(9990)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
    "Temperature in tenths of a degree Fahrenheit."
    ::= { netioInputEntry 7 }


netioSensorHumidity OBJECT-TYPE
    SYNTAX      INTEGER{
        NA(9990)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
    "Relative humidity."
    ::= { netioInputEntry 8 }

END
