[erledigt, jsonlist2] warum fehlt im json das Internal "IODev"?

Begonnen von frank, 25 Juni 2020, 23:23:49

Vorheriges Thema - Nächstes Thema

frank

kann das repariert werden oder ist das absicht?
im "normalen" list und auf der detailseite ist es vorhanden.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

amenomade

So weit ich weiss taucht nie IODev im jsonlist2, da es im Hash kein simpler Wert ist, sondern der HASH vom IODev

Beispiel mit einem SD_UT Device (kürzer als HM) (das ist das gleiche in FBDECT, echodevice, HM, ...):
jsonlist2:
{
  "Arg":"RC_10_DDFC_C",
  "Results": [
  {
    "Name":"RC_10_DDFC_C",
    "PossibleSets":"off:noArg on:noArg ",
    "PossibleAttrs":"alias comment:textField-long eventMap:textField-long group room suppressReading userReadings:textField-long verbose:0,1,2,3,4,5 repeats:1,2,3,4,5,6,7,8,9 IODev do_not_notify:1,0 ignore:0,1 showtime:1,0 model:Buttons_five,CAME_TOP_432EV,Chilitec_22640,HS1_868_BS,HSM4,KL_RF01,Krinner_LUMIX,LED_XM21_0,MD_2003R,MD_2018R,MD_210R,Novy_840029,OR28V,QUIGG_DMV,RC_10,RH787T,SA_434_1_mini,SF01_01319004,SF01_01319004_Typ2,TR_502MSV,Techmar,Tedsen_SKX1xx,Tedsen_SKX2xx,Tedsen_SKX4xx,Tedsen_SKX6xx,Unitec_47031,unknown event-aggregator event-min-interval event-on-change-reading event-on-update-reading oldreadings stateFormat:textField-long timestamp-on-change-reading  ASC:0,1,2 alexaName alexaRoom cmdIcon devStateIcon devStateIcon:textField-long devStateStyle genericDeviceType:security,ignore,switch,outlet,light,blind,thermometer,thermostat,contact,garage,window,lock homebridgeMapping:textField-long icon sortby webCmd webCmdLabel:textField-long widgetOverride userattr",
    "Internals": {
      "DEF": "RC_10 DDFC_C",
      "FUUID": "5e8a16dd-f33f-7699-23e4-05a8b9e6e6ae9297",
      "NAME": "RC_10_DDFC_C",
      "NR": "443",
      "STATE": "Defined",
      "TYPE": "SD_UT",
      "bitMSG": "no data",
      "lastMSG": "no data"
    },
    "Readings": {
      "LastAction": { "Value":"send", "Time":"2020-05-24 20:24:26" },
      "deviceCode": { "Value":"1101110111111100", "Time":"2020-04-05 19:36:05" },
      "state": { "Value":"off", "Time":"2020-05-24 20:24:26" },
      "x_n4": { "Value":"0000", "Time":"2020-04-05 19:36:05" },
      "x_n5-8_off": { "Value":"1010010100100", "Time":"2020-04-05 19:36:05" },
      "x_n5-8_on": { "Value":"1011010100110", "Time":"2020-04-05 19:36:02" }
    },
    "Attributes": {
      "IODev": "SignalESP",
      "model": "RC_10",
      "room": "Tech->SignalESP"
    }
  }  ],
  "totalResultsReturned":1
}


