Odczyt danych¶
Dane z tcPDU można odczytywać na żądanie przez specjalne zapytanie HTTP oraz polecenie MQTT. Wszystkie parametry urządzenia są podzielone na grupy do odczytu, tak by można z dużą dowolnością wybierać i odczytywać tylko pożądane wartości. Odpowiedź zawiera zmienne z wybranych grup w formacie JSON.
HTTP¶
Dostępne są dwa zapytania - jedno o dane statyczne i drugie o dane dynamiczne (określenie umowne). Dane do odczytu wybiera się umieszczając wybrane grupy jako parametry zapytania HTTP w następujący sposób:
-
dane statyczne:
http://[IP]/api/v1/read/set/?[GRUPA 1]
http://[IP]/api/v1/read/set/?[GRUPA 1]&[GRUPA 2]&[GRUPA 3]
np.
http://192.168.1.130/api/v1/read/set/?outConfig
http://192.168.1.130/api/v1/read/set/?outConfig&dsConfig&i2cConfig&diffConfig
-
dane dynamiczne:
http://[IP]/api/v1/read/status/?[GRUPA 1]
http://[IP]/api/v1/read/status/?[GRUPA 1]&[GRUPA 2]&[GRUPA 3]
np.
http://192.168.1.130/api/v1/read/status/?boardValues
http://192.168.1.130/api/v1/read/status/?boardValues&statusValues&timeValues&outValues&dsValues&i2cValues&diffValues
Kompletna lista grup i zawartych w nich danych jest opisana w Lista grup.
MQTT¶
Ta funkcja będzie dostępna w przyszłej wersji firmware.
Polecenie odczytu danych po MQTT powinno byc wysłane jak inne polecenia MQTT (więcej na ten temat). Format polecenia jest następujący:
read=[GRUPA 1]
read=[GRUPA 1]&[GRUPA 2]&[GRUPA 3]
Lista grup¶
Grupy odczytów są rozdzielone na dwa rodzaje:
- z danymi statycznymi, takimi jak ustawienia, nazwy odczytów czujników
- z danymi dynamicznymi, takimi jak odczyty czujników
Rodzaje grup są odczytywane oddzielnymi zapytaniami, przy czym w każdym zapytaniu może być zawartych wiele grup (sposób odczytu opisany powyżej).
W poniższej liście przy nazwach niektórych zmiennych występują dopiski {X,Y}
, które oznaczają, że jest to zestaw odczytów. Przykładowo iDValue{1,2}
odpowiada iDValue1
i iDValue2
, a oledLine{1,4}{1,4}
odpowiada oledLine11
, oledLine12
, oledLine13
, oledLine14
, oledLine21
, oledLine22
, oledLine23
, oledLine24
, oledLine31
, oledLine32
, oledLine33
, oledLine34
, oledLine41
, oledLine42
, oledLine43
, oledLine44
.
Dane statyczne¶
-
generalConfig
[ "hardwareVersion", "softwareVersion", "mqttDeviceID", "modemPresent" ]
-
webConfig
[ "webRefresh", "webLanguage", "webUserSetNames", "webReadOnlyUser", "webAutoSignIn", "webHomepage", "webCheckUpdates", "webVisibility", "webPositionTop", "webPositionLeft", "picture" ]
-
varConfig
[ "varName{1,8}" ]
-
outConfig
[ "outName{1,7}", "outAutoSwitch{1,7}", "outAutoSwitchH{1,7}", "outAutoSwitchL{1,7}", "outStartOn{1,7}", "outStartOnTime{1,7}", "outResetTime{1,7}", "outSaveState{1,7}", "outNegation", "outLock" ]
-
dsConfig
[ "dsName{1,8}", "dsID{1,8}", "dsOffset{1,8}" ]
-
i2cConfig
[ "i2cTempName", "i2cHumName", "i2cSensor", "i2cFrequency" ]
-
diffConfig
[ "diffName{1,6}", "diffConfig1S{1,6}", "diffConfig2S{1,6}", "diffConfigO{1,6}" ]
-
iDConfig
[ "iDName{1,2}", "iDNegation{1,2}", "iDBistable{1,2}", "iDBistableTime{1,2}" ]
-
modemConfig
[ "modemCode", "modemAPN", "modemNumberEv{1,4}", "modemTextEvT{1,4}", "modemTextEvF{1,4}", "modemReturnSMS" ]
-
powerConfig
[ "powerName{1,6}", "powerIOption{1,6}", "powerCounting{1,6}", "powerSaveToMem" ]
-
eventConfig
[ "event{1,20}" ]
-
scheduleConfig
[ "schedule{1,50}" ]
-
wdConfig
[ "wdConfig{1,7}" ]
-
httpConfig
[ "httpReadingCode", "httpDigestAuth", "httpPerEnabled", "httpPerPeriod", "httpPerURL", "httpURLEvT{1,4}", "httpURLEvF{1,4}" ]
-
mqttConfig
[ "mqttEnabled", "mqttAuth", "mqttTLS", "mqttLWT", "mqttHost", "mqttPort", "mqttLogin", "mqttPassword", "mqttPrefix", "mqttPeriod", "mqttKeepAlive", "mqttSend" ]
-
snmpConfig
[ "snmpTrapEnabled", "snmpV2Enabled", "snmpV3Enabled", "snmpCommRead", "snmpCommWrite", "snmpCommTrap", "snmpTrapReceive", "snmpUser", "snmpAuthPass", "snmpPrivacyPass" ]
-
networkConfig
[ "netHostname", "netHttpPort", "netHttpsOn", "netMac", "netDhcp", "netIp", "netMask", "netGateway", "netDns1", "netDns2", ]
-
timeConfig
[ "timeNTP", "timeNTPHost", "timeNTPPort", "timeTimezone", "timeNTPPeriod" ]
-
accessConfig
[ "auth", "upgr", "adminLogin", "adminPass", "userLogin", "userPass", "authUser{1,50}" ]
-
emailConfig
[ "emailHost", "emailPort", "emailTLS", "emailUser", "emailPassword", "emailSender", "emailWdTo", "emailWdSubj", "emailWdText", "emailToEvT{1,4}", "emailToEvF{1,4}", "emailSubjEvT{1,4}", "emailSubjEvF{1,4}", "emailTextEvT{1,4}", "emailTextEvF{1,4}" ]
-
oledConfig
[ "oledEnabled", "oledTime", "oledSize", "oledScreen{1,4}", "oledLine{1,4}{1,4}", "oledFrequency" ]
Dane dynamiczne¶
-
boardValues
[ "uRms", "iRms", "pActive", "pApparent", "pReactive", "pFactor", "pospf", "posang" ]
-
statusValues
[ "restartFlag", "oledScreenNow", "mqttConnected" ]
-
outValues
[ "out{1,7}", "outAutoSwitchE{1,7}" ]
-
dsValues
[ "ds{1,8}", "dsReadID" ]
-
i2cValues
[ "i2cTemp", "i2cHum", "dewPoint" ]
-
diffValues
[ "diff{1,6}" ]
-
iDValues
[ "iDValue{1,2}" ]
-
modemValues
[ "modemConsole", "modemConnected", "modemRegistered" ]
-
powerValues
[ "power{1,6}", "energy{1,6}" ]
-
eventValues
[ "eventConditionResult{1,20}" ]
-
varValues
[ "var{1,8}" ]
-
wdValues
[ "wdEnableStatus", "wdPingTime", "wdPingFailCount", "wdRestartCount" ]
-
timeValues
[ "time", "uptimeDays", "uptimeHours", "uptimeMinutes", "uptimeSeconds" ]