Skip to content

Instantly share code, notes, and snippets.

View bbartling's full-sized avatar

Ben Bartling bbartling

View GitHub Profile
@bbartling
bbartling / energy_equations.md
Created April 8, 2026 13:09
TODO with open-fdd

open-fdd default equations for energy penalty

It is structured by equipment type, starting from the zone level and moving up to the central plant. Within each category, the rules are ordered by difficulty to implement: starting with the "low-hanging fruit" (simple boolean logic, schedules, and basic setpoint math) down to the more complex FDD rules (requiring thermodynamic models, enthalpy, or network-level data rollups).


Easy FDD Energy Penalty Equations (open-fdd TODO)

1. General & Override Faults (Easiest to Implement)

These rules apply across multiple equipment types and rely on simple binary states, schedules, or BAS overrides, making them the easiest FDD rules to deploy.

@bbartling
bbartling / README.md
Created April 1, 2026 16:58
Open FDD BRICK To Googles Digital Building DBO

Open-FDD Expression Rule Cookbook — DBO-Oriented Translation

This document recasts the Open-FDD expression rule cookbook into a Digital Buildings Ontology (DBO) style.

It is not a claim that DBO itself stores or executes fault rules. In DBO, the ontology primarily models entities, fields, translations, and relationships, while the fault logic still lives in your analytics engine (for example, Open-FDD, pandas, SQL, or another rules engine).

So the conversion here means:

  1. Replace Brick-class-centric rule inputs with DBO field names.
  2. Preserve the original fault logic as close as possible.
@bbartling
bbartling / oc.md
Created March 18, 2026 17:46 — forked from mberman84/oc.md
OpenClaw Prompts

OpenClaw Prompts - Build Your Own AI Assistant

Prompts to recreate each piece of the OpenClaw system. Use these with any AI coding assistant.


1. Personal CRM "Build a personal CRM that automatically scans my Gmail and Google Calendar to discover contacts from the past year. Store them in a SQLite database with vector embeddings so I can query in natural language ('who do I know at NVIDIA?' or 'who haven't I talked to in a while?'). Auto-filter noise senders like marketing emails and newsletters. Build profiles for each contact with their company, role, how I know them, and our interaction history. Add relationship health scores that flag stale relationships, follow-up reminders I can create, snooze, or mark done, and duplicate contact detection with merge suggestions. Link relevant documents from Box to contacts so when I look up a person, I also see related docs."

2. Meeting Action Items (Fathom)

@bbartling
bbartling / concept.md
Created February 25, 2026 15:46
Open Fdd concept ideas of putting Python code into the Graph

🧠 Executable Brick: Embedding Python into RDF for Automatic Optimization

Future Vision for Open-FDD


🚀 Concept

Today, Brick describes what equipment exists in a building.

@bbartling
bbartling / CutSceneVoiceActing.md
Created December 27, 2025 18:59
Game Dev AI Voice Cutscene Generator Cheat Sheet

🎮 AI Voice Cutscene Generator (WSL + Edge-TTS)

Generate cinematic, human-sounding AI dialogue for game cut scenes using Microsoft Neural Voices, completely scriptable from Python.

The script takes a dialogue script with two characters, generates separate voice lines, then merges them into a single cutscene_edge.wav ready for Unity, Unreal, Godot, etc.

⚠️ This uses Microsoft’s neural TTS over the internet via Edge-TTS. Text is sent to Microsoft’s service; audio comes back. No API key required.

Works great with:

@bbartling
bbartling / README.md
Last active January 19, 2026 14:46
BACnet Auto-Scan to CSV with bacpypes3 and enhanced tester py with the bacpypes console

BACnet Diagnostic Tools

Two scripts for discovering, auditing, and manually testing BACnet networks.

1. Install Requirements

Run this once to get the required libraries:

pip install bacpypes3 ifaddr rdflib
@bbartling
bbartling / bin_chiller_hours.py
Last active September 27, 2025 19:13
Linkedlen article
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import os
# Load the CSV data into a DataFrame
df = pd.read_csv("Merged_Weather_System_Data.csv")
# Convert timestamp to datetime and set as index
df['ts'] = pd.to_datetime(df['ts'])
@bbartling
bbartling / agent.py
Last active October 23, 2025 12:47
AI Agent Acitivities
from __future__ import annotations
import argparse
import os
import re
import requests
import subprocess
import sys
from pathlib import Path
from typing import List, Tuple, Optional, Callable, Dict
@bbartling
bbartling / bacnet_test.py
Last active May 31, 2025 17:59
simple BAC0 scripts
import asyncio
import BAC0
"""
not tested yet
"""
async def main():
bacnet = BAC0.lite()
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.