🐛 ✨ 📦 🚨 ✔️❌ ✅❎ ⚙️ 🔧 🚨 📚
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # originally based on https://www.huizebruin.nl/home-assistant/esphome/watermeter-uitlezen-in-home-assistant-met-esphome | |
| # | |
| # Differences: | |
| # - Uses MQTT. | |
| # - Uses internal_filter: 250ms to skip short pulses due to "floating pin" | |
| # voltage. Measure your minimum pulse time by opening several taps in your | |
| # home and count the number of pulse in 30 seconds and you can calculate the | |
| # minimum pulse duration. If you set this value just under this you should be | |
| # safe. | |
| # - Blinks the blue LED (GPIO2) for every received pulse. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // | |
| // Preserves: | |
| // | |
| // - Whitespace (`LoadOptions.PreserveWhitespace`) | |
| // - BOM (passing `UTF8Encoding(false)` ensures reader.Encoding will use this encoding, if BOM is present reader will swap to UTF8Encoding(true)) | |
| // - Line endings (using StreamReader instead of passing filename preserves line endings in document) | |
| // - XML declaration header | |
| // | |
| var path = ""; // Path to XML file |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // | |
| // Based on https://stackoverflow.com/a/5641272/199551 | |
| // | |
| public class NaturalComparer : IComparer<string> | |
| { | |
| public static readonly NaturalComparer Instance = new NaturalComparer(); | |
| private NaturalComparer() { } | |
| public int Compare(string x, string y) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // | |
| // Usage: | |
| // | |
| // var endpointConfiguration = new EndpointConfiguration("MyEndpoint") | |
| // ... | |
| // endpointConfiguration.Pipeline.Register(new CheckSizeBehavior(CheckSizeBehavior.StandardTierMaxSize), nameof(CheckSizeBehavior)); | |
| // | |
| using NServiceBus.Pipeline; | |
| class CheckSizeBehavior : IBehavior<IOutgoingPhysicalMessageContext, IOutgoingPhysicalMessageContext> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // Usage: | |
| // | |
| // var endpointConfiguration = new EndpointConfiguration("MyEndpoint") | |
| // ... | |
| // var connectionString = Environment.GetEnvironmentVariable("AzureServiceBus_ConnectionString"); | |
| // var managementClient = new ManagementClient(connectionString); | |
| // endpointConfiguration.Pipeline.Register(new ValidateDestinationExistsBehavior (managementClient), nameof(ValidateDestinationExistsBehavior)); | |
| // | |
| using Microsoft.Azure.ServiceBus.Management; | |
| using NServiceBus.Pipeline; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| using System; | |
| using System.Collections; | |
| using System.Linq; | |
| using Serilog.Core; | |
| using Serilog.Events; | |
| class ExceptionEnricher : ILogEventEnricher | |
| { | |
| public void Enrich(LogEvent logEvent, ILogEventPropertyFactory propertyFactory) | |
| { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| using System; | |
| using System.Collections.Generic; | |
| using System.Globalization; | |
| using System.Linq; | |
| using System.Threading; | |
| using System.Threading.Tasks; | |
| using Microsoft.Extensions.Logging; | |
| using MQTTnet; | |
| class DsmrTeslaLoadBalancer |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| static class TransactionManagerHelper | |
| { | |
| public static void ConfigureTransactionTimeout(TimeSpan timeout) | |
| { | |
| #if NETFRAMEWORK | |
| SetTransactionManagerField("_cachedMaxTimeout", true); | |
| SetTransactionManagerField("_maximumTimeout", timeout); | |
| #else | |
| SetTransactionManagerField("s_cachedMaxTimeout", true); | |
| SetTransactionManagerField("s_maximumTimeout", timeout); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| static class ListExtensions | |
| { | |
| static Random rng = new Random(); | |
| public static void Shuffle<T>(this IList<T> list) | |
| { | |
| // From https://stackoverflow.com/a/1262619/199551 but refactored via Resharper | |
| int n = list.Count; | |
| while (n > 1) | |
| { |