Spyke

Posts

First time setting up an LLM conversation agent in HA, and it keeps responding to requests by dumping the intent__HASS commands in the chat window

I'm running HAOS on a mini x86 PC with localai.io running on a local server with an Intel A750. The model I'm currently using is qwen3:4b-instruct-2507-q4_K_M which should support tool use.

I've tried other models and had similar results.

The debug spew for the above interaction is below. Of note, the data field of intent_output is empty.

Is this something I need to configure on the localai.io side? Something with the yaml file? Or is HA not catching the intents coming from localai?

stage: done
run:
  pipeline: 01m4qn8aamt08pa8q3gprs8g9y
  language: en
  conversation_id: 01M4SQBP7364Q234NHBDAVQF4V
  runner_data:
    stt_binary_handler_id: null
    timeout: 300
events:
  - type: run-start
    data:
      pipeline: 01m4qn8aamt08pa8q3gprs8g9y
      language: en
      conversation_id: 01M4SQBP7364Q234NHBDAVQF4V
      runner_data:
        stt_binary_handler_id: null
        timeout: 300
    timestamp: '2026-10-13T04:12:03.684196+00:00'
  - type: intent-start
    data:
      engine: conversation.ollama_conversation
      language: en
      intent_input: turn off the kitchen lights
      conversation_id: 01M4SQBP7364Q234NHBDAVQF4V
      device_id: null
      satellite_id: null
      prefer_local_intents: false
    timestamp: '2026-10-13T04:12:03.684286+00:00'
  - type: intent-progress
    data:
      chat_log_delta:
        role: assistant
        content: ''
    timestamp: '2026-10-13T04:12:03.834864+00:00'
  - type: intent-progress
    data:
      chat_log_delta:
        content: intent
    timestamp: '2026-10-13T04:12:03.835315+00:00'
  - type: intent-progress
    data:
      chat_log_delta:
        content: __
    timestamp: '2026-10-13T04:12:03.888268+00:00'
  - type: intent-progress
    data:
      chat_log_delta:
        content: H
    timestamp: '2026-10-13T04:12:03.941413+00:00'
  - type: intent-progress
    data:
      chat_log_delta:
        content: ass
    timestamp: '2026-10-13T04:12:03.997781+00:00'
  - type: intent-progress
    data:
      chat_log_delta:
        content: Turn
    timestamp: '2026-10-13T04:12:04.052061+00:00'
  - type: intent-progress
    data:
      chat_log_delta:
        content: 'Off'
    timestamp: '2026-10-13T04:12:04.108197+00:00'
  - type: intent-progress
    data:
      chat_log_delta:
        content: ("
    timestamp: '2026-10-13T04:12:04.160317+00:00'
  - type: intent-progress
    data:
      chat_log_delta:
        content: light
    timestamp: '2026-10-13T04:12:04.214299+00:00'
  - type: intent-progress
    data:
      chat_log_delta:
        content: '",'
    timestamp: '2026-10-13T04:12:04.267968+00:00'
  - type: intent-progress
    data:
      chat_log_delta:
        content: ' "'
    timestamp: '2026-10-13T04:12:04.320906+00:00'
  - type: intent-progress
    data:
      chat_log_delta:
        content: Kitchen
    timestamp: '2026-10-13T04:12:04.376033+00:00'
  - type: intent-progress
    data:
      chat_log_delta:
        content: '")'
    timestamp: '2026-10-13T04:12:04.432053+00:00'
  - type: intent-progress
    data:
      chat_log_delta:
        content: ''
    timestamp: '2026-10-13T04:12:04.485825+00:00'
  - type: intent-progress
    data:
      chat_log_delta:
        content: ''
    timestamp: '2026-10-13T04:12:04.486312+00:00'
  - type: intent-progress
    data:
      chat_log_delta:
        content: ''
    timestamp: '2026-10-13T04:12:04.486666+00:00'
  - type: intent-end
    data:
      processed_locally: false
      intent_output:
        response:
          speech:
            plain:
              speech: intent__HassTurnOff("light", "Kitchen")
              extra_data: null
          card: {}
          language: en
          response_type: action_done
          data:
            success: []
            failed: []
        conversation_id: 01M4SQBP7364Q234NHBDAVQF4V
        continue_conversation: false
    timestamp: '2026-10-13T04:12:04.488028+00:00'
  - type: run-end
    data: null
    timestamp: '2026-10-13T04:12:04.488136+00:00'
started: 2026-10-13T04:12:03.684Z
intent:
  engine: conversation.ollama_conversation
  language: en
  intent_input: turn off the kitchen lights
  conversation_id: 01M4SQBP7364Q234NHBDAVQF4V
  device_id: null
  satellite_id: null
  prefer_local_intents: false
  done: true
  processed_locally: false
  intent_output:
    response:
      speech:
        plain:
          speech: intent__HassTurnOff("light", "Kitchen")
          extra_data: null
      card: {}
      language: en
      response_type: action_done
      data:
        success: []
        failed: []
    conversation_id: 01M4SQBP7364Q234NHBDAVQF4V
    continue_conversation: false
finished: 2026-10-13T04:12:04.488Z
View original on lemmy.world
23
youshouldknow·You Should Knowbych00f

YSK Sometimes running into a fire is the safest way out

Just learned about the Kaprun disaster in which 155 people lost their lives when an underground train caught fire.

There were only 12 survivors all of whom followed the advice of a retired firefighter who advised them to run downhill through the flames in the rear of the train.

The steep incline of the tunnel acted as a blast furnace that sucked in fresh air from the low end and funneled toxic smoke to the high end.

Not sure how applicable this will be to anyone here, but I thought it a great example of how a little more widespread knowledge of how fire works could have saved a lot of lives.

Tl;dr fire bad but smoke worse. Get to fresh air.

View original on lemmy.world
133
photography·Photographybych00f

I think my Ricoh GRIII's autoexposure is broken

I tend to shoot a lot and not review my photos a lot, but it was recently brought to my attention that my pictures are really dark. I tend to operate in P mode most of the time when I'm doing snapshots and just adjusting EV if I have a particularly bright/dark subject.

However, when shooting in EV +0, my photos are in fact turning out really dark. Even the histogram statistics agree, and I think this behavior has changed over time.

One of the first photos I took with the camera:

Photo I just took:

Histogram:

The on-camera histogram agrees. Everything gets shoved to the left.

Oddly, this doesn't seem to happen all the time. Seems to mostly show up in low-contrast and indoor photos. It seems the camera would rather shove the histogram to the left rather than center it. Even in manual mode, centering the exposure meter still has the histogram shoved to the left.

Things I've tried:

  • Turning off the ND filter. I can confirm ND function works as the ISO shoots up when ND is enabled
  • Updating the firmware. Running the latest version
  • Resetting all camera settings
  • Asking on the Ricoh forums.

Things I haven't tried:

  • Testing with an 18% grey card (it's in the mail)

Any idea what could be causing this?

View original on lemmy.world
12
rustlang·The Rust Programming Languagebych00f

Traits vs generics in i2c.rs

So I'm slowly digging my way through the stm32l0xx-hal crate. As written, the crate works with an older version of embedded-hal. My ultimate goal is to bring it up to the latest version or at least start the process.

My question surrounds the implementation of the I2c struct in i2c.rs.

Starting on line 57 is a struct that contains three elements of generic type.

/// I2C abstraction
pub struct I2c<I2C, SDA, SCL> {
    i2c: I2C,
    sda: SDA,
    scl: SCL,
}

I want to specifically talk about the first element. The bounds on what the generic type can be start in the implementation where the first element must implement the type Instance.

impl<I, SDA, SCL> I2c<I, SDA, SCL>
where
    I: Instance,
{
    pub fn new(i2c: I, sda: SDA, scl: SCL, freq: Hertz, rcc: &mut Rcc) -> Self
        where
            I: Instance,
            SDA: SDAPin<I>,
            SCL: SCLPin<I>,
        {...}
...
}

Going one step higher, I2c::new() is called inside a macro on line 522 inside an implementation of the I2cExt trait on I2C1, I2C2, etc.

impl I2cExt<$I2CX> for $I2CX {
            fn i2c<SDA, SCL>(
                self,
                sda: SDA,
                scl: SCL,
                freq: Hertz,
                rcc: &mut Rcc,
            ) -> I2c<$I2CX, SDA, SCL>
            where
                SDA: SDAPin<$I2CX>,
                SCL: SCLPin<$I2CX>,
            {
                I2c::new(self, sda, scl, freq, rcc)
            }
        }

So the generic type in the I2cExt trait is the same as the type for which the trait is implemented in this macro. The <$I2CX> type is passed to the I2c return type which ultimately creates an instance of the I2c struct with the first element of type <$I2CX> and along the way, it's verified that it implements the Instance type.

So my question is: couldn't we ignore all of this generic nonsense if we just defined the I2c struct to expect a certain trait for its first value?

For example, couldn't the first line of the struct just be i2c: Instance or some other defined trait that encompasses all of the I2c drivers on the chip? If we're bounding the type to an Instance anyway, why bother with all the generics?

View original on lemmy.world
5
selfhosted·Selfhostedbych00f

Server randomly locked up. Trying to find out why

Woke up today to the homeserver being unresponsive. Couldn't SSH, no video out when I connected a monitor, and even the reset button didn't do anything. Had to hold the power button to shut it down.

/var/log/syslog doesn't show anything interesting other than the issue happened at just after 4am. Log

2026-02-27T03:55:01.481794-08:00 blackbox CRON[1743418]: (www-data) CMD (/usr/bin/php8.3 /mnt/MONSTERDRIVE/pixelfeddata/pixelfed/artisan schedule:run >> /dev/null 2>&1)
2026-02-27T04:00:00.198504-08:00 blackbox smartd[2126]: Device: /dev/sdd [SAT], CHECK POWER STATUS spins up disk (0x81 -> 0xff)
2026-02-27T04:00:00.291853-08:00 blackbox systemd[1]: Starting sysstat-collect.service - system activity accounting tool...
2026-02-27T04:00:00.298344-08:00 blackbox systemd[1]: sysstat-collect.service: Deactivated successfully.
2026-02-27T04:00:00.298523-08:00 blackbox systemd[1]: Finished sysstat-collect.service - system activity accounting tool.
2026-02-27T04:00:00.299608-08:00 blackbox kernel: kauditd_printk_skb: 8 callbacks suppressed
2026-02-27T04:00:00.299613-08:00 blackbox kernel: audit: type=1130 audit(1772193600.298:798916): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=unconfined msg='unit=sysstat-collect comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
2026-02-27T04:00:00.299615-08:00 blackbox kernel: audit: type=1131 audit(1772193600.298:798917): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=unconfined msg='unit=sysstat-collect comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
2026-02-27T04:00:01.923610-08:00 blackbox kernel: audit: type=1101 audit(1772193601.922:798918): pid=1744810 uid=0 auid=4294967295 ses=4294967295 subj=unconfined msg='op=PAM:accounting grantors=pam_permit acct="www-data" exe="/usr/sbin/cron" hostname=? addr=? terminal=cron res=success'
2026-02-27T04:00:01.923614-08:00 blackbox kernel: audit: type=1103 audit(1772193601.922:798919): pid=1744810 uid=0 auid=4294967295 ses=4294967295 subj=unconfined msg='op=PAM:setcred grantors=pam_permit,pam_cap acct="www-data" exe="/usr/sbin/cron" hostname=? addr=? terminal=cron res=success'
2026-02-27T04:00:01.923615-08:00 blackbox kernel: audit: type=1006 audit(1772193601.922:798920): pid=1744810 uid=0 subj=unconfined old-auid=4294967295 auid=33 tty=(none) old-ses=4294967295 ses=50544 res=1
2026-02-27T04:00:01.923615-08:00 blackbox kernel: audit: type=1300 audit(1772193601.922:798920): arch=c000003e syscall=1 success=yes exit=2 a0=7 a1=7fff81d75200 a2=2 a3=0 items=0 ppid=2654 pid=1744810 auid=33 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=50544 comm="cron" exe="/usr/sbin/cron" subj=unconfined key=(null)
2026-02-27T04:00:01.923616-08:00 blackbox kernel: audit: type=1327 audit(1772193601.922:798920): proctitle=2F7573722F7362696E2F43524F4E002D66002D50
2026-02-27T04:00:01.924259-08:00 blackbox CRON[1744811]: (www-data) CMD (/usr/bin/php8.3 /mnt/MONSTERDRIVE/pixelfeddata/pixelfed/artisan schedule:run >> /dev/null 2>&1)
2026-02-27T04:00:01.924614-08:00 blackbox kernel: audit: type=1105 audit(1772193601.923:798921): pid=1744810 uid=0 auid=33 ses=50544 subj=unconfined msg='op=PAM:session_open grantors=pam_loginuid,pam_env,pam_env,pam_permit,pam_umask,pam_unix,pam_limits acct="www-data" exe="/usr/sbin/cron" hostname=? addr=? terminal=cron res=success'
2026-02-27T04:00:01.925610-08:00 blackbox kernel: audit: type=1110 audit(1772193601.924:798922): pid=1744811 uid=0 auid=33 ses=50544 subj=unconfined msg='op=PAM:setcred grantors=pam_permit,pam_cap acct="www-data" exe="/usr/sbin/cron" hostname=? addr=? terminal=cron res=success'
2026-02-27T04:00:02.357616-08:00 blackbox kernel: audit: type=1104 audit(1772193602.356:798923): pid=1744810 uid=0 auid=33 ses=50544 subj=unconfined msg='op=PAM:setcred grantors=pam_permit acct="www-data" exe="/usr/sbin/cron" hostname=? addr=? terminal=cron res=success'
2026-02-27T09:23:35.786375-08:00 blackbox systemd-modules-load[904]: Inserted module 'dm_multipath'

Would something like this be a direct hardware failure? Like a power supply hiccup or something? It happening at 4am coincides with my electric car starting to charge, but the server is on a dedicated 20A circuit and behind a battery backup. I also don't see any power issues on my Sense monitor at that time though it has limited resolution.

Mainboard is a Supermicro H13SAE-MF and I'm using ECC RAM.

I've been running this hardware for over a year and never had this issue, but I'm running out of places to look.

Might be time to finally get IPMI working.

View original on lemmy.world
43
rustlang·The Rust Programming Languagebych00f

Noob rustacean with question regarding typed constructors.

Just finished chapter 10 of the Rust book and I thought I'd try digging into some real code. I'm a rust noob, but I've got 15 years with embedded C.

I'm working my way through the source code of the stm32l0xx-hal crate. Inside adc.rs on line 96, an implementation for the Adc struct is created for the type Adc<Ready> where Ready is defined on line 324.

/// Analog to Digital converter interface
pub struct Adc<State> {
    rb: ADC,
    sample_time: SampleTime,
    align: Align,
    precision: Precision,
    _state: State,
}

impl Adc<Ready> {
    pub fn new(adc: ADC, rcc: &mut Rcc) -> Self {
        // Enable ADC clocks
        ADC::enable(rcc);
        adc.cr.modify(|_, w| w.advregen().set_bit());

        Self {
            rb: adc,
            sample_time: SampleTime::T_1_5,
            align: Align::Right,
            precision: Precision::B_12,
            _state: Ready,
        }
    }
...
}
...
/// Indicates that the ADC peripheral is ready
pub struct Ready;

I'm a little confused about how the associated function new() works. I understand that it generates a new Adc<Ready>, but I don't fully understand why it's inside the impl Adc<Ready> block.

It's not a method that would be called on an Adc<Ready> type, and it doesn't take any arguments of type Ready. Couldn't it just as easily have been inside a impl<T> Adc<T> block?

Or is it that impl types go both ways. Like you can't return an Adc<Ready> unless you're inside an impl Adc<Ready>?

Sidenote: Since the Ready struct has no fields, does "Ready" actually create a new instance of a Ready type? (like you don't need Ready{}?)

View original on lemmy.world
5
ece·Electrical and Computer Engineeringbych00f

How is STM32F407 more expensive than STM32H725?

I've been researching micros for a new project. I've already got some prototype code running on an STM32F407 disco, but I thought I'd try finding a costed down option for the final design.

I was surprised to find that the STM32H725 is not only cheaper, but it can run at 550MHz, has twice the memory, and has more advanced peripherals. Even the power numbers are similar if you slow it down to 170MHz to match the STM32F4.

The only real knock I could find on the H7 is that its smallest package is 10x10 over 7x7 on the F4.

So what's the deal? Is the price based on the actual value of the chip or is there some legacy stuff priced in?

I've never worked with an M7 core. Any other caveats I should be worried about?

View original on lemmy.world
8
fuck_ai·Fuck AIbych00f

I decided to look at the McDonald's AI ad shot by shot to find all the issues

Here's the ad. Here's an article where the producers whine about the backlash because they did a lot of work or something.

I really didn't think I'd be able to find something wrong with every single shot, but it was actually pretty easy (though some are way worse than others).

  • Family in car: Girl in the back has no headrest.
  • Rear shot of car: Unprotected wrapped gifts on the roof while it's wet enough to warrant wipers. Presents aren't secured by anything. Presents somehow bounce up off the rear of the car when it's a hatchback.
  • Guy on bakfiet (bike): pushes the right pedal straight down through the crank arm. Rear fork somehow bends like 45 degrees between the down tube and rear axle.
  • Carolers: Despite the matching hats and jackets, dude in the front's song book is twice the size of everyone else's.
  • Teddy bear: Teeth (gross). Woman on right wraps her hand around behind Teddy's head, but that hand becomes woman on the left's hand.
  • Santa on sleigh: White car passes by in the background, but red car behind it somehow disappears. Maybe it somehow is driving on the sidewalk behind the parked car?
  • Tree: Tree physically grows taller and larger when tie is cut. Fire in fireplace isn't moving. Guy's right arm briefly disappears. Actually, it looks like they might have manually spliced two takes here because there's a weird slice around the man's chest.
  • Outside of the house: There's apparently already a Christmas tree behind the family that you can see through the window. Also, the space with the bookshelf in the previous shot doesn't exist here as the front door is right there.
  • Sliding to a halt: The tracks in the snow left by the guy's hand and armpits make no sense.
  • Snowfall: cyclist to the right has a reflection, person behind them doesn't. Cyclist randomly stops pedaling right at the end of the shot (maybe not, hard to tell).
  • Ice rink: Dude's right leg briefly bends backwards before it becomes his left leg and his hood becomes his right hand. After he lands, his (new) right foot is either passing through the ice or really short. Also dude middle-right stops and reverses without moving his feet.
  • Falling from roof: Lights move and stretch weird, also house has two different styles of bay window. Also, looks like it might be a townhouse in which case, why is only one entrance fenced?
  • Tram: Everyone in the tram is facing the camera. Nobody's on their phone? There are a few frames where the door is 100% closed, but the woman's feet are still standing on the inside floor of the tram instead of dropping to the pavement.
  • Dining table: So much going on. Is that some kind of hibachi grill/fondue set in the foreground? I'd be more concerned about that catching fire. Nobody is reacting to the fire appropriately. What the hell is even on fire? Is that like burger patties on a grill?
  • Cookies: Why are there crumbs everywhere if these cookies were presumably put in as dough. Also what the hell kind of cookies are they? Are they supposed to be gingerbread heads?
  • Grandparents: Gramps got a stump for a hand then grows fingers. WTF card game are they playing?
  • Up-close faces: Not much to say about these unless they're supposed to be the old people from the previous shot, because they clearly aren't.
  • Bicycle spray: Cars parked on the sidewalk. Car passes through bicycle parked on the right which is also parked in the street.
  • Baking: Girl has no reaction to explosion. Lots going on in the background. Is that orange juice being stored on an open shelf? Wine/martini glasses hanging upside down from nothing? Dude's got some kind of industrial kitchen grade mixing device behind the girl and yet can't operate a Kitchen-Aid?
  • Cat in tree: What the hell are the people in the background doing? They start to take cover immediately. Drone changes from four arms with rotors to some kind of square shape with rotors at each corner after it hits the tree. Not sure what the thing falling off the left side of the tree is supposed to be.
  • Tree lighting: Guy in the background reacts before anything happens. Girl on the left reacts despite looking at the floor/being asleep? Design of the table to the left changes when the lights go out. I wonder if this is another splice job where they needed to go through manually to make the lights-out synchronized. Also, why is this man plugging this in in the middle of the room anyway?
  • Outdoor shot: Road layout has issues. Cars are driving right by cars parked the wrong way. Lamp posts are in the street. There's a bizarre window jutting out of the roof across the street.
  • McDonald's entrance shots: I could be convinced these are real. The guy is the same person from the tree explosion who was probably comped in, so maybe it's a real actor.
  • Couple at McDonald's: The girl kind of mimes drinking her drink. Guy in the background is clearly holding a mug
  • Carolers again: There's a weird fade with one of the building surfaces middle-left behind the carolers. This might be another manual comp (makes sense with the branding). Lamp behind them looks like a combination lamppost/sconce.
View original on lemmy.world
72
aquariums·Aquariums and Fish Keepingbych00f

2.5 weeks into a fishless cycle. Could use some words of encouragement.

First time keeping saltwater fish. Started on the 11/22 using the recommended amount of Dr. Tim's and bio starter. Test kit was still in the mail, so didn't notice the ammonia was only at 0.5ppm until 12/1. Added more to get it up to 2ppm. Nitrate and nitrite were still at 0ppm.

I've added a small amount of bio maintain since then, but otherwise let it work its magic.

So a week and a half later, and I took the test in the pic above. There's definitely some change to nitrate/nitrite, but I could convince myself that ammonia is anywhere from 0.5ppm to 2ppm depending on lighting. Maybe I'm colorblind. It's especially hard to decipher through photos (which I just started taking today).

I'm hoping to get the fish by the 18th so I can have them ready for a Christmas surprise. I know patience is a virtue when it comes to fishless cycling, but am I screwed? I have another option to get pre-cycled filter material, but I was hoping to grow this on my own.

If it matters, I'm using the 10L kreisel from jellyfishart.com. Hoping to order the jellies on the 16th so they arrive by the 18th. They ship with a pre-cycled filter, but something about introducing all of that at the same time makes me nervous.

View original on lemmy.world
48