FHEM Forum

FHEM => Frontends => FHEMapp => Thema gestartet von: Wolle02 am 03 Dezember 2022, 11:38:56

Titel: Problem mit %t -> invalid Date
Beitrag von: Wolle02 am 03 Dezember 2022, 11:38:56
Ich habe das Smoke Detector Template für mich etwas angepasst. In der Infozeile möchte ich angezeigt bekommen wann der letzte Rauchmeldertest durchgeführt wurde. Dafür habe ich folgendes in das Template eingetragen:

"mid1": ["SMOKE_DETECTOR_TEST_RESULT:SMOKE_TEST_OK:letzter Test %t"],

Leider wird mir in der Infozeile nun folgendes angezeigt: letzter Test Invalid Date

Das Reading SMOKE_DETECTOR_TEST_RESULT hat aber einen ganz normalen Zeitstempel.
Titel: Antw:Problem mit %t -> invalid Date
Beitrag von: jemu75 am 03 Dezember 2022, 13:19:29
Hallo,

deine Definition sieht auf den ersten Blick gut aus. Kannst du bitte mal noch ein jsonList2 für das Device aus FHEM ziehen und hier posten.

Grüße
Jens
Titel: Antw:Problem mit %t -> invalid Date
Beitrag von: Wolle02 am 03 Dezember 2022, 13:58:12
Aber gerne.

