diff --git a/Makefile b/Makefile index 4b6356cc6..34f123bf9 100644 --- a/Makefile +++ b/Makefile @@ -31,6 +31,7 @@ clean: install: go install github.com/golang/mock/mockgen + go install github.com/alvaroloes/enumer install-ui: npm ci diff --git a/charger/easee.go b/charger/easee.go index 504ce27eb..8bf6bac9a 100644 --- a/charger/easee.go +++ b/charger/easee.go @@ -174,23 +174,21 @@ func (c *Easee) observe(typ string, i json.RawMessage) { return } - var floatValue float64 - var boolValue bool - var intValue int + var value interface{} switch res.DataType { case easee.Boolean: - boolValue = res.Value == "1" + value = res.Value == "1" case easee.Double: - floatValue, err = strconv.ParseFloat(res.Value, 64) + value, err = strconv.ParseFloat(res.Value, 64) if err != nil { - c.log.ERROR.Printf("float conversion: %s", res.Value) + c.log.ERROR.Println(err) return } case easee.Integer: - intValue, err = strconv.Atoi(res.Value) + value, err = strconv.Atoi(res.Value) if err != nil { - c.log.ERROR.Printf("int conversion: %s", res.Value) + c.log.ERROR.Println(err) return } } @@ -200,19 +198,19 @@ func (c *Easee) observe(typ string, i json.RawMessage) { switch res.ID { case easee.IS_ENABLED: - c.chargerEnabled = boolValue + c.chargerEnabled = value.(bool) case easee.TOTAL_POWER: - c.currentPower = 1e3 * floatValue + c.currentPower = 1e3 * value.(float64) case easee.SESSION_ENERGY: - c.sessionEnergy = floatValue + c.sessionEnergy = value.(float64) case easee.IN_CURRENT_T3: - c.currentL1 = floatValue + c.currentL1 = value.(float64) case easee.IN_CURRENT_T4: - c.currentL2 = floatValue + c.currentL2 = value.(float64) case easee.IN_CURRENT_T5: - c.currentL3 = floatValue + c.currentL3 = value.(float64) case easee.CHARGER_OP_MODE: - switch intValue { + switch value.(int) { case easee.ModeDisconnected: c.chargeStatus = api.StatusA case easee.ModeAwaitingStart, easee.ModeCompleted, easee.ModeReadyToCharge: @@ -223,12 +221,12 @@ func (c *Easee) observe(typ string, i json.RawMessage) { c.chargeStatus = api.StatusF default: c.chargeStatus = api.StatusNone - c.log.ERROR.Printf("unknown opmode: %d", intValue) + c.log.ERROR.Printf("unknown opmode: %d", value.(int)) } - c.enabledStatus = intValue == easee.ModeCharging || intValue == easee.ModeReadyToCharge + c.enabledStatus = value.(int) == easee.ModeCharging || value.(int) == easee.ModeReadyToCharge } - c.log.TRACE.Printf("%s: %+v", typ, res) + c.log.TRACE.Printf("%s %s: %s %.4v", typ, res.Mid, res.ID, value) c.updated = time.Now() } diff --git a/charger/easee/observationid_enumer.go b/charger/easee/observationid_enumer.go new file mode 100644 index 000000000..1221a316e --- /dev/null +++ b/charger/easee/observationid_enumer.go @@ -0,0 +1,367 @@ +// Code generated by "enumer -type ObservationID"; DO NOT EDIT. + +// +package easee + +import ( + "fmt" +) + +const _ObservationIDName = "SELF_TEST_RESULTSELF_TEST_DETAILSWIFI_EVENTCHARGER_OFFLINE_REASONEASEE_LINK_COMMAND_RESPONSEEASEE_LINK_DATA_RECEIVEDLOCAL_PRE_AUTHORIZE_ENABLEDLOCAL_AUTHORIZE_OFFLINE_ENABLEDALLOW_OFFLINE_TX_FOR_UNKNOWN_IDERRATIC_EVMAX_TOGGLESBACKPLATE_TYPESITE_STRUCTUREDETECTED_POWER_GRID_TYPECIRCUIT_MAX_CURRENT_P1CIRCUIT_MAX_CURRENT_P2CIRCUIT_MAX_CURRENT_P3LOCATIONSITE_IDSTRINGSITE_IDNUMERICLOCK_CABLE_PERMANENTLYIS_ENABLEDCIRCUIT_SEQUENCE_NUMBERSINGLE_PHASE_NUMBERENABLE3_PHASES_DEPRECATEDWI_FI_SSIDENABLE_IDLE_CURRENTPHASE_MODEFORCED_THREE_PHASE_ON_ITWITH_GND_FAULTLED_STRIP_BRIGHTNESSLOCAL_AUTHORIZATION_REQUIREDAUTHORIZATION_REQUIREDREMOTE_START_REQUIREDSMART_BUTTON_ENABLEDOFFLINE_CHARGING_MODELEDMODEMAX_CHARGER_CURRENTDYNAMIC_CHARGER_CURRENTMAX_CURRENT_OFFLINE_FALLBACK_P1MAX_CURRENT_OFFLINE_FALLBACK_P2MAX_CURRENT_OFFLINE_FALLBACK_P3LISTEN_TO_CONTROL_PULSECONTROL_PULSE_RTTCHARGING_SCHEDULEPAIRED_EQUALIZERWI_FI_APENABLEDPAIRED_USER_IDTOKENCIRCUIT_TOTAL_ALLOCATED_PHASE_CONDUCTOR_CURRENT_L1CIRCUIT_TOTAL_ALLOCATED_PHASE_CONDUCTOR_CURRENT_L2CIRCUIT_TOTAL_ALLOCATED_PHASE_CONDUCTOR_CURRENT_L3CIRCUIT_TOTAL_PHASE_CONDUCTOR_CURRENT_L1CIRCUIT_TOTAL_PHASE_CONDUCTOR_CURRENT_L2CIRCUIT_TOTAL_PHASE_CONDUCTOR_CURRENT_L3NUMBER_OF_CARS_CONNECTEDNUMBER_OF_CARS_CHARGINGNUMBER_OF_CARS_IN_QUEUENUMBER_OF_CARS_FULLY_CHARGEDSOFTWARE_RELEASEICCIDMODEM_FW_IDOTAERROR_CODEMOBILE_NETWORK_OPERATORREBOOT_REASONPOWER_PCBVERSIONCOM_PCBVERSIONREASON_FOR_NO_CURRENTLOAD_BALANCING_NUMBER_OF_CONNECTED_CHARGERSUDPNUM_OF_CONNECTED_NODESLOCAL_CONNECTIONPILOT_MODECAR_CONNECTED_DEPRECATEDSMART_CHARGINGCABLE_LOCKEDCABLE_RATINGPILOT_HIGHPILOT_LOWBACK_PLATE_IDUSER_IDTOKEN_REVERSEDCHARGER_OP_MODEOUTPUT_PHASEDYNAMIC_CIRCUIT_CURRENT_P1DYNAMIC_CIRCUIT_CURRENT_P2DYNAMIC_CIRCUIT_CURRENT_P3OUTPUT_CURRENTDERATED_CURRENTDERATING_ACTIVEDEBUG_STRINGERROR_STRINGERROR_CODETOTAL_POWERSESSION_ENERGYENERGY_PER_HOURLEGACY_EV_STATUSLIFETIME_ENERGYLIFETIME_RELAY_SWITCHESLIFETIME_HOURSDYNAMIC_CURRENT_OFFLINE_FALLBACK_DEPRICATEDUSER_IDTOKENCHARGING_SESSIONCELL_RSSICELL_RATWI_FI_RSSICELL_ADDRESSWI_FI_ADDRESSWI_FI_TYPELOCAL_RSSIMASTER_BACK_PLATE_IDLOCAL_TX_POWERLOCAL_STATEFOUND_WI_FICHARGER_RATCELLULAR_INTERFACE_ERROR_COUNTCELLULAR_INTERFACE_RESET_COUNTWIFI_INTERFACE_ERROR_COUNTWIFI_INTERFACE_RESET_COUNTLOCAL_NODE_TYPELOCAL_RADIO_CHANNELLOCAL_SHORT_ADDRESSLOCAL_PARENT_ADDR_OR_NUM_OF_NODESTEMP_MAXTEMP_AMBIENT_POWER_BOARDTEMP_INPUT_T2TEMP_INPUT_T3TEMP_INPUT_T4TEMP_INPUT_T5TEMP_OUTPUT_NTEMP_OUTPUT_L1TEMP_OUTPUT_L2TEMP_OUTPUT_L3TEMP_AMBIENTLIGHT_AMBIENTINT_REL_HUMIDITYBACK_PLATE_LOCKEDCURRENT_MOTORBACK_PLATE_HALL_SENSORIN_CURRENT_T2IN_CURRENT_T3IN_CURRENT_T4IN_CURRENT_T5IN_VOLT_T1_T2IN_VOLT_T1_T3IN_VOLT_T1_T4IN_VOLT_T1_T5IN_VOLT_T2_T3IN_VOLT_T2_T4IN_VOLT_T2_T5IN_VOLT_T3_T4IN_VOLT_T3_T5IN_VOLT_T4_T5OUT_VOLT_PIN1_2OUT_VOLT_PIN1_3OUT_VOLT_PIN1_4OUT_VOLT_PIN1_5VOLT_LEVEL33VOLT_LEVEL5VOLT_LEVEL12LTE_RSRPLTE_SINRLTE_RSRQEQ_AVAILABLE_CURRENT_P1EQ_AVAILABLE_CURRENT_P2EQ_AVAILABLE_CURRENT_P3" + +var _ObservationIDMap = map[ObservationID]string{ + 1: _ObservationIDName[0:16], + 2: _ObservationIDName[16:33], + 10: _ObservationIDName[33:43], + 11: _ObservationIDName[43:65], + 13: _ObservationIDName[65:92], + 14: _ObservationIDName[92:116], + 15: _ObservationIDName[116:143], + 16: _ObservationIDName[143:174], + 17: _ObservationIDName[174:205], + 18: _ObservationIDName[205:226], + 19: _ObservationIDName[226:240], + 20: _ObservationIDName[240:254], + 21: _ObservationIDName[254:278], + 22: _ObservationIDName[278:300], + 23: _ObservationIDName[300:322], + 24: _ObservationIDName[322:344], + 25: _ObservationIDName[344:352], + 26: _ObservationIDName[352:365], + 27: _ObservationIDName[365:379], + 30: _ObservationIDName[379:401], + 31: _ObservationIDName[401:411], + 33: _ObservationIDName[411:434], + 34: _ObservationIDName[434:453], + 35: _ObservationIDName[453:478], + 36: _ObservationIDName[478:488], + 37: _ObservationIDName[488:507], + 38: _ObservationIDName[507:517], + 39: _ObservationIDName[517:555], + 40: _ObservationIDName[555:575], + 41: _ObservationIDName[575:603], + 42: _ObservationIDName[603:625], + 43: _ObservationIDName[625:646], + 44: _ObservationIDName[646:666], + 45: _ObservationIDName[666:687], + 46: _ObservationIDName[687:694], + 47: _ObservationIDName[694:713], + 48: _ObservationIDName[713:736], + 50: _ObservationIDName[736:767], + 51: _ObservationIDName[767:798], + 52: _ObservationIDName[798:829], + 56: _ObservationIDName[829:852], + 57: _ObservationIDName[852:869], + 62: _ObservationIDName[869:886], + 65: _ObservationIDName[886:902], + 68: _ObservationIDName[902:917], + 69: _ObservationIDName[917:936], + 70: _ObservationIDName[936:986], + 71: _ObservationIDName[986:1036], + 72: _ObservationIDName[1036:1086], + 73: _ObservationIDName[1086:1126], + 74: _ObservationIDName[1126:1166], + 75: _ObservationIDName[1166:1206], + 76: _ObservationIDName[1206:1230], + 77: _ObservationIDName[1230:1253], + 78: _ObservationIDName[1253:1276], + 79: _ObservationIDName[1276:1304], + 80: _ObservationIDName[1304:1320], + 81: _ObservationIDName[1320:1325], + 82: _ObservationIDName[1325:1336], + 83: _ObservationIDName[1336:1349], + 84: _ObservationIDName[1349:1372], + 89: _ObservationIDName[1372:1385], + 90: _ObservationIDName[1385:1401], + 91: _ObservationIDName[1401:1415], + 96: _ObservationIDName[1415:1436], + 97: _ObservationIDName[1436:1479], + 98: _ObservationIDName[1479:1504], + 99: _ObservationIDName[1504:1520], + 100: _ObservationIDName[1520:1530], + 101: _ObservationIDName[1530:1554], + 102: _ObservationIDName[1554:1568], + 103: _ObservationIDName[1568:1580], + 104: _ObservationIDName[1580:1592], + 105: _ObservationIDName[1592:1602], + 106: _ObservationIDName[1602:1611], + 107: _ObservationIDName[1611:1624], + 108: _ObservationIDName[1624:1645], + 109: _ObservationIDName[1645:1660], + 110: _ObservationIDName[1660:1672], + 111: _ObservationIDName[1672:1698], + 112: _ObservationIDName[1698:1724], + 113: _ObservationIDName[1724:1750], + 114: _ObservationIDName[1750:1764], + 115: _ObservationIDName[1764:1779], + 116: _ObservationIDName[1779:1794], + 117: _ObservationIDName[1794:1806], + 118: _ObservationIDName[1806:1818], + 119: _ObservationIDName[1818:1828], + 120: _ObservationIDName[1828:1839], + 121: _ObservationIDName[1839:1853], + 122: _ObservationIDName[1853:1868], + 123: _ObservationIDName[1868:1884], + 124: _ObservationIDName[1884:1899], + 125: _ObservationIDName[1899:1922], + 126: _ObservationIDName[1922:1936], + 127: _ObservationIDName[1936:1979], + 128: _ObservationIDName[1979:1991], + 129: _ObservationIDName[1991:2007], + 130: _ObservationIDName[2007:2016], + 131: _ObservationIDName[2016:2024], + 132: _ObservationIDName[2024:2034], + 133: _ObservationIDName[2034:2046], + 134: _ObservationIDName[2046:2059], + 135: _ObservationIDName[2059:2069], + 136: _ObservationIDName[2069:2079], + 137: _ObservationIDName[2079:2099], + 138: _ObservationIDName[2099:2113], + 139: _ObservationIDName[2113:2124], + 140: _ObservationIDName[2124:2135], + 141: _ObservationIDName[2135:2146], + 142: _ObservationIDName[2146:2176], + 143: _ObservationIDName[2176:2206], + 144: _ObservationIDName[2206:2232], + 145: _ObservationIDName[2232:2258], + 146: _ObservationIDName[2258:2273], + 147: _ObservationIDName[2273:2292], + 148: _ObservationIDName[2292:2311], + 149: _ObservationIDName[2311:2344], + 150: _ObservationIDName[2344:2352], + 151: _ObservationIDName[2352:2376], + 152: _ObservationIDName[2376:2389], + 153: _ObservationIDName[2389:2402], + 154: _ObservationIDName[2402:2415], + 155: _ObservationIDName[2415:2428], + 160: _ObservationIDName[2428:2441], + 161: _ObservationIDName[2441:2455], + 162: _ObservationIDName[2455:2469], + 163: _ObservationIDName[2469:2483], + 170: _ObservationIDName[2483:2495], + 171: _ObservationIDName[2495:2508], + 172: _ObservationIDName[2508:2524], + 173: _ObservationIDName[2524:2541], + 174: _ObservationIDName[2541:2554], + 175: _ObservationIDName[2554:2576], + 182: _ObservationIDName[2576:2589], + 183: _ObservationIDName[2589:2602], + 184: _ObservationIDName[2602:2615], + 185: _ObservationIDName[2615:2628], + 190: _ObservationIDName[2628:2641], + 191: _ObservationIDName[2641:2654], + 192: _ObservationIDName[2654:2667], + 193: _ObservationIDName[2667:2680], + 194: _ObservationIDName[2680:2693], + 195: _ObservationIDName[2693:2706], + 196: _ObservationIDName[2706:2719], + 197: _ObservationIDName[2719:2732], + 198: _ObservationIDName[2732:2745], + 199: _ObservationIDName[2745:2758], + 202: _ObservationIDName[2758:2773], + 203: _ObservationIDName[2773:2788], + 204: _ObservationIDName[2788:2803], + 205: _ObservationIDName[2803:2818], + 210: _ObservationIDName[2818:2830], + 211: _ObservationIDName[2830:2841], + 212: _ObservationIDName[2841:2853], + 220: _ObservationIDName[2853:2861], + 221: _ObservationIDName[2861:2869], + 222: _ObservationIDName[2869:2877], + 230: _ObservationIDName[2877:2900], + 231: _ObservationIDName[2900:2923], + 232: _ObservationIDName[2923:2946], +} + +func (i ObservationID) String() string { + if str, ok := _ObservationIDMap[i]; ok { + return str + } + return fmt.Sprintf("ObservationID(%d)", i) +} + +var _ObservationIDValues = []ObservationID{1, 2, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 30, 31, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 52, 56, 57, 62, 65, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 89, 90, 91, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 160, 161, 162, 163, 170, 171, 172, 173, 174, 175, 182, 183, 184, 185, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 202, 203, 204, 205, 210, 211, 212, 220, 221, 222, 230, 231, 232} + +var _ObservationIDNameToValueMap = map[string]ObservationID{ + _ObservationIDName[0:16]: 1, + _ObservationIDName[16:33]: 2, + _ObservationIDName[33:43]: 10, + _ObservationIDName[43:65]: 11, + _ObservationIDName[65:92]: 13, + _ObservationIDName[92:116]: 14, + _ObservationIDName[116:143]: 15, + _ObservationIDName[143:174]: 16, + _ObservationIDName[174:205]: 17, + _ObservationIDName[205:226]: 18, + _ObservationIDName[226:240]: 19, + _ObservationIDName[240:254]: 20, + _ObservationIDName[254:278]: 21, + _ObservationIDName[278:300]: 22, + _ObservationIDName[300:322]: 23, + _ObservationIDName[322:344]: 24, + _ObservationIDName[344:352]: 25, + _ObservationIDName[352:365]: 26, + _ObservationIDName[365:379]: 27, + _ObservationIDName[379:401]: 30, + _ObservationIDName[401:411]: 31, + _ObservationIDName[411:434]: 33, + _ObservationIDName[434:453]: 34, + _ObservationIDName[453:478]: 35, + _ObservationIDName[478:488]: 36, + _ObservationIDName[488:507]: 37, + _ObservationIDName[507:517]: 38, + _ObservationIDName[517:555]: 39, + _ObservationIDName[555:575]: 40, + _ObservationIDName[575:603]: 41, + _ObservationIDName[603:625]: 42, + _ObservationIDName[625:646]: 43, + _ObservationIDName[646:666]: 44, + _ObservationIDName[666:687]: 45, + _ObservationIDName[687:694]: 46, + _ObservationIDName[694:713]: 47, + _ObservationIDName[713:736]: 48, + _ObservationIDName[736:767]: 50, + _ObservationIDName[767:798]: 51, + _ObservationIDName[798:829]: 52, + _ObservationIDName[829:852]: 56, + _ObservationIDName[852:869]: 57, + _ObservationIDName[869:886]: 62, + _ObservationIDName[886:902]: 65, + _ObservationIDName[902:917]: 68, + _ObservationIDName[917:936]: 69, + _ObservationIDName[936:986]: 70, + _ObservationIDName[986:1036]: 71, + _ObservationIDName[1036:1086]: 72, + _ObservationIDName[1086:1126]: 73, + _ObservationIDName[1126:1166]: 74, + _ObservationIDName[1166:1206]: 75, + _ObservationIDName[1206:1230]: 76, + _ObservationIDName[1230:1253]: 77, + _ObservationIDName[1253:1276]: 78, + _ObservationIDName[1276:1304]: 79, + _ObservationIDName[1304:1320]: 80, + _ObservationIDName[1320:1325]: 81, + _ObservationIDName[1325:1336]: 82, + _ObservationIDName[1336:1349]: 83, + _ObservationIDName[1349:1372]: 84, + _ObservationIDName[1372:1385]: 89, + _ObservationIDName[1385:1401]: 90, + _ObservationIDName[1401:1415]: 91, + _ObservationIDName[1415:1436]: 96, + _ObservationIDName[1436:1479]: 97, + _ObservationIDName[1479:1504]: 98, + _ObservationIDName[1504:1520]: 99, + _ObservationIDName[1520:1530]: 100, + _ObservationIDName[1530:1554]: 101, + _ObservationIDName[1554:1568]: 102, + _ObservationIDName[1568:1580]: 103, + _ObservationIDName[1580:1592]: 104, + _ObservationIDName[1592:1602]: 105, + _ObservationIDName[1602:1611]: 106, + _ObservationIDName[1611:1624]: 107, + _ObservationIDName[1624:1645]: 108, + _ObservationIDName[1645:1660]: 109, + _ObservationIDName[1660:1672]: 110, + _ObservationIDName[1672:1698]: 111, + _ObservationIDName[1698:1724]: 112, + _ObservationIDName[1724:1750]: 113, + _ObservationIDName[1750:1764]: 114, + _ObservationIDName[1764:1779]: 115, + _ObservationIDName[1779:1794]: 116, + _ObservationIDName[1794:1806]: 117, + _ObservationIDName[1806:1818]: 118, + _ObservationIDName[1818:1828]: 119, + _ObservationIDName[1828:1839]: 120, + _ObservationIDName[1839:1853]: 121, + _ObservationIDName[1853:1868]: 122, + _ObservationIDName[1868:1884]: 123, + _ObservationIDName[1884:1899]: 124, + _ObservationIDName[1899:1922]: 125, + _ObservationIDName[1922:1936]: 126, + _ObservationIDName[1936:1979]: 127, + _ObservationIDName[1979:1991]: 128, + _ObservationIDName[1991:2007]: 129, + _ObservationIDName[2007:2016]: 130, + _ObservationIDName[2016:2024]: 131, + _ObservationIDName[2024:2034]: 132, + _ObservationIDName[2034:2046]: 133, + _ObservationIDName[2046:2059]: 134, + _ObservationIDName[2059:2069]: 135, + _ObservationIDName[2069:2079]: 136, + _ObservationIDName[2079:2099]: 137, + _ObservationIDName[2099:2113]: 138, + _ObservationIDName[2113:2124]: 139, + _ObservationIDName[2124:2135]: 140, + _ObservationIDName[2135:2146]: 141, + _ObservationIDName[2146:2176]: 142, + _ObservationIDName[2176:2206]: 143, + _ObservationIDName[2206:2232]: 144, + _ObservationIDName[2232:2258]: 145, + _ObservationIDName[2258:2273]: 146, + _ObservationIDName[2273:2292]: 147, + _ObservationIDName[2292:2311]: 148, + _ObservationIDName[2311:2344]: 149, + _ObservationIDName[2344:2352]: 150, + _ObservationIDName[2352:2376]: 151, + _ObservationIDName[2376:2389]: 152, + _ObservationIDName[2389:2402]: 153, + _ObservationIDName[2402:2415]: 154, + _ObservationIDName[2415:2428]: 155, + _ObservationIDName[2428:2441]: 160, + _ObservationIDName[2441:2455]: 161, + _ObservationIDName[2455:2469]: 162, + _ObservationIDName[2469:2483]: 163, + _ObservationIDName[2483:2495]: 170, + _ObservationIDName[2495:2508]: 171, + _ObservationIDName[2508:2524]: 172, + _ObservationIDName[2524:2541]: 173, + _ObservationIDName[2541:2554]: 174, + _ObservationIDName[2554:2576]: 175, + _ObservationIDName[2576:2589]: 182, + _ObservationIDName[2589:2602]: 183, + _ObservationIDName[2602:2615]: 184, + _ObservationIDName[2615:2628]: 185, + _ObservationIDName[2628:2641]: 190, + _ObservationIDName[2641:2654]: 191, + _ObservationIDName[2654:2667]: 192, + _ObservationIDName[2667:2680]: 193, + _ObservationIDName[2680:2693]: 194, + _ObservationIDName[2693:2706]: 195, + _ObservationIDName[2706:2719]: 196, + _ObservationIDName[2719:2732]: 197, + _ObservationIDName[2732:2745]: 198, + _ObservationIDName[2745:2758]: 199, + _ObservationIDName[2758:2773]: 202, + _ObservationIDName[2773:2788]: 203, + _ObservationIDName[2788:2803]: 204, + _ObservationIDName[2803:2818]: 205, + _ObservationIDName[2818:2830]: 210, + _ObservationIDName[2830:2841]: 211, + _ObservationIDName[2841:2853]: 212, + _ObservationIDName[2853:2861]: 220, + _ObservationIDName[2861:2869]: 221, + _ObservationIDName[2869:2877]: 222, + _ObservationIDName[2877:2900]: 230, + _ObservationIDName[2900:2923]: 231, + _ObservationIDName[2923:2946]: 232, +} + +// ObservationIDString retrieves an enum value from the enum constants string name. +// Throws an error if the param is not part of the enum. +func ObservationIDString(s string) (ObservationID, error) { + if val, ok := _ObservationIDNameToValueMap[s]; ok { + return val, nil + } + return 0, fmt.Errorf("%s does not belong to ObservationID values", s) +} + +// ObservationIDValues returns all values of the enum +func ObservationIDValues() []ObservationID { + return _ObservationIDValues +} + +// IsAObservationID returns "true" if the value is listed in the enum definition. "false" otherwise +func (i ObservationID) IsAObservationID() bool { + _, ok := _ObservationIDMap[i] + return ok +} diff --git a/charger/easee/signalr.go b/charger/easee/signalr.go index e364e042b..7677484bf 100644 --- a/charger/easee/signalr.go +++ b/charger/easee/signalr.go @@ -24,9 +24,10 @@ const ( Statistics // 7 ) +// https://www.notion.so/Charger-template-c6a20ff7cfea41e2b5f80b00afb34af5 type ObservationID int -// https://www.notion.so/Charger-template-c6a20ff7cfea41e2b5f80b00afb34af5 +//go:generate enumer -type ObservationID const ( SELF_TEST_RESULT ObservationID = 1 // PASSED or error codes [String] SELF_TEST_DETAILS ObservationID = 2 // JSON with details from self-test [String] diff --git a/go.mod b/go.mod index 71ef18597..f32e160a8 100644 --- a/go.mod +++ b/go.mod @@ -5,6 +5,7 @@ go 1.16 require ( github.com/Masterminds/sprig/v3 v3.2.2 github.com/PuerkitoBio/goquery v1.7.1 + github.com/alvaroloes/enumer v1.1.2 github.com/asaskevich/EventBus v0.0.0-20200907212545-49d423059eef github.com/avast/retry-go/v3 v3.1.1 github.com/aws/aws-sdk-go v1.40.7 diff --git a/go.sum b/go.sum index 1130d203c..e3ca96b6f 100644 --- a/go.sum +++ b/go.sum @@ -56,6 +56,7 @@ github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuy github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= +github.com/alvaroloes/enumer v1.1.2 h1:5khqHB33TZy1GWCO/lZwcroBFh7u+0j40T83VUbfAMY= github.com/alvaroloes/enumer v1.1.2/go.mod h1:FxrjvuXoDAx9isTJrv4c+T410zFi0DtXIT0m65DJ+Wo= github.com/andig/gosunspec v0.0.0-20210511114617-aa30cf9b7a3f h1:X0eQydQuoC/R1ALXgDs9v+1UKWlgGbuMg+h8flc2BJk= github.com/andig/gosunspec v0.0.0-20210511114617-aa30cf9b7a3f/go.mod h1:YkshK8WMzYn1iXAZzHUO75gIqhMSan2ctgBVtBkRIyA= @@ -530,6 +531,7 @@ github.com/onsi/gomega v1.11.0/go.mod h1:azGKhqFUon9Vuj0YmTfLSmx0FUwqXYSTl5re8lQ github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pascaldekloe/name v0.0.0-20180628100202-0fd16699aae1/go.mod h1:eD5JxqMiuNYyFNmyY9rkJ/slN8y59oEu4Ei7F8OoKWQ= github.com/pascaldekloe/name v1.0.0/go.mod h1:Z//MfYJnH4jVpQ9wkclwu2I2MkHmXTlT9wR5UZScttM= +github.com/pascaldekloe/name v1.0.1 h1:9lnXOHeqeHHnWLbKfH6X98+4+ETVqFqxN09UXSjcMb0= github.com/pascaldekloe/name v1.0.1/go.mod h1:Z//MfYJnH4jVpQ9wkclwu2I2MkHmXTlT9wR5UZScttM= github.com/paypal/gatt v0.0.0-20151011220935-4ae819d591cf/go.mod h1:+AwQL2mK3Pd3S+TUwg0tYQjid0q1txyNUJuuSmz8Kdk= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= diff --git a/tools.go b/tools.go index 7a518f519..c1d143b89 100644 --- a/tools.go +++ b/tools.go @@ -1,7 +1,9 @@ +//go:build tools // +build tools package main import ( + _ "github.com/alvaroloes/enumer" _ "github.com/golang/mock/mockgen" )