[Ovmsdev] Notifications Framework (subtype and filtering)
Michael Balzer
dexter at expeedo.de
Thu May 10 20:11:52 HKT 2018
Geir,
yes, that's the way it's meant.
It's also really easy to add a web UI for your specific configurations. Have a look at OvmsVehicleRenaultTwizy::WebCfgFeatures() for an example / template.
Regards,
Michael
Am 10.05.2018 um 13:29 schrieb Geir Øyvind Vælidalo:
> I agree, but until now there was no protection at all.
>
> I haven’t had too much time to spend on OVMS, so there are so many parts of OVMS I don’t know nothing about, like the password store 🙂
> Can I just advice the users to do this: config set password pincode 1234
> And then verifying the pin code in code by comparing it with MyConfig.GetParamValue("password","pincode»)?
> Is that the way it is meant to be used?
>
> If so I can change that very quickly.
>
> Best regards,
> Geir
>
>> 10. mai 2018 kl. 13:06 skrev Mark Webb-Johnson <mark at webb-johnson.net <mailto:mark at webb-johnson.net>>:
>>
>> I see the PIN code there.
>>
>> Probably ok for the moment, but I’m thinking that in general it would be good to have that vehicle pin code stored in the password config store, protected
>> and available to all vehicles. We don’t need multiple vehicle-specific PINs in the one module.
>>
>> Then, if defined we should use it to verify PINs locally before sending to the car. Privileged commands (such as scripts) could send it directly. We could
>> also implement some protection in those basic commands again brute-force attacks. These pins are a real weakness is vehicle security systems.
>>
>> Regards, Mark.
>>
>>> On 10 May 2018, at 5:08 PM, Geir Øyvind Vælidalo <geir at validalo.net <mailto:geir at validalo.net>> wrote:
>>>
>>> This is great, Mark!
>>>
>>> I’ve sent a pull request with changes where I’ve cleaned up the notifcations on the Kia Soul.
>>>
>>> Best regards,
>>>
>>> Geir
>>>
>>>> 9. mai 2018 kl. 15:50 skrev Mark Webb-Johnson <mark at webb-johnson.net <mailto:mark at webb-johnson.net>>:
>>>>
>>>>
>>>> The modifications below have been implemented. Works for me on the bench.
>>>>
>>>> Individual vehicle modules can turn this off (it defaults to on) by setting m_autonotifications=false in their constructor. Implementations can also
>>>> override the individual Notify…() functions to disable particular notifications, or customise the output. For example, a Tesla Model S module may want to
>>>> override NotifyValetHood() and send the alert as ‘frunk’ rather than ‘hood’.
>>>>
>>>> For those testing this with individual vehicle support, you should be able to see the following standardised vehicle alerts now:
>>>>
>>>> * charge.started (a charge session has started)
>>>> * heating.started (the battery is being heated, as part of a charge session)
>>>> * charge.stopped (a charge session has been interrupted)
>>>> * charge.done (a charge session has completed normally)
>>>> * valet.enabled (valet mode has been enabled)
>>>> * valet.disabled (valet mode has been disabled)
>>>> * valet.hood (the vehicle hood has been opened, while in valet mode)
>>>> * valet.trunk (the vehicle trunk has been opened, while in valet mode)
>>>> * alarm.sounding (the vehicle alarm is sounding)
>>>> * alarm.stopped (the vehicle alarm has stopped)
>>>> * batt.12v.alert (the 12v battery is at a critically low voltage level)
>>>> * batt.12v.recovered (the 12v battery voltage level has recovered)
>>>>
>>>>
>>>> I’ll be updating the user guide documentation now, as there are quite a lot of configuration options for this now. Should finish by tomorrow.
>>>>
>>>> I think we’re about ready for 3.1.006 now? I need to test Michael’s new initial config system, but that code is in place so should be good to go.
>>>>
>>>> Perhaps people can commit what they have this week, and we will build a 3.1.006 OTA release at the weekend?
>>>>
>>>> As always, comments/suggestions/improvements welcome.
>>>>
>>>> Regards, Mark.
>>>>
>>>>> It is time to implement vehicle notifications (charge started, charge completed, charge interrupted, etc) in the vehicle modules I am supporting. It seems
>>>>> that this can be done in the vehicle.{h,cpp} framework in a standard manner, and work across all vehicle types. However, I guess that will break any
>>>>> notifications already being produced by other vehicle types.
>>>>>
>>>>> My suggestion is:
>>>>>
>>>>> 1. A config parameter ‘notifications’, with individual instances to turn on/off the notifications. Default is all enabled.
>>>>>
>>>>> 2. OvmsVehicle::MetricModified picks up metric changes and issues the standard notifications (checking ‘notifications’ parameter appropriately).
>>>>> * charge_mode=>charging: Notify charge started
>>>>> * charge_mode=>topoff: Notify charge started
>>>>> * charge_mode=>heating: Notify battery heating started
>>>>> * charge_mode=>done: Notify charge completed
>>>>> * charge_mode=>stopped: Notify charge interrupted
>>>>> * valet_mode=>on: Notify valet mode enabled
>>>>> * valet_mode=>off: Notify valet mode disabled
>>>>> * alarm=>on: Notify alarm is sounding
>>>>> * alarm=>off: Notify alarm is off
>>>>>
>>>>> 3. All the above should be suppressed for the initial setting of each parameter. I will have to look into metrics to see how best that should be done;
>>>>> one neat way is to keep a modification count (rather than the current m_defined boolean).
>>>>>
>>>>>
>>>>> Does that make sense? Any objections/suggestions?
>>>>>
>>>>> Regards, Mark
>>>>
>>>>
>>>>> On 9 May 2018, at 9:33 AM, Mark Webb-Johnson <mark at webb-johnson.net <mailto:mark at webb-johnson.net>> wrote:
>>>>>
>>>>> I’ve extended the notifications framework to include the concept of notification subtypes. This is in addition to the existing notification base types.
>>>>>
>>>>> This allows us to automatically filter notifications based on the granular subtypes. The filtering is done at the framework level, so all notification
>>>>> listeners need to do is turn it on (when they register).
>>>>>
>>>>> I have identified the following standard subtypes, and updated quite a few modules to use them:
>>>>>
>>>>> * charge.stopped
>>>>> * charge.state
>>>>> * batt.alert
>>>>> * batt.12v (seems similar to batt.alert, but not yet decided)
>>>>> * homelink
>>>>> * debug.crash
>>>>> * xks.aux
>>>>> * xrt.battmon
>>>>> * xrt.power
>>>>> * xrt.gps
>>>>> * xrt.trip
>>>>> * xrt.sevcon
>>>>> * xrt.logs
>>>>> * xrt.reset
>>>>>
>>>>>
>>>>> I would really rather have all the alert types standardised (including things like trip logs, gps tracking, etc) and working across all vehicle types. But
>>>>> this at least is a starting point.
>>>>>
>>>>> An example of it working is:
>>>>>
>>>>> OVMS# notify raise text info test hello
>>>>> Raise text notification for info/test as hello
>>>>> I (25618) ovms-server-v2: Send MP-0 PIhello
>>>>>
>>>>> OVMS# config set notify test none
>>>>> Parameter has been set.
>>>>>
>>>>> OVMS# notify raise text info test hello
>>>>> Raise text notification for info/test as hello
>>>>>
>>>>> OVMS# config set notify test ovmsv2
>>>>> Parameter has been set.
>>>>>
>>>>> OVMS# notify raise text info test hello
>>>>> Raise text notification for info/test as hello
>>>>> I (71368) ovms-server-v2: Send MP-0 PIhello
>>>>>
>>>>>
>>>>> I am working on the vehicle module automated alerts we previously discussed, and this is a pre-requisite. New standardised subtypes will come with that
>>>>> (such as charge.start, charge.done, etc).
>>>>>
>>>>> Regards, Mark.
>>>>>
>>>>>> Begin forwarded message:
>>>>>>
>>>>>> *From: *GitHub <noreply at github.com <mailto:noreply at github.com>>
>>>>>> *Subject: **[openvehicles/Open-Vehicle-Monitoring-System-3] 7516c9: test framework commands for testing can bus tx/rx*
>>>>>> *Date: *9 May 2018 at 9:18:53 AM HKT
>>>>>> *To: *mark at webb-johnson.net <mailto:mark at webb-johnson.net>
>>>>>> *Reply-To: *GitHub <noreply at github.com <mailto:noreply at github.com>>
>>>>>>
>>>>>> Branch: refs/heads/master
>>>>>> Home: https://github.com/openvehicles/Open-Vehicle-Monitoring-System-3
>>>>>> Commit: 7516c9681055ec7986a94ccb8cfb29bda5f1bce8
>>>>>> https://github.com/openvehicles/Open-Vehicle-Monitoring-System-3/commit/7516c9681055ec7986a94ccb8cfb29bda5f1bce8
>>>>>> Author: Mark Webb-Johnson <mark at webb-johnson.net <mailto:mark at webb-johnson.net>>
>>>>>> Date: 2018-05-09 (Wed, 09 May 2018)
>>>>>>
>>>>>> Changed paths:
>>>>>> M vehicle/OVMS.V3/main/test_framework.cpp
>>>>>>
>>>>>> Log Message:
>>>>>> -----------
>>>>>> test framework commands for testing can bus tx/rx
>>>>>>
>>>>>>
>>>>>> Commit: 183d26dc107bb21cd956776228d0a24030b115db
>>>>>> https://github.com/openvehicles/Open-Vehicle-Monitoring-System-3/commit/183d26dc107bb21cd956776228d0a24030b115db
>>>>>> Author: Mark Webb-Johnson <mark at webb-johnson.net <mailto:mark at webb-johnson.net>>
>>>>>> Date: 2018-05-09 (Wed, 09 May 2018)
>>>>>>
>>>>>> Changed paths:
>>>>>> M vehicle/OVMS.V3/components/ovms_server_v2/src/ovms_server_v2.cpp
>>>>>> M vehicle/OVMS.V3/components/ovms_server_v3/src/ovms_server_v3.cpp
>>>>>> M vehicle/OVMS.V3/components/vehicle/vehicle.cpp
>>>>>> M vehicle/OVMS.V3/components/vehicle_kiasoulev/src/vehicle_kiasoulev.cpp
>>>>>> M vehicle/OVMS.V3/components/vehicle_renaulttwizy/src/rt_battmon.cpp
>>>>>> M vehicle/OVMS.V3/components/vehicle_renaulttwizy/src/rt_notify.cpp
>>>>>> M vehicle/OVMS.V3/components/vehicle_renaulttwizy/src/rt_sevcon.cpp
>>>>>> M vehicle/OVMS.V3/components/vehicle_renaulttwizy/src/rt_sevcon_faults.cpp
>>>>>> M vehicle/OVMS.V3/components/vehicle_renaulttwizy/src/vehicle_renaulttwizy.cpp
>>>>>> M vehicle/OVMS.V3/main/ovms_boot.cpp
>>>>>> M vehicle/OVMS.V3/main/ovms_notify.cpp
>>>>>> M vehicle/OVMS.V3/main/ovms_notify.h
>>>>>>
>>>>>> Log Message:
>>>>>> -----------
>>>>>> Notifications: Framework extensions to add support for subtypes on notifications, and automatic filtering by subtype and distribution mechanism
>>>>>>
>>>>>>
>>>>>> Compare: https://github.com/openvehicles/Open-Vehicle-Monitoring-System-3/compare/57d8f1b449d6...183d26dc107b
>>>>>> **NOTE:** This service been marked for deprecation: https://developer.github.com/changes/2018-04-25-github-services-deprecation/
>>>>>>
>>>>>> Functionality will be removed from GitHub.com <http://github.com/> on January 31st, 2019.
>>>>>
>>>>
>>>> _______________________________________________
>>>> OvmsDev mailing list
>>>> OvmsDev at lists.openvehicles.com <mailto:OvmsDev at lists.openvehicles.com>
>>>> http://lists.openvehicles.com/mailman/listinfo/ovmsdev
>>>
>>> _______________________________________________
>>> OvmsDev mailing list
>>> OvmsDev at lists.openvehicles.com <mailto:OvmsDev at lists.openvehicles.com>
>>> http://lists.openvehicles.com/mailman/listinfo/ovmsdev
>>
>> _______________________________________________
>> OvmsDev mailing list
>> OvmsDev at lists.openvehicles.com <mailto:OvmsDev at lists.openvehicles.com>
>> http://lists.openvehicles.com/mailman/listinfo/ovmsdev
>
>
>
> _______________________________________________
> OvmsDev mailing list
> OvmsDev at lists.openvehicles.com
> http://lists.openvehicles.com/mailman/listinfo/ovmsdev
--
Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal
Fon 02333 / 833 5735 * Handy 0176 / 206 989 26
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openvehicles.com/pipermail/ovmsdev/attachments/20180510/3b52617d/attachment.htm>
More information about the OvmsDev
mailing list