Dump defs{device}:
$VAR1 = {
          'DEF' => 'RC_10 DDFC_C',
          'FUUID' => '5e8a16dd-f33f-7699-23e4-05a8b9e6e6ae9297',
          'IODev' => {
                       '.attraggr' => [],
                       '.attrminint' => [],
                       '.clientArray' => [
                                           'SD_UT'
                                         ],
                       'CD' => bless( \*Symbol::GEN98, 'IO::Socket::INET' ),
                       'Clients' => ':IT:CUL_TCM97001:SD_RSL:OREGON:CUL_TX:SD_AS:Hideki:SD_WS07:SD_WS09: :SD_WS:RFXX10REC:Dooya:SOMFY:SD_BELL:SD_UT:SD_WS_Maverick:FLAMINGO:CUL_WS:Revolt: :FS10:CUL_FHTTK:Siro:FHT:FS20:CUL_EM:Fernotron:SD_Keeloq:SIGNALduino_un:',
                       'DEF' => '192.168.178.33:23',
                       'DMSG' => 'W51#32F2617211',
                       'DevState' => 'initialized',
                       'DeviceName' => '192.168.178.33:23',
                       'DoubleMsgIDs' => {},
                       'FD' => 93,
                       'FUUID' => '5e8a1640-f33f-7699-789c-7f54ab45008da613',
                       'IDsNoDispatch' => '2,72.1,82',
                       'LASTDMSG' => 'W51#32F2617211',
                       'LASTDMSGID' => '51',
                       'MSGCNT' => 28347,
                       'MatchList' => {
                                        '10:SD_WS07' => '^P7#[A-Fa-f0-9]{6}[AFaf][A-Fa-f0-9]{2,3}',
                                        '11:SD_WS09' => '^P9#F[A-Fa-f0-9]+',
                                        '12:SD_WS' => '^W\\d+x{0,1}#.*',
                                        '13:RFXX10REC' => '^(20|29)[A-Fa-f0-9]+',
                                        '14:Dooya' => '^P16#[A-Fa-f0-9]+',
                                        '15:SOMFY' => '^Ys[0-9A-F]+',
                                        '16:SD_WS_Maverick' => '^P47#[A-Fa-f0-9]+',
                                        '17:SD_UT' => '^P(?:14|29|30|34|46|69|76|81|83|86|90|91|91.1|92|93|95)#.*',
                                        '18:FLAMINGO' => '^P13\\.?1?#[A-Fa-f0-9]+',
                                        '19:CUL_WS' => '^K[A-Fa-f0-9]{5,}',
                                        '1:IT' => '^i......',
                                        '20:Revolt' => '^r[A-Fa-f0-9]{22}',
                                        '21:FS10' => '^P61#[A-F0-9]+',
                                        '22:Siro' => '^P72#[A-Fa-f0-9]+',
                                        '23:FHT' => '^81..(04|09|0d)..(0909a001|83098301|c409c401)..',
                                        '24:FS20' => '^81..(04|0c)..0101a001',
                                        '25:CUL_EM' => '^E0.................',
                                        '26:Fernotron' => '^P82#.*',
                                        '27:SD_BELL' => '^P(?:15|32|41|42|57|79)#.*',
                                        '28:SD_Keeloq' => '^P(?:87|88)#.*',
                                        '2:CUL_TCM97001' => '^s[A-Fa-f0-9]+',
                                        '3:SD_RSL' => '^P1#[A-Fa-f0-9]{8}',
                                        '4:OREGON' => '^(3[8-9A-F]|[4-6][0-9A-F]|7[0-8]).*',
                                        '5:CUL_TX' => '^TX..........',
                                        '6:SD_AS' => '^P2#[A-Fa-f0-9]{7,8}',
                                        '7:Hideki' => '^P12#75[A-F0-9]+',
                                        '9:CUL_FHTTK' => '^T[A-F0-9]{8}',
                                        'X:SIGNALduino_un' => '^[u]\\d+#.*'
                                      },
                       'NAME' => 'SignalESP',
                       'NR' => 440,
                       'PARTIAL' => '',
                       'QUEUE' => [],
                       'RAWMSG' => 'MS;P0=-16018;P1=990;P2=-1020;P3=556;P4=-7898;P5=-1819;P6=-4139;D=234353536363535363536363636353536353536363535353536353636363535363535353536353535363012121212;CP=3;SP=4;R=225;O;',
                       'READINGS' => {
                                       'ccconf' => {
                                                     'TIME' => '2020-05-24 20:59:32',
                                                     'VAL' => 'freq:433.920MHz bWidth:325KHz rAmpl:42dB sens:4dB  (DataRate:5603.79Baud)'
                                                   },
                                       'ping' => {
                                                   'TIME' => '2020-04-24 21:12:37',
                                                   'VAL' => 'OK'
                                                 },
                                       'state' => {
                                                    'TIME' => '2020-06-20 15:57:50',
                                                    'VAL' => 'opened'
                                                  },
                                       'version' => {
                                                      'TIME' => '2020-06-20 15:57:50',
                                                      'VAL' => 'V 3.3.1-rc2 SIGNALESP cc1101 868MHz - compiled at Jan 13 2018 00:07:26'
                                                    }
                                     },
                       'RSSI' => '-89.5',
                       'STATE' => 'opened',
                       'TCPDev' => $VAR1->{'IODev'}{'CD'},
                       'TIME' => '1593125266.39892',
                       'TYPE' => 'SIGNALduino',
                       'keepalive' => {
                                        'ok' => 0,
                                        'retry' => 0
                                      },
                       'mcIdList' => [
                                       '10',
                                       '11',
                                       '12',
                                       '18',
                                       '43',
                                       '47',
                                       '52',
                                       '57',
                                       '58',
                                       '96'
                                     ],
                       'msIdList' => [
                                       '0.1',
                                       '0.2',
                                       '0.3',
                                       '0.4',
                                       '1',
                                       '3',
                                       '3.1',
                                       '4',
                                       '6',
                                       '13',
                                       '13.2',
                                       '14',
                                       '15',
                                       '17',
                                       '23',
                                       '25',
                                       '33.1',
                                       '33.2',
                                       '35',
                                       '41',
                                       '51',
                                       '55',
                                       '65',
                                       '74.1',
                                       '87',
                                       '88',
                                       '90',
                                       '91.1',
                                       '93'
                                     ],
                       'muIdList' => [
                                       '8',
                                       '9',
                                       '13.1',
                                       '16',
                                       '17.1',
                                       '19',
                                       '21',
                                       '22',
                                       '24',
                                       '26',
                                       '27',
                                       '28',
                                       '29',
                                       '30',
                                       '31',
                                       '32',
                                       '34',
                                       '36',
                                       '37',
                                       '38',
                                       '39',
                                       '40',
                                       '42',
                                       '44',
                                       '44.1',
                                       '45',
                                       '46',
                                       '48',
                                       '49',
                                       '50',
                                       '56',
                                       '59',
                                       '60',
                                       '61',
                                       '62',
                                       '64',
                                       '66',
                                       '67',
                                       '69',
                                       '70',
                                       '71',
                                       '72',
                                       '73',
                                       '74',
                                       '76',
                                       '79',
                                       '80',
                                       '81',
                                       '83',
                                       '84',
                                       '85',
                                       '86',
                                       '89',
                                       '91',
                                       '92',
                                       '94',
                                       '95'
                                     ],
                       'sendworking' => 0,
                       'unknownmessages' => '',
                       'version' => 'V 3.3.1-rc2 SIGNALESP cc1101 868MHz - compiled at Jan 13 2018 00:07:26',
                       'versionProtocols' => '1.06',
                       'versionmodul' => 'v3.4.0'
                     },
          'NAME' => 'RC_10_DDFC_C',
          'NR' => 443,
          'READINGS' => {
                          'LastAction' => {
                                            'TIME' => '2020-05-24 20:24:26',
                                            'VAL' => 'send'
                                          },
                          'deviceCode' => {
                                            'TIME' => '2020-04-05 19:36:05',
                                            'VAL' => '1101110111111100'
                                          },
                          'state' => {
                                       'TIME' => '2020-05-24 20:24:26',
                                       'VAL' => 'off'
                                     },
                          'x_n4' => {
                                      'TIME' => '2020-04-05 19:36:05',
                                      'VAL' => '0000'
                                    },
                          'x_n5-8_off' => {
                                            'TIME' => '2020-04-05 19:36:05',
                                            'VAL' => '1010010100100'
                                          },
                          'x_n5-8_on' => {
                                           'TIME' => '2020-04-05 19:36:02',
                                           'VAL' => '1011010100110'
                                         }
                        },
          'STATE' => 'Defined',
          'TYPE' => 'SD_UT',
          'bitMSG' => 'no data',
          'lastMSG' => 'no data'
        };


Das ist in 98_JsonList2.pm mittels
!ref($h->{$_}) rausgefiltert
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

frank

wenn man den namen vom io im Internal anzeigen kann, sollte man es auch ins json packen können, oder nicht?
beim Internal LASTInputDev funktioniert es ja auch.

ich benötige das Internal, da das Attribut leider nicht immer das selbe anzeigt.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

rudolfkoenig

Sicher kann man es machen (wie fast alles), ist halt Aufwand :)
Der Verglech mit LASTInputDev hinkt, das ist kein Hash.

Ich habe JsonList2 modifiziert, sie gibt den Namen von IODev aus, analog zu list und XmlList.

frank

FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html