{
  "Arg":"Rauchmelder_IT",
  "Results": [
  {
    "Name":"Rauchmelder_IT",
    "PossibleSets":"clear defaults:reset,update,old,forceReset readingFilter:multiple-strict,ERROR_CODE,ERROR_DEGRADED_CHAMBER,SMOKE_DETECTOR_ALARM_STATUS,SMOKE_DETECTOR_TEST_RESULT config datapoint command:RESERVED_ALARM_OFF,INTRUSION_ALARM_OFF,INTRUSION_ALARM,SMOKE_TEST,COMMUNICATION_TEST,COMMUNICATION_TEST_REPEATED",
    "PossibleAttrs":"alias comment:textField-long eventMap:textField-long group room suppressReading userattr userReadings:textField-long verbose:0,1,2,3,4,5  IODev ccucalculate ccuflags:multiple-strict,hideStdReadings,replaceStdReadings,noBoundsChecking,ackState,logCommand,noReadings,trace,simulate,showMasterReadings,showLinkReadings,showDeviceReadings,showServiceReadings ccureadingfilter:textField-long ccureadingformat:name,namelc,address,addresslc,datapoint,datapointlc ccureadingname:textField-long ccuSetOnChange ccuReadingPrefix ccuscaleval ccuverify:0,1,2 ccuget:State,Value devStateFlags disable:0,1 hmstatevals:textField-long statevals substitute:textField-long substexcl stripnumber peer:textField-long traceFilter event-aggregator event-min-interval event-on-change-reading event-on-update-reading oldreadings stateFormat:textField-long timestamp-on-change-reading statedatapoint:select,SMOKE_DETECTOR_ALARM_STATUS controldatapoint:select,SMOKE_DETECTOR_COMMAND ASC:0,1,2 DbLogExclude DbLogInclude DbLogValueFn:textField-long MSwitchcmd alarmDevice:Actor,Sensor alarmSettings alexaName alexaProactiveEvents:1,0 alexaRoom appOptions:textField-long autooff cmdIcon devStateIcon:textField-long devStateStyle genericDeviceType:security,ignore,switch,outlet,light,blind,thermometer,thermostat,contact,garage,window,lock,scene homebridgeMapping:textField-long icon msgContactAudio msgContactLight msgContactMail msgContactPush msgContactScreen msgParams msgPriority msgRecipient msgRecipientAudio msgRecipientLight msgRecipientMail msgRecipientPush msgRecipientScreen msgRecipientText msgTitle msgTitleShrt msgType:text,push,mail,screen,light,audio,queue readingsWatcher sortby webCmd webCmdLabel:textField-long widgetOverride Rauchmelder Rauchmelder_map structexclude",
    "Internals": {
      "DEF": "000A5BE99F458A:1",
      "FUUID": "61d0301f-f33f-bf2d-7c7c-c7e1804387679463",
      "FVERSION": "88_HMCCUCHN.pm:v5.0.0-s26565/2022-10-20",
      "IODev": "MyCCU3",
      "NAME": "Rauchmelder_IT",
      "NR": "467",
      "STATE": "IDLE_OFF",
      "TYPE": "HMCCUCHN",
      "ccuaddr": "000A5BE99F458A:1",
      "ccudevstate": "active",
      "ccuif": "HmIP-RF",
      "ccuname": "HmIP-SWSD 000A5BE99F458A:1",
      "ccurolectrl": "SMOKE_DETECTOR",
      "ccurolestate": "SMOKE_DETECTOR",
      "ccusubtype": "SD",
      "ccutype": "HmIP-SWSD",
      "eventCount": "11",
      "firmware": "1.0.12",
      "readonly": "no"
    },
    "Readings": {
      "ERROR_CODE": { "Value":"0", "Time":"2022-12-03 11:09:17" },
      "ERROR_DEGRADED_CHAMBER": { "Value":"false", "Time":"2022-12-03 11:09:17" },
      "IODev": { "Value":"MyCCU3", "Time":"2022-11-21 12:26:45" },
      "SMOKE_DETECTOR_ALARM_STATUS": { "Value":"IDLE_OFF", "Time":"2022-12-03 11:09:17" },
      "SMOKE_DETECTOR_TEST_RESULT": { "Value":"SMOKE_TEST_OK", "Time":"2022-12-03 11:09:17" },
      "activity": { "Value":"alive", "Time":"2022-12-03 11:09:16" },
      "battery": { "Value":"ok", "Time":"2022-12-03 11:09:16" },
      "battery_volt": { "Value":"", "Time":"2022-07-03 09:44:20" },
      "devstate": { "Value":"ok", "Time":"2022-12-03 11:09:17" },
      "hmstate": { "Value":"IDLE_OFF", "Time":"2022-12-03 11:09:17" },
      "rssidevice": { "Value":"-44", "Time":"2022-12-03 11:09:16" },
      "rssipeer": { "Value":"-48", "Time":"2022-10-29 14:12:58" },
      "state": { "Value":"IDLE_OFF", "Time":"2022-12-03 11:09:17" }
    },
    "Attributes": {
      "alarmDevice": "Sensor",
      "alarmSettings": "alarm7,|Rauchmelder_IT:.*PRIMARY_ALARM.*|IT-Raum|on",
      "alias": "Rauchmelder_IT-Raum",
      "appOptions": "{ \"template\": \"smokedetect\",\n  \"name\": \"IT-Raum\"}",
      "devStateIcon": "IDLE_OFF:15px-green PRIMARY_ALARM:15px-red SECONDARY_ALARM:15px-orange",
      "event-on-change-reading": ".*",
      "group": "Rauchmelder",
      "icon": "secur_smoke_detector",
      "room": "Alarm,Haus",
      "userattr": "Rauchmelder Rauchmelder_map structexclude"
    }
  }  ],
  "totalResultsReturned":1
}
Titel: Antw:Problem mit %t -> invalid Date
Beitrag von: jemu75 am 03 Dezember 2022, 14:57:31
Auf welchem Device hast du FHEMApp geöffnet? Ich kann mich schwach erinnern, dass das Thema mit den Datumswerten mal auf div. iOS Geräten aufgefallen war.
Titel: Antw:Problem mit %t -> invalid Date
Beitrag von: Wolle02 am 03 Dezember 2022, 16:20:40
Das sind zum einen ein Android Tablet mit Fully Browser und zum anderen mein Windowsrechner mit Firefox Browser.
Auf meinem Handy hab ich auch noch den Chrome Browser, aber auch da wird Invalid Date angezeigt.
Titel: Antw:Problem mit %t -> invalid Date
Beitrag von: jemu75 am 03 Dezember 2022, 23:13:42
Hast du die Ersetzung %t noch an anderer Stelle im Einsatz. Interessant wäre noch zu wissen, ob die Meldung "Invalid Date" generell kommt, wenn du %t verwendest, ob das nur bei diesem Template auftritt.
Titel: Antw:Problem mit %t -> invalid Date
Beitrag von: Wolle02 am 04 Dezember 2022, 08:00:28
Nein, eigentlich verwende ich %t sonst nirgends. Ich habe es es versuchsweise mal in ein Switchtemplate eingebaut. Auch erscheint dann Invalid Date.
Titel: Antw:Problem mit %t -> invalid Date
Beitrag von: jemu75 am 04 Dezember 2022, 14:33:50
Wie sieht deine config.json aus?
Titel: Antw:Problem mit %t -> invalid Date
Beitrag von: Wolle02 am 04 Dezember 2022, 14:51:13
{
  "options": {
    "mobileHeaderContent": "clock",
    "reloadBtn": true,
    "homeBtn": true,
    "expandGroups": false,
    "expandRooms": false,
    "lang": "de",
    "maxChartPoints": 100,
    "logBuffer": 500,
    "_comment": "debugMode: true",
    "debugLevel": 5
  },
  "theme": {
    "dark": true,
    "themes": {
      "dark": {
      },
      "light": {
        "primary": "#616161",
        "secondary": "#F5F5F5",
        "accent": "#0adbc2",
        "error": "#e91e63",
        "warning": "#ffc107",
        "info": "#03a9f4",
        "success": "#4caf50"
      }
    }
  }
}
Titel: Antw:Problem mit %t -> invalid Date
Beitrag von: jemu75 am 06 Dezember 2022, 13:14:15
Sorry für die verspätete Rückmeldung. Probiere mal bitte den Parameter "lang" auf "en" umzustellen.
Werden die anderen Datums und Zeitangaben dann noch angezeigt? Und was passiert dann mit dem Zeitstempel, den Du in der Statuszeile anzeigen möchtest?
Titel: Antw:Problem mit %t -> invalid Date
Beitrag von: Wolle02 am 06 Dezember 2022, 17:35:59
Leider kommt nach Umstellen auf "en" immer noch Invalid Date. Augenscheinlich hat sich gar nichts geändert.
Titel: Antw:Problem mit %t -> invalid Date
Beitrag von: jemu75 am 14 Dezember 2022, 22:49:44
Leider bin ich bei dem Thema etwas ratlos. Wir hatten das Problem letztes Jahr schonmal in Verbindung mit iOS und Safari. Damals hatte ich Funktionen angepasst, die auch mit Safari laufen. Leider trifft das Thema iOS bei dir ja nicht zu. Irgendwas klemmt da bei der Verarbeitung der Datumswerte. Aber was da genau hängt kann ich mir nicht erklären - zumal die Werte bei Dir genau so aussehen, wie bei mir.  ???
Titel: Antw:Problem mit %t -> invalid Date
Beitrag von: jemu75 am 14 Dezember 2022, 22:54:11
Zitat von: Wolle02 am 06 Dezember 2022, 17:35:59
Leider kommt nach Umstellen auf "en" immer noch Invalid Date. Augenscheinlich hat sich gar nichts geändert.

Ändert sich in dem Fall wenigstens die Sprache links in der Navigationsleiste?
Titel: Antw:Problem mit %t -> invalid Date
Beitrag von: Wolle02 am 15 Dezember 2022, 04:21:18
Zitat von: jemu75 am 14 Dezember 2022, 22:54:11
Ändert sich in dem Fall wenigstens die Sprache links in der Navigationsleiste?

Ja, das tut es. Auch die Datumsanzeige in der Titelzeile erscheint dann englisch.
Titel: Antw:Problem mit %t -> invalid Date
Beitrag von: jemu75 am 16 Dezember 2022, 19:43:13
Das ist echt verzwickt. Ich denke das bekommen wir aber über den Debugmodus raus. Den kannst du in der config.json aktivieren. In den Templates werden dann oben rechts weitere Symbole angezeigt. Wenn du dort auf {...} klickst, dann wird dir das Jason-Objekt von deinem Fhem Device angezeigt. In dieser Ansicht kannst du auch Statusänderungen von jedem reading live mitverfolgen. Hier wäre interessant, ob der Parameter "Time" in dem betreffenden Reading den Zeitstempel im richtigen Format liefert (YYYY-MM-DD hh:mm:ss)
Kannst du dir das bitte mal ansehen. Gern auch das Json-Ergebnis mal rauskopieren und hier posten.

PS. Wichtig ist, dass du dir das Format vom Zeitstempel ansiehst, bevor und nachdem das Reading aktualisiert wurde

Grüße
Jens  :)
Titel: Antw:Problem mit %t -> invalid Date
Beitrag von: Wolle02 am 17 Dezember 2022, 10:27:13
Ok, also Debug Mode aktiviert: check
Provisorisch %t in Switch Template eingebaut: check
Erwartungsgemäß wird "invalid Date" angezeigt.

Debug Mode zeigt VOR Stausänderung folgenden Zeitstempel: "lastsetting_delay_ident":{
"Value":"Restzeit_0",
"Time":"2022-12-07 15:48:53"
},


Debug Mode zeigt NACH Stausänderung folgenden Zeitstempel: "lastsetting_delay_ident":{
"Value":"Restzeit_0",
"Time":"2022-12-17 10:25:22"
},


Eigentlich sieht das Datumsformat gut aus; aber leider wird immer noch "Invalid Date" angezeigt.  :-[
Titel: Antw:Problem mit %t -> invalid Date
Beitrag von: jemu75 am 17 Dezember 2022, 20:21:46
Welche Version von FHEMApp hast du eigentlich im Einsatz?
Titel: Antw:Problem mit %t -> invalid Date
Beitrag von: Wolle02 am 18 Dezember 2022, 07:48:59
v3.34.3

ich update und schaue dann mal. Allerdings ist ja seit Sommer nichts an der Thematik geändert worden.
Titel: Antw:Problem mit %t -> invalid Date
Beitrag von: Wolle02 am 18 Dezember 2022, 08:26:32
Jetzt v3.36.0

Leider wie erwartet keine Änderung.
Titel: Antw:Problem mit %t -> invalid Date
Beitrag von: Wolle02 am 07 Januar 2023, 13:58:18
Ich hab mir jetzt einen Workaround gebastelt und das gewünschte Datum in ein Reading geschrieben. Dieses lasse ich dann mit %s anzeigen. Das funktioniert problemlos.
Titel: Antw:Problem mit %t -> invalid Date
Beitrag von: jemu75 am 09 Januar 2023, 20:28:43
Danke für die Rückmeldung. Mir ist leider rätselhaft, weshalb die Datumswerte in deinem Fall nicht verarbeitet werden. Falls noch jemand mit Javascript Kenntnissen mitliest, anbei mal die Funktion, die die Datumswerte verarbeitet. (sprich formatiert)


// mainFunction: Format Date and Time from FHEM
  getDateTime(val) {
    let timestamp = val ? val : new Date().toISOString();

    return new Date(timestamp.replace(' ','T')).toLocaleString(this.app.options.lang, { dateStyle: 'short', timeStyle: 'medium' }).replace(',','');
  }